zoukankan      html  css  js  c++  java
  • Atcoder Panasonic Programming Contest 2020

    前三题随便写,D题是一道dfs的水题,但当时没有找到规律,直接卡到结束

    A - Kth Term / 


    Time Limit: 2 sec / Memory Limit: 1024 MB

    Score : 100100 points

    Problem Statement

    Print the KK-th element of the following sequence of length 3232:

    1, 1, 1, 2, 1, 2, 1, 5, 2, 2, 1, 5, 1, 2, 1, 14, 1, 5, 1, 5, 2, 2, 1, 15, 2, 2, 5, 4, 1, 4, 1, 51
    

    Constraints

    • 1K321≤K≤32
    • All values in input are integers.

    Input

    Input is given from Standard Input in the following format:

    KK
    

    Output

    Print the KK-th element.


    Sample Input 1 Copy

    Copy
    6
    

    Sample Output 1 Copy

    Copy
    2
    

    The 66-th element is 22.


    Sample Input 2 Copy

    Copy
    27
    

    Sample Output 2 Copy

    Copy
    5
    

    The 2727-th element is 55.

    随便写

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string.h>
    #include <math.h>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <map>
    #include <set>
    #define ll long long
    const int N=1e6+10;
    using namespace std;
    typedef pair<int,int>PII;
    int a[32]={1, 1, 1, 2, 1, 2, 1, 5, 2, 2, 1, 5, 1, 2, 1, 14, 1, 5, 1, 5, 2, 2, 1, 15, 2, 2, 5, 4, 1, 4, 1, 51};
    int n;
    int main(){
     ios::sync_with_stdio(false);
      cin>>n;
      cout<<a[n-1]<<endl;
      return 0;
    }

    B - Bishop / 


    Time Limit: 2 sec / Memory Limit: 1024 MB

    Score : 200200 points

    Problem Statement

    We have a board with HH horizontal rows and WW vertical columns of squares. There is a bishop at the top-left square on this board. How many squares can this bishop reach by zero or more movements?

    Here the bishop can only move diagonally. More formally, the bishop can move from the square at the r1r1-th row (from the top) and the c1c1-th column (from the left) to the square at the r2r2-th row and the c2c2-th column if and only if exactly one of the following holds:

    • r1+c1=r2+c2r1+c1=r2+c2
    • r1c1=r2c2r1−c1=r2−c2

    For example, in the following figure, the bishop can move to any of the red squares in one move:

    Constraints

    • 1H,W1091≤H,W≤109
    • All values in input are integers.

    Input

    Input is given from Standard Input in the following format:

    H WH W
    

    Output

    Print the number of squares the bishop can reach.


    Sample Input 1 Copy

    Copy
    4 5
    

    Sample Output 1 Copy

    Copy
    10
    

    The bishop can reach the cyan squares in the following figure:


    Sample Input 2 Copy

    Copy
    7 3
    

    Sample Output 2 Copy

    Copy
    11
    

    The bishop can reach the cyan squares in the following figure:


    Sample Input 3 Copy

    Copy
    1000000000 1000000000
    

    Sample Output 3 Copy

    Copy
    500000000000000000

    如果行是偶数,那么涂色的方格数就是 行数/2*列数,如果是奇数, 行数/2(向上取整)*列数-列数/2,因为每一列的涂色方块相差1;
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string.h>
    #include <math.h>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <map>
    #include <set>
    #define ll long long
    const int N=1e6+10;
    using namespace std;
    typedef pair<int,int>PII;
     
    ll n,m,ans;
     
    int main(){
     ios::sync_with_stdio(false);
       cin>>n>>m;
       if(n==1 || m==1) ans=1;
       else if(n%2==0)
         ans=((n+1)/2)*m;
       else 
         ans=((n+1)/2)*m-m/2;
        cout<<ans<<endl;
      return 0;
    }

    C - Sqrt Inequality / 


    Time Limit: 2 sec / Memory Limit: 1024 MB

    Score : 300300 points

    Problem Statement

    Does a+b<ca+b<c hold?

    Constraints

    • 1a,b,c1091≤a,b,c≤109
    • All values in input are integers.

    Input

    Input is given from Standard Input in the following format:

    a b ca b c
    

    Output

    If a+b<ca+b<c, print Yes; otherwise, print No.


    Sample Input 1 Copy

    Copy
    2 3 9
    

    Sample Output 1 Copy

    Copy
    No
    

    2+3<92+3<9 does not hold.


    Sample Input 2 Copy

    Copy
    2 3 10
    

    Sample Output 2 Copy

    Copy
    Yes
    

    2+3<102+3<10 holds.

     没什么好说的,两边平方一下确保不会卡精度

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string.h>
    #include <math.h>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <map>
    #include <set>
    #define ll long long
    const int N=1e6+10;
    using namespace std;
    typedef pair<int,int>PII;
     
    long double a,b,c;
     
    int main(){
     ios::sync_with_stdio(false);
      cin>>a>>b>>c;
        c=c-a-b;
        if(c<=0) cout<<"No"<<endl;
        else{
        c=c*c/4;
        if(a*b<c) cout<<"Yes"<<endl;
        else  cout<<"No"<<endl;
        }
      return 0;
    }

    D - String Equivalence / 


    Time Limit: 2 sec / Memory Limit: 1024 MB

    Score : 400400 points

    Problem Statement

    In this problem, we only consider strings consisting of lowercase English letters.

    Strings ss and tt are said to be isomorphic when the following conditions are satisfied:

    • |s|=|t||s|=|t| holds.
    • For every pair i,ji,j, one of the following holds:
      • si=sjsi=sj and ti=tjti=tj.
      • sisjsi≠sj and titjti≠tj.

    For example, abcac and zyxzx are isomorphic, while abcac and ppppp are not.

    A string ss is said to be in normal form when the following condition is satisfied:

    • For every string tt that is isomorphic to sssts≤t holds. Here  denotes lexicographic comparison.

    For example, abcac is in normal form, but zyxzx is not since it is isomorphic to abcac, which is lexicographically smaller than zyxzx.

    You are given an integer NN. Print all strings of length NN that are in normal form, in lexicographically ascending order.

    Constraints

    • 1N101≤N≤10
    • All values in input are integers.

    Input

    Input is given from Standard Input in the following format:

    NN
    

    Output

    Assume that there are KK strings of length NN that are in normal form: w1,,wKw1,…,wK in lexicographical order. Output should be in the following format:

    w1w1
    ::
    wKwK
    

    Sample Input 1 Copy

    Copy
    1
    

    Sample Output 1 Copy

    Copy
    a
    

    Sample Input 2 Copy

    Copy
    2
    

    Sample Output 2 Copy

    Copy
    aa
    ab
    

     首先在纸上列一下,找出规律,直接dfs全排列,但是要注意第k位能取的字母数是前k-1字母的种类数+1;

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string.h>
    #include <math.h>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <map>
    #include <set>
    #define ll long long
    const int N=1e6+10;
    using namespace std;
    typedef pair<int,int>PII;
     
    int n;
    int p=0,dif=0;
    char s[N];
     
    void dfs(int u){
       if(u==n){
          puts(s);
          return;
       }
      
       for(char i=0;i<=dif;++i){
         s[p++]=i+'a';
         int tmp=dif;
         if(i==dif) dif++;
         dfs(u+1);
         p--;
         dif=tmp;
       }
     
    }
     
    int main(){
     ios::sync_with_stdio(false);
      cin>>n;
      dfs(0);
      return 0;
    }
  • 相关阅读:
    verilog BRAM 读写
    verilog 语法一 led 翻转
    面试 遇到 问题
    S32K144+UJA1169 (四 ) S32K144 SPI1 功能初始化
    S32K144+UJA1169 ( 三 ) S32K144 SPI1 功能初始化
    S32K144+UJA1169 ( 二 ) S32K144 SPI1 对应的引脚 初始化 为 SPI 功能
    S32K144+UJA1169 ( 一 ) 连接框架+1169 功能 说明
    编译 xboot
    make clean make[1]:sdl2-config:命令未找到
    lwip 内存配置和使用,以及 如何 计算 lwip 使用了多少内存?
  • 原文地址:https://www.cnblogs.com/lr599909928/p/12519631.html
Copyright © 2011-2022 走看看