(抄的高精度模板233
由於要取完所有的數,所以原題可轉化為在每一行上取數,累加所有行的答案即可
f[k][i][j]表示在第k行從1取到i,從j取到m的答案
f[k][i][j]=max(f[k][i-1][j]+2^(m-j+i-1)*a[k][i-1],f[k][i][j+1]+2^(m-j+i-1)*a[k][j+1])
(第一次寫把a[k][i-1]習慣性地寫成了a[i-1][j],調了好久。。。。
(剛開始本想加一維表示第幾次取,然後發現當i和j固定時,次數就固定了。。。。
#include#include#include#define ll long long
#define dp f
#define maxn 82
using namespace std;
struct bignum
bignum operator = (const char str)
bignum operator = (const int n) while(tmp>0);
while(num[len-1]==0&&len>1) len--;
return *this;
}bignum operator + (const bignum &rhs) const
bignum operator * (const bignum &rhs) const
bool operator < (const bignum &rhs) const
};bignum dp[82][82][82],ans,a[maxn][maxn];
int main()
bignum pow[82];
pow[0]=1;pow[1]=2;
for(int i=2;i<=maxn-1;i++)
pow[i]=pow[i-1]*pow[1];
for(int k=1;k<=n;k++)
ansx=max(ansx,dp[k][i][i-1]);
}ans=ansx+ans;
}ans.print();
return 0;
}
洛谷 P2007 魔方
常神牛從來沒接觸過魔方,所以他要借助計算機來玩。即使是這樣,他還是很菜。常神牛家的魔方都是3 3 3的三階魔方,大家都見過。更正 3 4以圖為準。作為一名菜鳥,常神牛從網上搜了一篇攻略,並找人翻譯成了他自己會做的方法。現在告訴你他的魔方情況,以及他從網上搜到的攻略,請你求出最後魔方變成什麼樣子。輸入...
洛谷P4170 CQOI2007 塗色
假設你有一條長度為5的木版,初始時沒有塗過任何顏色。你希望把它的5個單位長度分別塗上紅 綠 藍 綠 紅色,用乙個長度為5的字串表示這個目標 rgbgr。每次你可以把一段連續的木版塗成乙個給定的顏色,後塗的顏色覆蓋先塗的顏色。例如第一次把木版塗成rrrrr,第二次塗成rgggr,第三次塗成rgbgr,...
洛谷P2470 SCOI2007 壓縮
include include include using namespace std define maxn 55 define inf 0x3f3f3f3f define mid l r 1 int n,f maxn maxn 2 不妨處理每個子串時,我們都在它的前面放乙個m,最後答案長度 1即...