Codeforces Round #704 (Div. 2)
A. Three swimmers
题意:第一个人跳水是每隔a分钟去一次,第二个人跳水是每隔b分钟,第三个人跳水是每隔c分钟,一个人准备在p分钟的 时候去跳水,问需要最少等待多长时间才能轮到前三个人
思路:数学公式进行找,从头到尾挨个人找就行不用混着,混着也没有办法下手
当时:1)当时想着从头开始然后一直用while循环,根本想不到用数学公式,也没有想到是分开来计算的
代码:

1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<cstring>
6 using namespace std;
7 int main(){
8 int t;
9 scanf("%d",&t);
10 while(t--){
11 long long int p,a,b,c;
12 long long int cc=1e18;
13 scanf("%lld %lld %lld %lld",&p,&a,&b,&c);
14 long long int aa=a,bb=b,pp=p,t=c;
15 long long int a1,b1,c1;
16 if(p%a!=0){
17 a1=((p/a)+1)*a-p;
18 }else{
19 a1=0;
20 }
21 if(p%b!=0){
22 b1=((p/b)+1)*b-p;
23 }else{
24 b1=0;
25 }
26 if(p%c!=0){
27 c1=((p/c)+1)*c-p;
28 }else{
29 c1=0;
30 }
31 cc=min(cc,a1);
32 cc=min(cc,b1);
33 cc=min(cc,c1);
34
35 printf("%lld\n",cc);
36 }
37 }
B. Card Deck
题意:就是给定一组数列,然后这是一摞牌从最底下往上的顺序,然后进行选牌,让最大在下面,保证
数值最大
思路:就是直接从后往前把最大的选出来就行了,其实也是暴力循环找,从后往前,因为数字是从1-n标记的,第一个就是找n,把n和它之后的数组进行输出并标记一下,然后再通过标记找下一个最大值
代码:

1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<cstring>
6 using namespace std;
7 const int maxx=1e5+10;
8 int main(){
9 int t;
10 scanf("%d",&t);
11 while(t--){
12 int n;
13 int a[maxx],b[maxx]={0};
14 scanf("%d",&n);
15 for(int i=0;i<n;i++){
16 scanf("%d",&a[i]);
17 }
18 int t=n,now=n-1;
19 for(int i=n-1;i>=0;i--){
20 if(a[i]==t){
21 for(int j=i;j<=now;j++){
22 printf("%d ",a[j]);
23 b[a[j]]=1;
24 }
25 now=i-1;
26 for(int j=t;j>0;j--){
27 if(b[j]==0){
28 t=j;
29 break;
30 }
31 }
32 }
33 }
34 printf("\n");
35 }
36 }
C. Maximum width
题意:两个数组,第二个数组包含在第一个里面,问其宽度最大是多少

思路:最大肯定是前面的在最左边,后面的在最右边,然后开两个数组,一个记录第二个数组,每一个字符在第一个字符串中最左边的位置,一个记录在最右边的位置,然后通过记录找到最大最小的差值是多少
记:1)思考极端情况,分出最左最右;2)分别进行计算,尤其是很多形式一样的思路和公式之类的东西;3)找对应位置最左最右的时候,应该学习一下这中想法,最开始把它想象成一对一的那种,所以如果是一对一就应该每次减一,然后在这个基础上进行加加减减的变化找到对应位置
代码:

