比赛总结——atcoder beginner contest 109

第一次AK的ABC

虽然题非常简单

但是值得纪念一下

T1

一道很水的题

不存在做法

纯粹乱跑

但是我把Yes打成YES了,哭唧唧

#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int main(){
int a,b;
scanf("%d %d",&a,&b);
if((*a*b)%==||(*a*b)%==||(*a*b)%==)
printf("Yes\n");
else
printf("No\n");
return ;
}

T2

就是普通的判重和模拟

stl真好用

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <set>
#include <iostream>
using namespace std;
int n;
set<string> s;
string a;
char lat;
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
cin>>a;
if(s.count(a)){
printf("No\n");
return ;
}
if(i>&&a[]!=lat){
printf("No\n");
return ;
}
lat=a[a.length()-];
s.insert(a);
}
printf("Yes\n");
return ;
}

T3

有趣的GCD应用

秒掉

#include <cstdio>
#include <cstring>
#include <algorithm>
#define int long long
using namespace std;
int n,x,pos[];
int gcd(int a,int b){
return (b==)?a:gcd(b,a%b);
}
signed main(){
scanf("%lld %lld",&n,&x);
for(int i=;i<=n;i++)
scanf("%lld",&pos[i]);
for(int i=;i<=n;i++)
pos[i]-=x;
++n;
pos[n]=;
sort(pos+,pos+n+);
int ans=pos[]-pos[];
for(int i=;i<=n-;i++){
ans=gcd(ans,pos[i+]-pos[i]);
}
printf("%lld",ans);
return ;
}

T4

乍一看不好做其实很水的构造

#include <cstdio>
#include <algorithm>
#include <cstring>
#define int long long
using namespace std;
int mat[][],mat2[][],ans=;
int h,w;
signed main(){
scanf("%lld %lld",&h,&w);
for(int i=;i<=h;i++)
for(int j=;j<=w;j++)
scanf("%lld",&mat[i][j]),mat2[i][j]=mat[i][j];
for(int i=;i<=h;i++)
for(int j=;j<=w-;j++){
if(mat2[i][j]%==)
continue;
else{
ans++;
mat2[i][j+]++;
mat2[i][j]--;
}
//ans+=mat2[i][j],mat2[i][j+1]+=mat2[i][j],mat2[i][j]=0;
}
for(int i=;i<=h-;i++){
//ans+=mat2[i][w],mat2[i+1][w]+=mat2[i][w],mat2[i][w]=0;
if(mat2[i][w]%==)
continue;
else{
ans++;
mat2[i+][w]++;
mat2[i][w]--;
}
}
printf("%lld\n",ans);
for(int j=;j<=h;j++)
for(int i=;i<=w-;i++){
if(mat[j][i]%==)
continue;
else{
printf("%lld %lld %lld %lld\n",j,i,j,i+);
mat[j][i+]++;
mat[j][i]--;
}
// for(int k=1;k<=mat[j][i];k++){
// printf("%d %d %d %d\n",j,i,j,i+1);
// mat[j][i+1]+=1;
// }
// mat[j][i]=0;
}
for(int i=;i<=h-;i++){
if(mat[i][w]%==)
continue;
else{
mat[i+][w]++;
mat[i][w]--;
printf("%lld %lld %lld %lld\n",i,w,i+,w);
}
}
// for(int k=1;k<=mat[i][w];k++)
// printf("%d %d %d %d\n",i,w,i+1,w),mat[i+1][w]++;
return ;
}
上一篇:Android apk couldn't install


下一篇:SVN仓库迁移到Git遇到的两个问题和解决办法