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
- 1≤K≤321≤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
6
Sample Output 1 Copy
2
The 66-th element is 22.
Sample Input 2 Copy
27
Sample Output 2 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
- r1−c1=r2−c2r1−c1=r2−c2
For example, in the following figure, the bishop can move to any of the red squares in one move:
Constraints
- 1≤H,W≤1091≤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
4 5
Sample Output 1 Copy
10
The bishop can reach the cyan squares in the following figure:
Sample Input 2 Copy
7 3
Sample Output 2 Copy
11
The bishop can reach the cyan squares in the following figure:
Sample Input 3 Copy
1000000000 1000000000
Sample Output 3 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
- 1≤a,b,c≤1091≤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
2 3 9
Sample Output 1 Copy
No
√2+√3<√92+3<9 does not hold.
Sample Input 2 Copy
2 3 10
Sample Output 2 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.
- si≠sjsi≠sj and ti≠tjti≠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 ss, s≤ts≤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
- 1≤N≤101≤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
1
Sample Output 1 Copy
a
Sample Input 2 Copy
2
Sample Output 2 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;
}
最新文章
- PHP开源论坛PunBB在IIS上部署和安装
- 安卓学习进程(2)Android开发环境的搭建
- Eclipse调整双击选取的字符颜色背景
- C#--网络流Stream、字节数组保存到字符串中
- SCOI2016滚粗记
- 文件夹IsShow字段为空
- ServletContextListener 解析用法
- 【转】CodeGear RAD 2007 SP4
- Java实现发送邮件(可配置)忘记密码,发送邮件
- C#,记录--一个方法中,完成对数据增删改操作
- 【js】js声明与数据类型
- 我在web前端路上的第一个脚印
- Java笔记(十七) 异步任务执行服务
- Asp.Net WebApi核心对象解析(一)
- mina2的processor
- SQL SERVER 数据库字段简单加密解密
- JNI 简单例子
- maven project创建填充项
- 10G client连接数据库
- DotNetOpenAuth实践之WCF资源服务器配置
热门文章
- Tomcat-8.5.23 基于域名和端口的虚拟主机
- Docker学习笔记之基本命令使用
- 【ORACLE】删除表空间,没有删除数据文件怎么办?解决办法
- ABAP program lines are wider than the internal table
- let关键字:加强版的var关键字
- STGAN: A Unified Selective Transfer Network for Arbitrary Image Attribute Editing 阅读笔记和pytorch代码解读
- Android 开发学习进程0.27 kotlin使用 和viewbinding的使用
- Convert a string into an ArrayBuffer
- Set、Map的区别
- loj10002喷水装置