• AtCoder Beginner Contest 069【A,水,B,水,C,数学,D,暴力】


    A - K-City


    Time limit : 2sec / Memory limit : 256MB

    Score : 100 points

    Problem Statement

    In K-city, there are n streets running east-west, and m streets running north-south. Each street running east-west and each street running north-south cross each other. We will call the smallest area that is surrounded by four streets a block. How many blocks there are in K-city?

    Constraints

    • 2n,m100

    Input

    Input is given from Standard Input in the following format:

    n m
    

    Output

    Print the number of blocks in K-city.


    Sample Input 1

    Copy
    3 4
    

    Sample Output 1

    Copy
    6
    

    There are six blocks, as shown below:

    9179be829dc9810539213537d4c7398c.png

    Sample Input 2

    Copy
    2 2
    

    Sample Output 2

    Copy
    1
    

    There are one block, as shown below:

    997bfafa99be630b54d037225a5c68ea.png

    题目链接:http://abc069.contest.atcoder.jp/tasks/abc069_a

    分析:结论就是ans=(a-1)*(b-1)

    下面给出AC代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 inline int read()
     5 {
     6     int x=0,f=1;
     7     char ch=getchar();
     8     while(ch<'0'||ch>'9')
     9     {
    10         if(ch=='-')
    11             f=-1;
    12         ch=getchar();
    13     }
    14     while(ch>='0'&&ch<='9')
    15     {
    16         x=x*10+ch-'0';
    17         ch=getchar();
    18     }
    19     return x*f;
    20 }
    21 inline void write(int x)
    22 {
    23     if(x<0)
    24     {
    25         putchar('-');
    26         x=-x;
    27     }
    28     if(x>9)
    29     {
    30         write(x/10);
    31     }
    32     putchar(x%10+'0');
    33 }
    34 int main()
    35 {
    36     int a,b;
    37     cin>>a>>b;
    38     cout<<(a-1)*(b-1)<<endl;
    39     return 0;
    40 }

    B - i18n


    Time limit : 2sec / Memory limit : 256MB

    Score : 200 points

    Problem Statement

    The word internationalization is sometimes abbreviated to i18n. This comes from the fact that there are 18 letters between the first i and the last n.

    You are given a string s of length at least 3 consisting of lowercase English letters. Abbreviate s in the same way.

    Constraints

    • 3|s|100 (|s| denotes the length of s.)
    • s consists of lowercase English letters.

    Input

    Input is given from Standard Input in the following format:

    s
    

    Output

    Print the abbreviation of s.


    Sample Input 1

    Copy
    internationalization
    

    Sample Output 1

    Copy
    i18n
    

    Sample Input 2

    Copy
    smiles
    

    Sample Output 2

    Copy
    s4s
    

    Sample Input 3

    Copy
    xyz
    

    Sample Output 3

    Copy
    x1z
    

    题目链接:http://abc069.contest.atcoder.jp/tasks/abc069_b

    分析:输出第一个,最后一个就好咯

    下面给出AC代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 inline int read()
     5 {
     6     int x=0,f=1;
     7     char ch=getchar();
     8     while(ch<'0'||ch>'9')
     9     {
    10         if(ch=='-')
    11             f=-1;
    12         ch=getchar();
    13     }
    14     while(ch>='0'&&ch<='9')
    15     {
    16         x=x*10+ch-'0';
    17         ch=getchar();
    18     }
    19     return x*f;
    20 }
    21 inline void write(int x)
    22 {
    23     if(x<0)
    24     {
    25         putchar('-');
    26         x=-x;
    27     }
    28     if(x>9)
    29     {
    30         write(x/10);
    31     }
    32     putchar(x%10+'0');
    33 }
    34 char s[105];
    35 int main()
    36 {
    37     cin>>s;
    38     int len=strlen(s);
    39     cout<<s[0]<<len-2<<s[len-1]<<endl;
    40     return 0;
    41 }

    C - 4-adjacent


    Time limit : 2sec / Memory limit : 256MB

    Score : 400 points

    Problem Statement

    We have a sequence of length N, a=(a1,a2,…,aN). Each ai is a positive integer.

    Snuke's objective is to permute the element in a so that the following condition is satisfied:

    • For each 1iN1, the product of ai and ai+1 is a multiple of 4.

    Determine whether Snuke can achieve his objective.

    Constraints

    • 2N105
    • ai is an integer.
    • 1ai109

    Input

    Input is given from Standard Input in the following format:

    N
    a1 a2  aN
    

    Output

    If Snuke can achieve his objective, print Yes; otherwise, print No.


    Sample Input 1

    Copy
    3
    1 10 100
    

    Sample Output 1

    Copy
    Yes
    

    One solution is (1,100,10).


    Sample Input 2

    Copy
    4
    1 2 3 4
    

    Sample Output 2

    Copy
    No
    

    It is impossible to permute a so that the condition is satisfied.


    Sample Input 3

    Copy
    3
    1 4 1
    

    Sample Output 3

    Copy
    Yes
    

    The condition is already satisfied initially.


    Sample Input 4

    Copy
    2
    1 1
    

    Sample Output 4

    Copy
    No
    

    Sample Input 5

    Copy
    6
    2 7 1 8 2 8
    

    Sample Output 5

    Copy
    Yes
    

    题目链接:http://abc069.contest.atcoder.jp/tasks/arc080_a

    分析:统计4的倍数,2的倍数还有不是这两个的倍数的数,然后2个2的倍数等于4的倍数,然后就这样了!

    下面给出AC代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 inline int read()
     5 {
     6     int x=0,f=1;
     7     char ch=getchar();
     8     while(ch<'0'||ch>'9')
     9     {
    10         if(ch=='-')
    11             f=-1;
    12         ch=getchar();
    13     }
    14     while(ch>='0'&&ch<='9')
    15     {
    16         x=x*10+ch-'0';
    17         ch=getchar();
    18     }
    19     return x*f;
    20 }
    21 inline void write(int x)
    22 {
    23     if(x<0)
    24     {
    25         putchar('-');
    26         x=-x;
    27     }
    28     if(x>9)
    29     {
    30         write(x/10);
    31     }
    32     putchar(x%10+'0');
    33 }
    34 int main()
    35 {
    36     int n;
    37     cin>>n;
    38     int a=0,b=0,c=0;
    39     for(int i=0;i<n;i++)
    40     {
    41         ll x;
    42         x=read();
    43         if(x%4==0)
    44             a++;
    45         else if(x%2==0)
    46             b++;
    47         else c++;
    48     }
    49     if(b>0)
    50         c++;
    51     if(a+1>=c)
    52         cout<<"Yes"<<endl;
    53     else 
    54     cout<<"No"<<endl;
    55     return 0;
    56 }

    D - Grid Coloring


    Time limit : 2sec / Memory limit : 256MB

    Score : 400 points

    Problem Statement

    We have a grid with H rows and W columns of squares. Snuke is painting these squares in colors 1, 2, , N. Here, the following conditions should be satisfied:

    • For each i (1iN), there are exactly ai squares painted in Color i. Here, a1+a2++aN=HW.
    • For each i (1iN), the squares painted in Color i are 4-connected. That is, every square painted in Color i can be reached from every square painted in Color i by repeatedly traveling to a horizontally or vertically adjacent square painted in Color i.

    Find a way to paint the squares so that the conditions are satisfied. It can be shown that a solution always exists.

    Constraints

    • 1H,W100
    • 1NHW
    • ai1
    • a1+a2++aN=HW

    Input

    Input is given from Standard Input in the following format:

    H W
    N
    a1 a2  aN
    

    Output

    Print one way to paint the squares that satisfies the conditions. Output in the following format:

    c11  c1W
    :
    cH1  cHW
    

    Here, cij is the color of the square at the i-th row from the top and j-th column from the left.


    Sample Input 1

    Copy
    2 2
    3
    2 1 1
    

    Sample Output 1

    Copy
    1 1
    2 3
    

    Below is an example of an invalid solution:

    1 2
    3 1
    

    This is because the squares painted in Color 1 are not 4-connected.


    Sample Input 2

    Copy
    3 5
    5
    1 2 3 4 5
    

    Sample Output 2

    Copy
    1 4 4 4 3
    2 5 4 5 3
    2 5 5 5 3
    

    Sample Input 3

    Copy
    1 1
    1
    1
    

    Sample Output 3

    Copy
    1
    

    题目链接:http://abc069.contest.atcoder.jp/tasks/arc080_b

    分析:从一个点可以到达其它所有的点,直接来一个水平填充好像就过了

    下面给出AC代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 inline int read()
     5 {
     6     int x=0,f=1;
     7     char ch=getchar();
     8     while(ch<'0'||ch>'9')
     9     {
    10         if(ch=='-')
    11             f=-1;
    12         ch=getchar();
    13     }
    14     while(ch>='0'&&ch<='9')
    15     {
    16         x=x*10+ch-'0';
    17         ch=getchar();
    18     }
    19     return x*f;
    20 }
    21 inline void write(int x)
    22 {
    23     if(x<0)
    24     {
    25         putchar('-');
    26         x=-x;
    27     }
    28     if(x>9)
    29     {
    30         write(x/10);
    31     }
    32     putchar(x%10+'0');
    33 }
    34 int w,h,n;
    35 int s[105][105];
    36 int cnt[10005];
    37 int main()
    38 {
    39     h=read();
    40     w=read();
    41     n=read();
    42     for(int i=1;i<=n;i++)
    43         cnt[i]=read();
    44     int k=1;
    45     for(int i=1;i<=h;i++)
    46     {
    47         if(i%2==1)
    48         {
    49             for(int j=1;j<=w;j++)
    50             {
    51                 if(cnt[k]==0)
    52                 k++;
    53                 cnt[k]--;
    54                 s[i][j]=k;
    55             }
    56         }
    57     else
    58     {
    59         for(int j=w;j>0;j--)
    60         {
    61             if(cnt[k]==0)
    62               k++;
    63             cnt[k]--;
    64             s[i][j]=k;
    65         }
    66     }
    67     }
    68     for(int i=1;i<=h;i++)
    69     {
    70         for(int j=1;j<=w;j++)
    71             printf("%d ",s[i][j]);
    72         printf("
    ");
    73     }
    74     return 0;
    75 }
  • 相关阅读:
    SQL-SQL介绍
    springcloud-服务注册与发现
    java基础-初识类
    java基础- Java编程规范与注释
    java基础-数据类型之殇
    java基础- 你真的了解运算符吗?
    java基础-控制流程语句
    java基础-对象的初始化
    TypeScript 联合类型
    TypeScript 元组
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/7296385.html
Copyright © 2020-2023  润新知