zoukankan      html  css  js  c++  java
  • 比赛总结——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((1*a*b)%2==1||(2*a*b)%2==1||(3*a*b)%2==1)
        printf("Yes
    ");
      else
        printf("No
    ");
      return 0;
    }

    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=1;i<=n;i++){
        cin>>a;
        if(s.count(a)){
          printf("No
    ");
          return 0;
        }
        if(i>1&&a[0]!=lat){
          printf("No
    ");
          return 0;
        }
        lat=a[a.length()-1];
        s.insert(a);
      }
      printf("Yes
    ");
      return 0;
    }

    T3

    有趣的GCD应用

    秒掉

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

    T4

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

    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #define int long long
    using namespace std;
    int mat[510][510],mat2[510][510],ans=0;
    int h,w;
    signed main(){
      scanf("%lld %lld",&h,&w);
      for(int i=1;i<=h;i++)
        for(int j=1;j<=w;j++)
          scanf("%lld",&mat[i][j]),mat2[i][j]=mat[i][j];
      for(int i=1;i<=h;i++)
        for(int j=1;j<=w-1;j++){
          if(mat2[i][j]%2==0)
            continue;
          else{
            ans++;
            mat2[i][j+1]++;
            mat2[i][j]--;
          }
          //ans+=mat2[i][j],mat2[i][j+1]+=mat2[i][j],mat2[i][j]=0;
        }
      for(int i=1;i<=h-1;i++){
        //ans+=mat2[i][w],mat2[i+1][w]+=mat2[i][w],mat2[i][w]=0;
        if(mat2[i][w]%2==0)
          continue;
        else{
          ans++;
          mat2[i+1][w]++;
          mat2[i][w]--;
        }
      }
      printf("%lld
    ",ans);
      for(int j=1;j<=h;j++)
        for(int i=1;i<=w-1;i++){
          if(mat[j][i]%2==0)
            continue;
          else{
            printf("%lld %lld %lld %lld
    ",j,i,j,i+1);
            mat[j][i+1]++;
            mat[j][i]--;
          }
    //      for(int k=1;k<=mat[j][i];k++){
    //        printf("%d %d %d %d
    ",j,i,j,i+1);
    //        mat[j][i+1]+=1;
    //      }
    //      mat[j][i]=0;
      }
      for(int i=1;i<=h-1;i++){
        if(mat[i][w]%2==0)
          continue;
        else{
          mat[i+1][w]++;
          mat[i][w]--;
          printf("%lld %lld %lld %lld
    ",i,w,i+1,w);
        }
      }
    //    for(int k=1;k<=mat[i][w];k++)
    //      printf("%d %d %d %d
    ",i,w,i+1,w),mat[i+1][w]++;
      return 0;
    }
  • 相关阅读:
    丑数——剑指offer面试题34
    把整数排成最小的数——剑指offer面试题33
    从1到n整数中1出现的次数——剑指offer面试题32
    各种排序方法及其比较
    scrapy安装
    水仙花数
    分数化小数(decimal)
    子序列的和
    倒三角
    韩信点兵
  • 原文地址:https://www.cnblogs.com/dreagonm/p/9610877.html
Copyright © 2011-2022 走看看