比赛传送门
水题大赛?
全是水题啊!!!
就是判断是不是两个数都是奇数就行了。
代码:
#include
using namespace std;
int main(){
int a,b;
cin>>a>>b;
if(a%2&&b%2)cout<<"Yes";
else cout<<"No";
return 0;
}
sb字符串模拟(打比赛读题失误233)
代码:
#include
using namespace std;
int n;
string w[105];
bool vis[26];
map<string,int>s;
int main(){
cin>>n;
bool f=true;
for(int i=1;i<=n;++i){
cin>>w[i];
if(s[w[i]])f=false;
s[w[i]]=1;
}
for(int i=2;i<=n;++i){
if(w[i-1][w[i-1].size()-1]==w[i][0])continue;
f=false;
}
if(f)cout<<"Yes";
else cout<<"No";
return 0;
}
就是求一堆数的最大公约数。
直接把X放进x数组里一起排序后求所有连续两个数的差值的最大公约数就行了。
代码;
#include
#define N 100005
using namespace std;
inline int read(){
int ans=0;
char ch=getchar();
while(!isdigit(ch))ch=getchar();
while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
return ans;
}
int n,x[N];
inline int gcd(int a,int b){while(b){int t=a;a=b,b=t%a;}return a;}
int main(){
n=read()+1;
for(int i=1;i<=n;++i)x[i]=read();
sort(x+1,x+n+1);
int g=x[2]-x[1];
for(int i=3;i<=n;++i)g=gcd(g,x[i]-x[i-1]);
cout<return 0;
}
这题直接贪心就完了啊。
对于每一行,我们从左到右判断。
如果当前格子中是奇数,那么向右移,判断下一个格子;否则直接判断下一个格子。
注意:我们并不判断最后一列。
所有行操作完之后除最后一列之外全是偶数了。
于是最后一列从上到下判断。
如果当前格子中是奇数,那么向下移,判断下一个格子;否则直接判断下一个格子。
统计完后输出方案就行了。
代码:
#include
#define N 505
using namespace std;
inline int read(){
int ans=0;
char ch=getchar();
while(!isdigit(ch))ch=getchar();
while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
return ans;
}
int h,w,a[N][N],pos[N];
bool vis[N][N],is[N][N];
struct Node{int a,b,c,d;};
vectorq;
int main(){
h=read(),w=read();
for(int i=1;i<=h;++i){
for(int j=1;j<=w;++j)a[i][j]=read();
for(int j=1;jif(a[i][j]&1)a[i][j+1]++,q.push_back((Node){i,j,i,j+1});
}
for(int i=1;iif(a[i][w]&1)a[i+1][w]++,q.push_back((Node){i,w,i+1,w});
cout<<q.size()<<'\n';
for(int i=0;i<q.size();++i)cout<<q[i].a<<' '<<q[i].b<<' '<<q[i].c<<' '<<q[i].d<<'\n';
return 0;
}
ak之后意外得知这场rating1200+就不计unrated了excuse me?