2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛总结
1003 Express Mail Taking
题意:有n个柜子(编号1-n),m封信,k号位置有钥匙,现在需要取信封,并且每取一次信封都要从k号位置进行领取一次钥匙,再去有信封的位置领取信封,问最短路径是多少
思路:建立两个数组,一个存从密码柜到信封柜加上信封柜到密码柜的距离,一个存从密码柜到信封柜加上信封柜回到起始点的距离,循环比较大小,进行判断哪个应该设置成最后一个信封柜,保证其路径最短
代码:

1 #include<cstdio>
2 #include<algorithm>
3 #include<cmath>
4 #include<iostream>
5 using namespace std;
6 const int maxx=1e6+1;
7 int a[maxx],b[maxx],c[maxx];
8 int main(){
9 int t;
10 scanf("%d",&t);
11 while(t--){
12 int n,m,k;
13 scanf("%d %d %d",&n,&m,&k);
14
15 for(int i=0;i<m;i++){
16 scanf("%d",&a[i]);
17 }
18
19 int minn=0;
20 long long int sum=0;
21 for(int i=0;i<m;i++){
22 b[i]=abs(a[i]-k+a[i]-k);//存入第一种数据
23 sum+=b[i];
24 c[i]=abs(a[i]-k)+a[i]-1;//存入第二种数据
25 if(i!=0&&(c[i]-b[i])<(c[minn]-b[minn])){
26 minn=i;
27 }
28 }
29 printf("%lld\n",sum+c[minn]-b[minn]+k-1);
30
31
32 }
33 }
1007 CCPC Training Class
题意:字符串中重复最多的字母是重复了多少次,直接输出次数
代码:

1 #include<cstdio>
2 #include<algorithm>
3 #include<cmath>
4 #include<iostream>
5 #include<cstring>
6 using namespace std;
7 const int maxx=1e6+1;
8 char s[maxx];
9 int main(){
10 int n,num=0;
11 scanf("%d",&n);
12 num=n;
13 while(n--){
14 printf("Case #%d: ",num-n);
15 scanf("%s",&s);
16 int len=strlen(s);
17 sort(s,s+len);
18 int sum1=1;
19 int sum2=0;
20
21 for(int i=1;i<len;i++){
22 if(s[i]==s[i-1]){
23 sum1++;
24 }else{
25
26 sum2=max(sum1,sum2);
27 sum1=1;
28 }
29 }
30 printf("%d\n",sum2);
31 }
32 }
1010 Report
题意:如果所给数组中存在连续相等的数,那么就输出NO,否则输出YES
代码:

1 #include<cstdio>
2 #include<algorithm>
3 #include<cmath>
4 #include<iostream>
5 #include<cstring>
6 using namespace std;
7 const int maxx=1e6+1;
8 char s[maxx];
9 int a[maxx];
10 int main(){
11 int n;
12 scanf("%d",&n);
13 while(n--){
14 int len;
15 scanf("%d",&len);
16 for(int i=0;i<len;i++){
17 scanf("%d",&a[i]);
18 }
19 int flag=0;
20 for(int i=1;i<len;i++){
21 if(a[i]==a[i-1]){
22 flag=1;
23 break;
24 }
25 }
26 if(flag==1){
27 printf("NO\n");
28 }else{
29 printf("YES\n");
30 }
31 }
32 }
1011 3x3 Convolution
题意:给定两个矩阵,K‘和A,给定公式求K和Cn,输出当n—>+∞时的Cn,并且已知:
、
、
且所求:

