南京網路賽E題(狀壓)

2021-08-26 18:02:51 字數 451 閱讀 3324

傳送門

dp[i]代表i二進位制代表的的題目全做完的最大值。

dp[i]=max(dp[i], dp[pre]+a[i]*num[i]+b[i])   pre是去掉一題的前乙個狀態。

重要的是初始化,對於不可能轉移到的狀態要置為-inf

#includeusing namespace std;

const int n=1e6+1e5;

typedef long long ll;

ll dp[n], n, a[30], b[30], s[30], num[n];

int main()

}int up=1<>=1;}}

for(int i=0; ians=max(ans, dp[i]);

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

return 0;

}

ICPC網路賽 AC Challenge (狀壓)

ac challenge 給出n個任務,每個任務花費乙個單位時間,現在求每個任務完成時,會獲得a i t b i a i t b i 的價值,但是每個任務都有必須要在之前完成的任務,就是前置任務。資料範圍 n 20,109i b i 109 n 20,10 9 i b i 109 這題非常容易想歪,...

2019南京ICPC網路賽A題

二維偏序,利用二維字首和的思想,乙個矩陣 x1,y1,x2,y2 可以由 0,0,x2,y2 0,0,x1 1,x2 1 0,0,x1 1,y2 0,0,x2,y1 1 得出,所以按x軸排序,用樹狀陣列記錄y軸的 0,y 的值,然後就ok了。此題有乙個nc坑點,就是他讓你計算的乙個點的權值不是這個值...

狀壓dp幾道題

感覺現在只會用比較無腦比較暴力的狀壓dp,完全沒思考,就是列舉所有的狀態,等集訓結束了搜點要努力想dp方程的題做做。hdu3681 prison break 大體意思就是給了張地圖,走路要耗費能量,有能量池能補充能量,求要走完特定的幾個點初始能量的最小值 因為給的點很少所以可以用狀壓dp,走過的各自...