求乙個最小的數,它和一串數的異或值的和=m。
orz:claris f[
i][j
] 表示i位前(後面的先砍掉,不理,方便轉移)+j=m的i位前。
那麼當j<0或j>=n時是一定無解的,因為後面的位至多補(n
−1)∗
2i所以隨便轉移一下就好了。
關鍵是狀態表示,還是太菜了。
code:
#include
#include
#include
#include
#define ll long long
using
namespace
std;
ll inf=(1ll<<61);
int n;
ll s,f[63][100010],c[63][3];
void cmin(ll &x,ll y)
int main()
for(int i=0;i<=60;i++)
for(int j=0;j<=100005;j++)
f[i][j]=inf;
f[60][0]=0;
for(int i=59;i>=0;i--)
for(int j=0;j<=100005;j++)
if(f[i+1][j]for(int k=0;k<=1;k++)
}if(f[0][0]==inf) printf("-1");
else
printf("%lld",f[0][0]);
}
bzoj5043 密碼破譯
題目 dp神題,公式什麼的我們想出來,看一發題解吧。但是,這不是重點,重點是get到了乙個新姿勢。int型別如果右移超過了32位,前32位是無效的,也就是說移40位和移8位是一樣的233。因為這個,我樣例都沒過,好菜呀。include define n 100000 using namespace ...
簡單密碼破譯
problem description 密碼是我們生活中非常重要的東東,我們的那麼一點不能說的秘密就全靠它了。哇哈哈.接下來淵子要在密碼之上再加一套密碼,雖然簡單但也安全。假設淵子原來乙個bbs上的密碼為zvbo941987,為了方便記憶,他通過一種演算法把這個密碼變換成yuanzi1987,這個密...
python 破譯密碼
題目內容 a國情報局抓獲敵國間諜一名,從間諜身上搜出了若干密電,在嚴刑逼供之下,間諜說出了密電加密方法 將明文電報 僅由大寫字母構成 中的所有字母均替換為字母表中向後看的第n個字母,如果超過z,則從a繼續數,這樣就得到了密文,比如attack,向後看第2個字母,就加密為cvvcfm。可還沒等到間諜說...