2020年3月14日Panasonic Programming Contest 2020

Posted blogxsc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020年3月14日Panasonic Programming Contest 2020相关的知识,希望对你有一定的参考价值。

A Kth Term

题意:输出数组对应坐标的值,注意,坐标是从1开始的

题解:用数组存起来就行

代码:

技术图片
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
    int num[]={0,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;
    cin>>n;
    cout<<num[n]<<endl;
    return 0;
}
View Code

 

B Bishop
题意:题目给你一个r行c列的矩阵,问你按如下规则移动,最多可以移动几个方形,最初位置在最左上角

    r1+c1=r2+c2

    r1 - c1=r2-c2

技术图片

 题解:仔细观察可以找到规律,可以找到一个循环

 代码:

技术图片
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 ll h,w;
 5 int main(){
 6     cin>>h>>w;//输入行和列
 7     ll sum=0;
 8     if(h==1){//只有一行 
 9         sum=1;
10     }else if(w==1){
11         sum=1;
12     }else{//至少有两行 
13         ll a=w;
14         if(h%2==0){//偶数 
15             sum=a*(h/2);
16         }else{//奇数 
17             sum=a*(h/2);
18             if(w%2!=0){
19                 w++;
20             }
21             sum=sum+w/2;
22         }
23     }
24     cout<<sum<<endl;
25     return 0;
26 }
View Code

C Sqrt Inequality

题意:给你三个数:a,b,c,要我们判断√a+√b<√c是否成立,

题解:用简单的方法处理肯定会wa,这里要对式子做出相应的数学处理

代码;

技术图片
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a,b,c;
int main(){
    cin>>a>>b>>c;
    ll t=4*a*b;
    ll tt=c*c+(a+b)*(a+b)-2*c*(a+b);
    if(t<tt&&(c-a-b)>0){
        cout<<"Yes"<<endl;
    }else{
        cout<<"No"<<endl;
    }
    return 0;
}
View Code

D String Equivalence

题意:题目定义了两个字符串s,t,当这两个字符串符合题目所给的要求的时候,我们将它们视为同构的,并且,当s<t时,我们这个时候将s看成是标准格式,这个时候,我们要出输出s而不输出t,然     后,题目要你输出长度为n的全部的是标准格式的字符串。

题解:这题是一个简单的dfs题目,给题目给出字符串长度n,并且要字典序最小的,我们应该从a开始dfs,然后字符串的长度达到n就输出,注意,这里是有一定的规则的,要符合题目所给的“同构”     原则,假如现在我们要搜索第k位,这个时候假如前k-1位已经有dif种字母,这个时候,我们在第k位我们可以遍历的字母数为dif+1

代码:

技术图片
#include<iostream>
using namespace std;
int n;
int dif=0;
char s[1010];
void dfs(int i){
    if(i==n+1){
        cout<<s+1<<endl;
        return ;
    }
    for(int j=0;j<=dif;j++){
        s[i]=a+j;
        int temp=dif;
        if(j==dif){
            dif++;
        }
        dfs(i+1);
        dif=temp;
    }
}
int main(){
    cin>>n;
    dfs(1);
    return 0;
} 
View Code

 

以上是关于2020年3月14日Panasonic Programming Contest 2020的主要内容,如果未能解决你的问题,请参考以下文章

2020年3月14日 BAPC2019 比赛补题报告

2021年7月3日二一团伙贡献啥服务器并感染数几个节点

62solidity环境搭建编译及编写合约-3——2020年07月12日12:55:51

2020年8月10日-8月14日周报

请记住2038年1月19日3时14分7秒

54go mod使用——2020年07月11日15:46:14