思路:
根据已知:
C1,1=A1,1*K1,1+A1,2*K1,2+A1,3*K1,3+…+A3,2*K3,2+A3,3*K3,3
…………
Cn,n-1=An,n-1*K1,1+An,n*K1,2
Cn,n=An,n*K1,1
1)如果K1,1=0,则在执行完1次之后Cn,n为0;在执行完两次之后Cn,n-1也为0……执行完n次之后,矩阵A 就变成了零矩阵;
2)如果K1,1!=0,且其余部分全部为0,那么相当于是在原矩阵的基础之上乘了K1t,所以各项的比值不变,结果还是原矩阵;
3)如果K1,1!=0,且其余部分存在不为0的部分,那么矩阵k的元素和肯定比每一项大,因为每一项是非负的,并且最少有两项,所以每个元素都在变小,都在乘以一个小于1的一个数的无穷次方,最后结果就是矩阵变成0矩阵
本题反思:看式子就很蒙,就想靠拢矩阵,但是怕自己没学好线性代数,可能就更影响自己看的效率了,导致最后连题都没看懂,后来过的人越来越多,更浮躁了,后来就放弃了。其实这个题看看式子,列列样例,分分情况大概就能知道这个题想干什么,怎么解。
总结:1.最近也是一直没有碰,所以导致一上手,题目都读的迷迷糊糊。从一开始不会读题,到后来懵懵懂懂的开始做题直接下手,就想着边敲代码边想思路,就不是很顺利。等到真正做的时候才发现,应该是等读完题以后,先想思路并且在纸上进行验算,想好了容易出漏洞的特殊样例,做好这一系列的基本工作有了大概的题解框架以后,再敲代码,这样会顺利很多。如果一上来题都懵懵懂懂思路还没有全部想好,题解的方向并不是很清晰。这样的话,不仅自己会做不出题来急躁,也会开始怀疑自己的思路是否是正确,很耽误自己的效率和信心。
2.而且解题过程中也要在题都读不懂的情况下学会猜答案,很多签到题都是题目很长很混乱,扰乱你的判断,比如这次的1007,最后我们在实在没有解题思路并且实在读不懂题的情况下猜了一把。当然也要学会解题过程中,那些比较难以理解的数学公式记得写写特殊情况或者特殊样例,从特殊到一般,做做简化可能有利于解题。其实有时候题目样例也会给出很多隐藏的已知条件,比如这次的1011,这次样例中给出的两种结果情况就是最后的结果分类,不是零矩阵就是原矩阵。从特殊到一般,从样例到题解,不妨也是一个好的选择。
3.看不明白的题可以先放一放,或者根据样例去理解题目,而不是跟着题目去看样例,换一种理解题的方式可能会更能方便解题。
2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛总结的更多相关文章
- [BFS,A*,k短路径] 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛 path (Problem - 6705)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6705 path Time Limit: 2000/2000 MS (Java/Others) Mem ...
- [贪心,dp] 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛 Fishing Master (Problem - 6709)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6709 Fishing Master Time Limit: 2000/1000 MS (Java/Othe ...
- 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛(8/11)
$$2019中国大学生程序设计竞赛(CCPC)\ -\ 网络选拔赛$$ \(A.\hat{} \& \hat{}\) 签到,只把AB都有的位给异或掉 //#pragma comment(lin ...
- 2016中国大学生程序设计竞赛 - 网络选拔赛 C. Magic boy Bi Luo with his excited tree
Magic boy Bi Luo with his excited tree Problem Description Bi Luo is a magic boy, he also has a migi ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 1001 - Buy and Resell 【优先队列维护最小堆+贪心】
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6438 Buy and Resell Time Limit: 2000/1000 MS (Java/O ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 1010 YJJ's Salesman 【离散化+树状数组维护区间最大值】
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6447 YJJ's Salesman Time Limit: 4000/2000 MS (Java/O ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 1009 - Tree and Permutation 【dfs+树上两点距离和】
Tree and Permutation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- HDU 6154 - CaoHaha's staff | 2017 中国大学生程序设计竞赛 - 网络选拔赛
/* HDU 6154 - CaoHaha's staff [ 构造,贪心 ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 题意: 整点图,每条线只能连每个方格的边或者对角线 问面积大于n的 ...
- HDU 6150 - Vertex Cover | 2017 中国大学生程序设计竞赛 - 网络选拔赛
思路来自 ICPCCamp /* HDU 6150 - Vertex Cover [ 构造 ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 题意: 给了你一个贪心法找最小覆盖的算法,构造一组 ...
随机推荐
- for-in 语句
for-in 语句循环专门用于遍历范围,列表,元素和字典等可迭代对象. 循环中的变量的值受for-in循环控制,该变量将会在每次循环开始时自动被赋值,因此程序不应该在循环中对该变量进行赋值 for-i ...
- 微信小程序实现搜索关键词高亮
目录 1,前言 2,思路 3,代码逻辑 1,前言 项目中碰到一个需求,搜索数据并且关键词要高亮显示,接到需求,马上开干.先上效果图.源码已经做成了小程序代码片段,放入了GitHub了,文章底部有源码链 ...
- frp穿透内网使用vsftpd服务
本篇文章将会介绍如何使用frp穿透内网以及如何在centos8环境下安装和使用vsftpd,最后在公网通过frp穿透内网使用ftp. 一.内网穿透神器frp frp 是一个专注于内网穿透的高性能的反向 ...
- LevelDB 源码解析之 Random 随机数
GitHub: https://github.com/storagezhang Emai: debugzhang@163.com 华为云社区: https://bbs.huaweicloud.com/ ...
- QT项目-Chart Themes Example学习(一)
1.main.cpp #include "themewidget.h" #include <QtWidgets/QApplication> #include <Q ...
- [深搜]A. 【例题1】拔河比赛
A . [ 例 题 1 ] 拔 河 比 赛 A. [例题1]拔河比赛 A.[例题1]拔河比赛 解析 模板题,选与不选 Code #include <bits/stdc++.h> #defi ...
- [Fundamental of Power Electronics]-PART I-6.变换器电路-6.1 电路演化
6.1 电路演化 第一章使用基本原理构建了buck变换器(图6.1).开关可以降低电压直流分量,低通滤波器可消除开关纹波.在CCM下,buck变换器的变换比为\(M=D\).buck变换器是最简单的, ...
- 死磕Spring之AOP篇 - Spring AOP常见面试题
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读. Spring 版本:5.1 ...
- [面试仓库]HTML面试题汇总
HTML这一块呢,说简单也简单,说难也不是那么容易.但我们在各个面试要求中,大部分都把HTML这一条摆在了第一位,重要性可想而知.这个位置算是有关HTML的一个汇总点了,亦会在这里及时补充. 1, ...
- 解决CentOS虚拟机无法显示本地IP问题
1 问题描述 CentOS虚拟机无法显示本地ip,如图: 2 尝试过的方法 参考过此处的解决方法,把网卡配置中的ONBOOT修改为YES: 但是原来的网卡配置也是YES,所以修改的方法没有用,尝试了一 ...