CCF认证历年真题
文章平均质量分 61
_zlWang
这个作者很懒,什么都没留下…
展开
-
CCF认证 2018-12 数据中心
题目说的挺玄乎,还对树分了层,其实就是一个裸的最小生成树求出最小生成树后,所用的最大的那条边的长度就是答案#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;t...原创 2019-02-12 13:14:57 · 6998 阅读 · 6 评论 -
CCF认证 2014-12 Z字形扫描
找到坐标变换的规律,分成上三角和下三角两个部分输出#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N = 500+10;int a[N][N];...原创 2018-02-22 08:24:08 · 1451 阅读 · 0 评论 -
CCF认证 2014-12 门禁系统
第一题水题#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int N=1000+5;int main(){ int n,a[N],b[N]; memset(b,0,sizeof(b)); cin>>n; for(int i=0...原创 2018-02-22 08:21:55 · 1290 阅读 · 2 评论 -
CCF认证 2015-03 网络延时
求树中距离最远的两个点的距离,也就是求树的直径求法:先随便找一个点,找到离它最远的一个点s,再以s为起始点,继续找离s最远的点,这个距离就是树的直径#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#inclu...原创 2018-02-21 17:44:26 · 878 阅读 · 0 评论 -
CCF认证 2015-03 节日
从1850年开始按推算每个月1号是周几,是指定的月份就计算日期#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int month[]={31,28,31,...原创 2018-02-21 17:19:24 · 787 阅读 · 0 评论 -
CCF认证 2015-03 数字排序
第二题,用一下结构体,注意排序规则#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N=1000+10;struct edge{ int id...原创 2018-02-21 16:49:27 · 1342 阅读 · 0 评论 -
CCF认证 2015-03 图像旋转
第一题水题#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N=1000+10;int a[N][N]; int main(){ int n...原创 2018-02-21 16:30:40 · 1369 阅读 · 2 评论 -
CCF认证 2015-09 高速公路
要找可以两两连通的点个数,可以先找整个图的强连通分量,每个强连通分量中的所有点两两之间都可以互相到达先用Tarjan算法找到所有强连通分量,假如一个强连通分量中有n个点,那么就有((n-1)+1)*n/2对互通点(等差求和)找了一个模板,套用进来写下主函数就OK了#include<iostream>#include<cstdio>#include<cstring&...原创 2018-02-21 16:14:29 · 1148 阅读 · 0 评论 -
CCF认证 2015-09 模板生成系统
文本处理题,没啥好说的,具体看代码吧#include<iostream>#include<cstdio>#include<cstring>#include<map>#include<string>using namespace std;const int N=100;string s[N];map<string,st...原创 2018-02-20 20:50:02 · 989 阅读 · 0 评论 -
CCF认证 2015-09 日期计算
第二题,emmmmmm#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int month[]={31,28,31,30,31,30,31,31,30,31,30,31...原创 2018-02-20 20:47:07 · 984 阅读 · 0 评论 -
CCF认证 2015-09 数列分段
第一题水题#include<iostream>#include<cstdio>using namespace std;int main(){ int n,a,b=-1; //起始-1,避免重复 int ans=0; cin>>n; for(int i=0;i<n;i++) { cin>>a; if(a!=b) //前后...原创 2018-02-20 20:44:47 · 982 阅读 · 0 评论 -
CCF认证 2015-12 送货
写这道题的时候碰到一个奇怪的事,应该满分的代码结果却都是80分,运行出错,最后终于发现问题所在,虽然挺坑,但是也算多练习下dfs先说思路,这道题是要找出一个欧拉回路(必须从1开始),有的话输出字典序最小的路径,没有输出-1要想有欧拉回路需要两个条件,一是整个图必须连通,而是只有两个点的边数为奇数(其中必须有1),或者是所有点的边数全部都是偶数判断连通用并查集就好,最后求字典序路径的时候用dfs(问...原创 2018-02-20 19:17:08 · 1337 阅读 · 3 评论 -
CCF认证 2015-12 画图
有两种操作,划线和填充,填充用dfs写就可以,划线分横线和竖线,注意细节和坐标变换#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N=100+10...原创 2018-02-20 16:02:38 · 1020 阅读 · 0 评论 -
CCF认证 2015-12 消除类游戏
用一个数组先标记要消除的方块,最后统一消除,这样可以处理行列同时被消除的情况#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N=30+2;con...原创 2018-02-20 11:28:35 · 1374 阅读 · 0 评论 -
CCF认证 2015-12 数位之和
第一题水题#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int main(){ string a; int ans=0; cin>>a; fo...原创 2018-02-20 11:12:48 · 1030 阅读 · 3 评论 -
CCF认证 2014-12 集合竞价
优先匹配出价高的买单和出价低的卖单,直到不能再成交,已经匹配的就是最大成交量,开盘价也可以算出#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<cmath>using namespace std;const int N=5000...原创 2018-02-22 08:35:02 · 1268 阅读 · 1 评论 -
CCF认证 2014-12 最优灌溉
最小生成树的题,直接套模板就可以了#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int MAXN=1000+10;//点数const int MAXM...原创 2018-02-22 08:37:52 · 959 阅读 · 0 评论 -
CCF认证 2014-09 相邻数对
第一题水题#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N=1000+10;int a[N],n;int main(){ scan...原创 2018-02-22 10:16:47 · 916 阅读 · 1 评论 -
CCF认证 2018-12 CIDR合并
题目挺长,但是说的挺清楚,最后还直接给出了算法,直接按照给出的算法就能得出答案我们只需要处理输入和输出,将格式转化为自己熟悉的格式方便接下来的处理即可这次的第三题对时间卡的挺紧,在同级合并那里我用了链表优化,不然会超时还有一开始我用string保存ip,结果最后一组数据过不去之后改用了整型保存,再用特定的方法处理,比string快很多#include<iostream&...原创 2019-02-12 13:12:31 · 6642 阅读 · 0 评论 -
CCF认证 2018-12 小明放学
用一个变量保存当前时间,过一遍所有路口利用当前时间和 t 的差值以及对r+y+g的取模,计算当前路口的状态要用long long 型变量#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using...原创 2019-02-12 13:05:53 · 8710 阅读 · 0 评论 -
CCF认证 2018-12 小明上学
第一题水题#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;int main(){ int r,y,g,n,...原创 2019-02-12 13:01:41 · 15639 阅读 · 1 评论 -
CCF认证 2018-03 棋局评估
状态压缩+博弈+搜索我先把棋局按照3进制压缩为一个整数,用这个整数作为参数去搜索,比较简便两个人都要按最优策略来,就是博弈,这道题就简单的标记下当前是哪个人走是Alice就递归的选择接下来能得到的最大分数,Bob就是最小分数#include<iostream>#include<cstdio>#include<cstring>#includ...原创 2019-02-10 11:11:10 · 2031 阅读 · 0 评论 -
CCF认证 2018-03 URL映射
文本处理题,题意阐述有点歧义,不是很清楚,能满分是一下一下试出来的,所以代码很乱匹配时除非出现了<path>,否则元素个数和结尾的'/'都必须相同,否则就算做不匹配且<path>不能匹配空串知道了这些再按题意一步一步来就可以满分了#include<iostream>#include<cstdio>#include<cstr...原创 2019-02-10 11:06:43 · 1757 阅读 · 0 评论 -
CCF认证 2018-03 碰撞的小球
小模拟题,模拟下小球的移动,并检查碰撞,如果有两个小球在相同位置或者移动到了边界,则改变速度方向#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef ...原创 2019-02-10 11:01:18 · 2096 阅读 · 6 评论 -
CCF认证 2018-03 跳一跳
简单的小水题#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;int main(){ int a,b=2;...原创 2019-02-10 10:59:02 · 2179 阅读 · 0 评论 -
CCF认证 2018-09 元素选择器
总结了下,这道题就是个大坑题两个方面很坑,一是题意不明确,让人有误解,二是数据水,也导致让人更加不懂题意了解释下题意,我最后得出的结果是:这题应该是让人构造一棵树,按照输入的文本前面的点来划分层级对于每行来说,他的父节点应该是向上查找第一个点数小于自己的行例如样例,应该是这样一颗树(按照标签): html ...原创 2018-11-26 17:49:14 · 3077 阅读 · 5 评论 -
CCF认证 2018-09 再卖菜
可以用dfs记忆化搜索+剪枝更稳的方法是用差分约束,因为会有三元一次的不等式,所以把不等式全部改为前缀和的不等式s[i]代表前i项的和,如a1+a2+a3>=b可改为s3-s0>=b,a1+a2+a3<=c改为s0-s3>=-c以此类推,就全部转化为s[x]-s[y]>=z的形式,然后按照差分约束建图用spfa求解,一开始就把所有点入队,求最长路,便可...原创 2018-11-02 11:35:43 · 5164 阅读 · 3 评论 -
CCF认证 2018-09 买菜
暴力求解法#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<queue>using namespace std;typedef long long ll;const i...原创 2018-11-26 10:34:37 · 2862 阅读 · 6 评论 -
CCF认证 2018-09 卖菜
简单模拟,按照题目要求所说处理即可,注意一下首尾特殊处理#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<queue>using namespace std;typede...原创 2018-11-26 10:02:10 · 3345 阅读 · 1 评论 -
CCF认证 2014-09 最优配餐
从所有分店为起点开始BFS计算到所有点的最短路,每个点的花费就是:距离*送餐数量,全部加起来就可以#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<queue>using nam...原创 2018-02-22 10:25:18 · 1078 阅读 · 1 评论 -
CCF认证 2014-09 字符串匹配
简单的字符串匹配,直接暴力就可以了,具体看代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<cctype>using namespace std;const int N=1...原创 2018-02-22 10:22:11 · 1025 阅读 · 0 评论 -
CCF认证 2014-09 画图
把要覆盖的区域扫描一遍标记,计算总共标记了多少点#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N=100+10;bool vis[N][N],...原创 2018-02-22 10:20:37 · 1129 阅读 · 0 评论 -
CCF认证 2016-04 游戏
求在方格图上从一点到达另一点的最短时间,有边界但是没有障碍,取而代之的是某些方格在一段时间内是不能走的可能在某段时间会困在一个区域内,每个时间必须走一步,所以可以走回头路不妨直接在二维平面图的基础上加上时间这个维度,进行三维的bfs搜索,但是时间每走一步都是+1这样最先到达目标点依然是最快的时间#include<iostream>#include<cstdio>#inc...原创 2018-02-20 11:01:18 · 1312 阅读 · 0 评论 -
CCF认证 2016-04 路径解析
可以用string数组来保存各级目录名,开一个保存当前路径,另一个用来保存输出具体看代码和注释#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N=...原创 2018-02-20 09:37:05 · 1047 阅读 · 0 评论 -
CCF认证 2016-04 俄罗斯方块
小模拟题,但是写起来挺麻烦,主要是行列转换容易出错先对齐列,上下寻找0计算可以下落几格,取最小值(要注意如果板块图案这一列没有方块,就不用考虑了,否则可能算错,因为这里90分,找了好久bug)然后再把板块图案对齐放在指定位置,输出#include<iostream>#include<cstdio>#include<cstring>#include<a...原创 2018-02-19 20:40:24 · 2417 阅读 · 8 评论 -
CCF认证 2017-09 JSON查询
考试时拿了90分,运行出错,这次再看发现原因是有个数组开小了当时的思路大体是保存每种值的字符串,如果它有上层,也直接把上层保存到字符串里要记录每个的类型,以及一个数字指针指向key对应的值查询时就只需要暴力搜一遍有没有符合的字符串,再看它是什么类型,对应输出然后就是处理输入文本,我这里写的挺乱,先保存下来吧,有机会再整理下#include#include#include原创 2018-02-05 22:15:31 · 2893 阅读 · 0 评论 -
CCF认证 2016-12 权限查询
模拟题,很简单的思路,按层次存起来然后查询,写的挺乱不精简,但也100分了#include#include#include#include#include#include#includeusing namespace std;struct quan{ string name; int lv; quan(int b,string c) { lv=b; name=原创 2018-02-05 22:21:22 · 1256 阅读 · 0 评论 -
CCF认证 2017-09 通信网络
对一个点来说,找到所有与它相连的,可以正向BFS一次,然后反向BFS一次,统计经过了多少个不同的点然后最多有1000个点,直接暴力每一个点,注意尽量节约时间就好了之后做了个类似的题,发现了新的做法:http://blog.csdn.net/wl16wzl/article/details/78773666#include#include#include#include#inclu原创 2018-02-05 22:21:46 · 3332 阅读 · 6 评论 -
CCF认证 2016-09 交通规划
读懂题意后是要求在单源最短路的基础上找总长最小的路径在Dijkstra算法的基础上再加一些判断花费最小的语句就可以了#include#include#include#include#include#include#includeusing namespace std;const int N=1e4+10;const int inf=1e8-1;struct edge{原创 2018-02-05 22:22:17 · 1481 阅读 · 0 评论 -
CCF认证 2016-09 炉石传说
一道模拟题,指令都不难处理,要是用Vector来做的话就更方便了省去了很多操作#include#include#include#include#include#includeusing namespace std;struct juese{ int attack; int hp; juese(){}; juese(int a,int b) { attack=a原创 2018-02-05 22:22:38 · 1619 阅读 · 0 评论