博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #545 (Div. 2) ABCD 题解
阅读量:5170 次
发布时间:2019-06-13

本文共 2671 字,大约阅读时间需要 8 分钟。

A. Sushi for Two

分析

模拟题,只需要模拟找出连续最长的111222或222111这种数段即可.

代码

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 const int INF=0x3f3f3f3f;13 using namespace std;14 15 int s[100000];16 17 int main()18 {19 int n;20 cin>>n;21 for(int i=0;i
View Code

 

B. Circus

分析

这题需要找出题目中的数学关系,先把人分成4种(0,0)(1,0)(0,1)(1,1),人数分别为a0,b0,c0,d0,总人数为n,假设第一场4种人分别选了a,b,c,d个,依题意有a+b+c+d=n/2,b+d=c0-c+d0-d,这个方程组有两个方程4个变量,即有两个未知量,分别枚举其中两个未知量,来确定另外两个未知量,只要保证算出来的a,b,c,d合法即可.(下面代码思路相同不过设置的变量不同,仅供参考)

代码

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 const int INF=0x3f3f3f3f;13 using namespace std;14 15 int a[5000],b[5000],c[5000],d[5000];16 char fir[5000],sec[5000];17 18 int main()19 {20 int na=0,nb=0,nc=0,nd=0;21 int n;22 cin>>n;23 getchar();24 for(int i=0;i
=k&&k>=0&&l>=0&&nd>=l)44 {45 s=1;46 break;47 }48 }49 if(s) break;50 }51 52 if(i<=na&&j<=nb)53 {54 for(int q=0;q
View Code

 

C. Skyscrapers

分析

这道题读懂题意后最关键的是离散化操作,这个操作会了码一下细节基本就过了.

代码

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 const int INF=0x3f3f3f3f;14 using namespace std;15 16 typedef pair
P;17 int row[1000][1000];18 int r[1000];19 int column[1000][1000];20 int c[1000];21 int mapp[1000][1000];22 vector
v;23 24 int main()25 {26 int n,m;27 cin>>n>>m;28 for(int i=0;i
::iterator e=unique(v.begin(),v.end());37 r[i]=e-v.begin();38 for(int j=0;j
::iterator e=unique(v.begin(),v.end());47 c[j]=e-v.begin();48 for(int i=0;i
=b) ans=max(r[i],c[j]+a-b);67 else ans=max(r[i]+b-a,c[j]);68 cout<
<<' ';69 }70 cout<
View Code

 

D. Camp Schedule

分析

kmp算法的题,只需要把第一个字符串拆成1和0,再求出第二个字符串的最小循环节,然后不断按最小循环节顺序输出1,0直到拆分的1或0不够用为止,再把剩下的0或1输出完即可.

代码

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 const int INF=0x3f3f3f3f;13 using namespace std;14 15 char a[600000];16 int b[600000];17 18 void kmp(int cnt)19 {20 int i=0;21 int k=-1;22 b[0]=-1;23 while(i
View Code

 

转载于:https://www.cnblogs.com/VBEL/p/10623920.html

你可能感兴趣的文章