ACM ICPC 2018 南京賽區網路預賽

2021-08-26 20:30:40 字數 798 閱讀 4508

e.ac challenge

題意:你有n個題要去做,你其實都會做但是要求是先做完某些題你才能做這道,每道題做後得分是第n次做題*a[i]+b[i],問你最後最大能得多少分

思路:第一開始去向網路流,但仔細想想他和時間還有關係,由於資料量只有20,果斷去想dp,我們用二進位制去存某些題做過沒有,dp[i],i是二進位制表示法確定做了那些題,dp[i]表示做這些題最大得多少分,我們用二進位制去存好題與題得關係,我們用lowbit去數他完成了幾道題,然後去返回這回是該做第幾道,那麼就簡單得去狀態壓縮就好了,每次看i是否滿足我們想做得當前題,如果滿足我們就去把他得dp[i+1《狀態轉移方程是dp[i+(1《當時又個毛病就是用define 去定義long long 之後我開陣列得時候用了maxn+5 使得左移符號運算優先順序低於+,導致記憶體超限,各種後悔

下面上**

#include

#define maxn 1<<20

#define ll long long

using namespace std;

ll dp[maxn];

int a[25],b[25],d[25];

int su(int x)

return cnt+1;

}int main()

//cout<}ll now=(1

ll ans=0;

for(int i=0;i<=now;i++)

ans=max(dp[i],ans);

printf("%lld\n",ans);

return 0;

}

ACM ICPC 2018 南京賽區網路預賽

a 直接輸出n 1.include using namespace std typedef long long ll const ll maxn 1e5 5 ll n int main return 0 c 模擬,不過要重新定義數的大小關係,或者是吧1,2變成14,15,我就是選擇的後者,最後計算的...

ACM ICPC 2018南京賽區網路預賽 Sum

題目鏈結 根據算術基本定理,猜想 f a b f a f b a,b 互質 不妨假設 if n 為質數 那麼f n 2 else if 存在 x 3,那麼f n 0,因為n分成兩份,有三個相同pi,必有兩個pi分到同一組 else if 存在 x 2 x 1,那麼f n f n a a 這兩個相同的...

ACM ICPC 2018 焦作賽區網路預賽

有t tt組樣例,接下來給出n nn艘船和m mm次詢問。接下來n行,每行給出 v i v i v i 和 c i c i c i 分別代表船的載重 和 船的數量有2c i 1 2 1 2c i 1只。然後給出m次詢問,問恰好裝q重量的貨物的 方案數 有多少 每艘船都要裝滿 多重揹包來解決,同時船的...