Codeforces Round #560 (Div. 3) A题

Posted duxing201806

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #560 (Div. 3) A题相关的知识,希望对你有一定的参考价值。

题目网址:http://codeforces.com/contest/1165/problem/A

题目大意:给定一行01串,开头必是1,length为n,可对串进行变化,0变成1,1变成0,问经过最少的变化,该串mod 10^x==10^y.(^是乘方),输出变化次数。

题解:简单分析可知,比如串是1001000,则mod 1000 == 0,mod 10000 == 1000,所以直接在n-x之和判断即可。

技术图片
 1 #include<bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 const int maxn=2e5+7;
 5 char str[maxn];
 6 int main()
 7 {
 8     int n,x,y;
 9     cin>>n>>x>>y;
10     scanf("%s",str+1);
11     int ans=0;
12     for(int i=n-x+1;i<=n;i++) {
13         if(i==(n-y)&&str[i]==0) ans++;
14         if(i!=(n-y)&&str[i]==1) ans++; 
15     }
16     cout<<ans<<endl;
17     return 0;
18 }
View Code

 

以上是关于Codeforces Round #560 (Div. 3) A题的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #560 Div. 3

Codeforces Round #560 (Div. 3) A题

Codeforces Round #560 div3 (C,D)

Codeforces Round #313 (Div. 2)

Codeforces Round #436 E. Fire(背包dp+输出路径)

[ACM]Codeforces Round #534 (Div. 2)