2018.09.08 AtCoder Beginner Contest 109简要题解

比赛传送门
水题大赛?
全是水题啊!!!


T1

ABC333

就是判断是不是两个数都是奇数就行了。
代码:

#include
using namespace std;
int main(){
    int a,b;
    cin>>a>>b;
    if(a%2&&b%2)cout<<"Yes";
    else cout<<"No";
    return 0;
}

T2

Shiritori

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;
}

T3

Skip

就是求一堆数的最大公约数。
直接把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;
}

T4

Make Them Even

这题直接贪心就完了啊。
对于每一行,我们从左到右判断。
如果当前格子中是奇数,那么向右移,判断下一个格子;否则直接判断下一个格子。
注意:我们并不判断最后一列。
所有行操作完之后除最后一列之外全是偶数了。
于是最后一列从上到下判断。
如果当前格子中是奇数,那么向下移,判断下一个格子;否则直接判断下一个格子。
统计完后输出方案就行了。
代码:

#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?

你可能感兴趣的:(#,题解)