1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<cstring>
6 using namespace std;
7 const int maxx=2e5+10;
8 int main(){
9 int n,m;
10 scanf("%d %d",&n,&m);
11 char a[maxx],b[maxx];
12 getchar();
13 for(int i=1;i<=n;i++){
14 scanf("%c",&a[i]);
15 }
16 getchar();
17 for(int i=1;i<=m;i++){
18 scanf("%c",&b[i]);
19 }
20 int l[maxx],r[maxx];
21 r[m+1]=n+1;
22 for(int i=m;i>0;i--){
23 r[i]=r[i+1]-1;
24 while(a[r[i]]!=b[i]){
25 r[i]--;
26 }
27 }
28 /* printf("%s\n",a);
29 printf("%s\n",b);*/
30 l[0]=0;
31 for(int i=1;i<=m;i++){
32 l[i]=l[i-1]+1;
33 while(a[l[i]]!=b[i]){
34 l[i]++;
35 }
36 }
37 /* for(int i=0;i<=m+1;i++){
38 printf("%d ",l[i]);
39 }
40 printf("\n");
41 for(int i=0;i<=m+1;i++){
42 printf("%d ",r[i]);
43 }
44 printf("\n");*/
45 int maxn=0;
46 for(int i=1;i<m;i++){
47 maxn=max(r[i+1]-l[i],maxn);
48 }
49 printf("%d\n",maxn);
50 }
这一套题:要想着很多东西不要混着,混着算可能很麻烦,要分开考虑和计算
Codeforces Round #704 (Div. 2)的更多相关文章
- Codeforces Round #704 (Div. 2), problem: (C) Maximum width还是要多学习
Problem - C - Codeforces 看清题目要求, 最重要部分在第二段. 大佬最后给出的代码果然简单, 思路简单化, 未必非要把答案在一个大括号里全部完成, 两个指针同时跑,中间加了一堆 ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- Codeforces Round #279 (Div. 2) ABCDE
Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name A Team Olympiad standard input/outpu ...
- Codeforces Round #262 (Div. 2) 1003
Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...
- Codeforces Round #262 (Div. 2) 1004
Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...
- Codeforces Round #371 (Div. 1)
A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...
随机推荐
- Spring(一):Spring概述及相关概念
Spring简介 Spring主要作用是用来解耦,降低代码之间的耦合度.根据功能的不同,可以将系统的代码分为主业务逻辑与系统服务逻辑. 主业务逻辑之间代码联系紧密,相互调用较多,复用性相对较低: 系统 ...
- python网络编程--TCP客户端的开发
#导入socket模块 2 import socket 3 #参数说明 4 """ 5 socket类的介绍 6 创建客户端socket对象 7 socket.socke ...
- 安装anaconda和第三方库tushare
安装anaconda和第三方库tushare 血泪教训 下载32位的anaconda(同你Python版本,不然会碰到第三方库无法import的问题) 安装anaconda 安装到C盘会比较快,安装到 ...
- clickhouse 亿级数据性能测试
clickhouse 在数据分析技术领域早已声名远扬,如果还不知道可以 点这里 了解下. 最近由于项目需求使用到了 clickhouse 做分析数据库,于是用测试环境做了一个单表 6 亿数据量的性能测 ...
- c/s应用程序自动更新组件GeneralUpdate3.2.1发布
一.组件简介 GeneralUpdate是基于.net standard 开发的一款(c/s应用)自动升级程序.该组件将更新的核心部分抽离出来方便应用于多种项目当中目前适用于wpf,控制台应用,win ...
- OpenCV图像处理中的“机器学习"技术的使用
注意,本文中所指"机器学习"(ML)技术,特指SVM.随机森林等"传统"技术. 一.应用场景 相比较当下发展迅速的各路"端到端" ...
- 13、Script file 'E:\Anaconda Distribution\Anaconda\Scripts\pip-script.py' is not present.
pip-script.py文件缺失问题 问题: Script file 'E:\Anaconda Distribution\Anaconda\Scripts\pip-script.py' is not ...
- 此博客使用的CSS样式详解!
此博客使用的CSS样式详解! 页面使用的博客园模板为:LuxInteriorLight,可以在博客皮肤里找到. 页首屏蔽广告代码 <script>console.log("顶部标 ...
- 截取pod ip地址最后一列
资源清单: --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: init-demo namespace: test ...
- Linux执行.sh文件,提示No such file or directory的问题
问题描述 在window平台下,写好shell脚本文件,迁移到linux平台,赋过可执行权限,执行该sh文件,却提示NO such file or directory 解决方案 难道是文件格式兼容性问 ...