前三题随便写,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

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
  • 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

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

  • 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

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.
    • 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 sss≤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

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;
}

最新文章

  1. PHP开源论坛PunBB在IIS上部署和安装
  2. 安卓学习进程(2)Android开发环境的搭建
  3. Eclipse调整双击选取的字符颜色背景
  4. C#--网络流Stream、字节数组保存到字符串中
  5. SCOI2016滚粗记
  6. 文件夹IsShow字段为空
  7. ServletContextListener 解析用法
  8. 【转】CodeGear RAD 2007 SP4
  9. Java实现发送邮件(可配置)忘记密码,发送邮件
  10. C#,记录--一个方法中,完成对数据增删改操作
  11. 【js】js声明与数据类型
  12. 我在web前端路上的第一个脚印
  13. Java笔记(十七) 异步任务执行服务
  14. Asp.Net WebApi核心对象解析(一)
  15. mina2的processor
  16. SQL SERVER 数据库字段简单加密解密
  17. JNI 简单例子
  18. maven project创建填充项
  19. 10G client连接数据库
  20. DotNetOpenAuth实践之WCF资源服务器配置

热门文章

  1. Tomcat-8.5.23 基于域名和端口的虚拟主机
  2. Docker学习笔记之基本命令使用
  3. 【ORACLE】删除表空间,没有删除数据文件怎么办?解决办法
  4. ABAP program lines are wider than the internal table
  5. let关键字:加强版的var关键字
  6. STGAN: A Unified Selective Transfer Network for Arbitrary Image Attribute Editing 阅读笔记和pytorch代码解读
  7. Android 开发学习进程0.27 kotlin使用 和viewbinding的使用
  8. Convert a string into an ArrayBuffer
  9. Set、Map的区别
  10. loj10002喷水装置