A.
//codeforces 571 A
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
if(min(b,c)>=a){
printf("Yes\n");
}else printf("No\n");
return 0;
}
C.
位运算, 先和lenb长度运算,结果为偶数则答案加一。
再从lenb 开始枚举, ^s1[i-lenb]是消除上一个字符的影响, 因为 已经和 s1[i-lenb]做过异或运算,再来一次就是抵消了
^s1[i] 就是加上当前字符的影响
//C
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6+5;
char s1[maxn],s2[maxn];
int main()
{
scanf("%s",s1);
scanf("%s",s2);
int lena = strlen(s1);
int lenb = strlen(s2);
int ans=0,sum=0;
for(int i=0;i<lenb;i++){
ans=ans^s1[i]^s2[i];
}
if(ans%2==0)sum++;
for(int i=lenb;i<lena;i++){
ans=ans^s1[i-lenb]^s1[i];
if(ans%2==0)sum++;
}
printf("%d\n",sum);
return 0;
}
D.贪心,能变化的往最大的变化,不能变化的标记一下。最后sum>0,就对当前变化过的减一输出
//D
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn = 100005;
double a[maxn];
int main()
{
int n;
int book[maxn];
ll sum=0;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%lf",&a[i]);
if(a[i]<0&&a[i]!=(ll)a[i])a[i]=(ll)a[i],sum+=(ll)a[i];
else if(a[i]!=(ll)a[i]){
a[i]=(ll)a[i]+1,sum+=(ll)a[i];
}else {
book[i] = 1;
a[i]=(ll)a[i]; sum+=(ll)a[i];
}
}
for(int i=0;i<n;i++){
if((!book[i])&&sum>0){
printf("%I64d\n",(ll)a[i]-1);
sum--;
}else printf("%I64d\n",(ll)a[i]);
}
return 0;
}