日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Three Bags CodeForces - 1467C

發(fā)布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Three Bags CodeForces - 1467C 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題意:

三堆石子,你可以取兩堆石子各一個石頭a,b。然后消掉a,使得b=b-a再放入b的那一堆。這樣操作直到只剩下一個石子,求該石子價值最大。

題解:

構(gòu)造題
可以構(gòu)造出兩者情況:

  • 其中兩堆都是正的,一堆都是負(fù)的
  • 一個背包都是正的,另兩個背包的最小值是負(fù)的,其他都是正的
    為什么是這樣構(gòu)造出來的呢?
    參考題解
    對于一個數(shù)如果進(jìn)行奇數(shù)次操作,那么就是負(fù)貢獻(xiàn),偶數(shù)次操作就是正貢獻(xiàn)
    假設(shè)最后一個數(shù)在數(shù)組a,那么a中剩下n-1個數(shù),可以在最后先與其他數(shù)組合并,再和最后一個數(shù)合并,這樣就都是正貢獻(xiàn)。同理應(yīng)用到b和c數(shù)組,就相當(dāng)于b,c中只有一個數(shù)的負(fù)貢獻(xiàn),其他都是正,我們?nèi),c中最小的為負(fù)貢獻(xiàn)
    或者我們直接選b,c中一個數(shù)組為正數(shù)組,另一個為負(fù)數(shù)組
  • 代碼:

    #include<bits/stdc++.h> using namespace std; typedef long long ll;const int maxn = 300010;int n1, n2, n3; ll a[maxn], b[maxn], c[maxn]; ll s1, s2, s3; ll m1, m2, m3;ll ans = 0;ll read(){ ll s = 0, f = 1; char ch = getchar(); while(ch < '0' || ch > '9'){ if(ch == '-') f = -1; ch = getchar(); } while(ch >= '0' && ch <= '9'){ s = s * 10 + ch - '0'; ch = getchar(); } return s * f; }int main(){n1 = read(), n2 = read(), n3 = read();for(int i = 1 ; i <= n1 ; ++i) a[i] = read(), s1 += a[i];for(int i = 1 ; i <= n2 ; ++i) b[i] = read(), s2 += b[i];for(int i = 1 ; i <= n3 ; ++i) c[i] = read(), s3 += c[i];ans = -1e18;ans = max(ans, s1 + s2 - s3); ans = max(ans, s2 + s3 - s1);ans = max(ans, s3 + s1 - s2);m1 = a[1], m2 = b[1], m3 = c[1];for(int i = 2 ; i <= n1 ; ++i) m1 = min(m1, a[i]);for(int i = 2 ; i <= n2 ; ++i) m2 = min(m2, b[i]);for(int i = 2 ; i <= n3 ; ++i) m3 = min(m3, c[i]);ans = max(ans, s1 + s2 + s3 - 2 * m1 - 2 * m2);ans = max(ans, s1 + s2 + s3 - 2 * m1 - 2 * m3);ans = max(ans, s1 + s2 + s3 - 2 * m2 - 2 * m3);printf("%lld\n", ans);return 0; }

    總結(jié)

    以上是生活随笔為你收集整理的Three Bags CodeForces - 1467C的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。