題意看起來好麻煩實際上很簡單,首先4s可以先bitset暴力一下,聽說卡卡就能過:$o(2^+n^2/32)$
1 #include2 #include3 #include4 #include5#define rep(i,l,r) for (int i=l; i<=r; i++)
6using
namespace
std;78
const
int n=100100,inf=0x3f3f3f3f
;9 bitsetdata,test;
10int n,m,ans,cost[n],cnt[4194314
];11
char
s[n];
1213
intmain()
23 scanf("
%s",s); rep(i,0,n) data[i]=s[i]=='1'
;24 scanf("
%s",s); rep(i,0,n) test[i]=s[i]=='1'
;25for (int i=0; i)
27int j=(data^test).count();
28 ans=min(ans,min(j,n-j+1)+cost[i]);29}
30 printf("
%d\n
",ans);
31return0;
32 }
然後我們觀察一下我們的這個暴力到底在做什麼事情,發現後面的主迴圈實際上就是乙個類似迴圈卷積的問題,我們要把它變成真正的卷積。
觀察異或真值表:
0 0 0
0 1 1
1 0 1
1 1 0
我們變換一下:把a中0位上的值變成-1,1位上的值變成1,b中相反,於是就有:
0 0 1
0 1 -1
1 0 -1
1 1 1
最後我們將所有結果加1,再除以2,就變成上面的那個表了,這就成功將迴圈異或變成了迴圈卷積,直接做即可。
1 #include2 #include3 #include4 #include5 #include6#define rep(i,l,r) for (int i=l; i<=r; i++)
7using
namespace
std;
8 typedef complexc;
9const
int n=600100,inf=0x3f3f3f3f;10
const
double pi=acos(-1
.);11
char
s[n];
12int n,m,k,ans,cost[n],rev[n],cnt[4194314
],data[n],test[n],c[n];
1314
c a[n],b[n];
1516
void dft(c a,int n,int
f)25}26
}27if (f==-1) for (int i=0; in;28}
2930
void mul(int test,int data,int res,int
m)38
39int
main()
49 scanf("
%s",s); for (int i=0; i'
1')?1:-1
);50 scanf("
%s",s); for (int i=0; i1]=((s[i]=='
1')?1:-1
);51 mul(test,data,c,3*n);
52for (int i=0; i>1,ans=min(ans,cost[i]+min(k+1,n-k));
53 printf("
%d\n
",ans);
54return0;
55 }
Nescaf 2 月之謎 題解
月之謎 mystery.pas c cpp 題目描述 打敗了 lord lsp 之後,由於 lqr 是乙個心地善良的女孩子,她想淨化 lord lsp 黑化的心,使他變回到原來那個天然呆的 lsp 具體地來說是這樣的,定義月之數為能夠被其十進位制表示下各個數字的和整除的數。給定整數 l,r,你需要計...
小公尺電視4a4c4x4s的區別
小公尺電視4a 55英吋延續了小公尺電視以往的簡約時尚風格英吋,採用黑色色彩為主,看起來經典又百搭 搭配64位四核處理器,配置2gb 8gb大儲存 搭載第6代畫質引擎,相比上一代有4處公升級,同步支援hdr10和hybrid log gamma。提供了更多的動態範圍和影象細節,使得暗部更暗,亮部更亮...
SpringMVC4 Hibernate4學習筆記
注 本文是以前幾篇部落格的簡單合併,未做更新 鑑於目前資料大多數都是基於spring3的配置,本人在最初搭建的時候遇到很多問題,由此記錄下來僅供參考 使用的jar檔案springframework4.0.6 為了方便整個先導入 hibernate4.3.6 required 下所有jar 以及 op...