傳送門
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,走過的各自...