Codeforces Round #461 (Div. 2)
思路:找规律
#include<bits/stdc++.h> using namespace std; int main() { int x,y; cin>>x>>y; if(x==0&&y==1) cout<<"Yes"<<endl; else if((x-y+1)%2==0&&(x-y+1)>=0&&y>1) cout<<"Yes"<<endl; else cout<<"No"<<endl; return 0; }
思路:, 试了几个异或,发现一个数异或自己为0,所以可以用两个边来遍历,之后再满足三角形和题中a<b<c 且都大于1小于n的条件就可以了。
#include<bits/stdc++.h> using namespace std; int main() { int z,n,i,j; int sum=0; cin>>n; for(i=1;i<=n;i++) { for(j=i+1;j<=n;j++) { z=i^j;//3 if(z>=1&&z>i&&z>j&&z<=n&&i+j>z&&i+z>j&&j+z>i) { sum++; //cout<<i<<" "<<j<<" "<<z<<endl; } } } cout<<sum<<endl; return 0; }
不会啊~~(一开始想是素数结果发现不行2333)
思路:素数会在第60组超时...
后来发现是思维题啊。
n(任何数)mod1=0,而n%2=0或1 由于题中要求所有余数都不相等,那么n%2必须等于1 同理n%3=2...... 所以规律是n%k=k-1(k=1,2,3,4......)
#include<bits/stdc++.h> using namespace std; int main() { long long num,k; int flag=0; scanf("%lld%lld",&num,&k); for(long long i=1;i<=k;i++) { if(num%i!=(i-1)) { flag=1; break; } } if(flag) cout<<"No"<<endl; else cout<<"Yes"<<endl; return 0; }