题目:传送门
思路: 考虑从 0 位 到 x 位之间 的 情况即可, 在这个区间除了 第 y 位其他位置都不能有 1,第 x 位有 1 无 1 都无影响 ,遍历一遍即可。赛后很多人的 A 题都被hack掉了,看了一下test 好像大部分都是因为这个原因.
参考代码如下:
int n,x,y;
string s;
cin>>n>>x>>y;
cin>>s;
int ans = 0;
int wei = 0; // 当前的 位数
for(int i=n-1;i>=0;i--) {
if(wei>=x) break; // 大于等于 x 不予考虑
//除了 第 y位 其他的地方都不能 有 1 , 第y位一定要有 1
if(wei== y) {
if(s[i]!='1') {
ans++;
}
}
else {
if(s[i]=='1') {
ans++;
}
}
wei++;
}
cout<<ans<<endl;
return 0;