赛题
有硬币就是土豪
优质教育,助力人生!
展开
-
CCF 201709-2 公共钥匙盒
代码如下:#include <iostream>#include <algorithm>#include <vector>using namespace std;struct key{ int w; //钥匙号 int s; //钥匙开始使用时间 int e; //钥匙结束使用时间 ...原创 2018-08-26 23:53:09 · 204 阅读 · 0 评论 -
CCF 201604-1 折点计数
思路: 相邻三点,若两边的数均大于中间的数,或两边的数均小于中间的数,中间的数即为折点 代码如下:#include <iostream>#include <cmath>#include <memory.h>using namespace std;int main(){ int n(0); int a[1000]; ...原创 2018-08-29 22:44:59 · 189 阅读 · 0 评论 -
CCF 201512-1 数位之和
思路:用数学的除法和取模运算也可以,此处用的是先转换成字符串,再计算字符的编码值#include <iostream>#include <string>#include <sstream>using namespace std;int main(){ int n, result; cin >> n; str...原创 2018-08-30 00:00:28 · 199 阅读 · 0 评论 -
CCF 201512-2 消除类游戏
思路: 1. 查看第一行有没有连续三个同样的数,有的话开始计数,直到数字不同为止。此时把找到的结果(格式为(起点数字的所在行、起点数字所在列、长度))压入一个向量(vector)。继续从下一个数字开始找。比如第一行数字是: 1 1 1 1 2 2 2,那么会把(0,0,4),(0,1,3),(0,4,3)压入向量。 2. 上面一种情况是有三个连续的数字相同的,若没有三个连续的数字相同,直接看本...原创 2018-08-30 12:46:49 · 447 阅读 · 0 评论 -
CCF 201604-2 俄罗斯方块
思路: 1. 把掉落的叫做方块,下面已经搭好的叫做城堡 2. 让方块从给定的列往下掉,每次下降一行,直到下面两种情况停止掉落:一是方块含有 1 的最下面一行碰到城堡底部, 而是方块中有 1 碰到城堡中的 1。例如下图: 要么第一行达到城堡底部,要么在中途碰到其他为 1 的城堡部分。 3. 为了简单,把原来城堡的高度 15 增加到 18 或以上,这样可以减少一些麻烦的判断。由于只有 0 ...原创 2018-08-30 13:03:46 · 1021 阅读 · 0 评论 -
CCF 201509-1 数列分段
思路:后一个数和前一个数不相等,就是一个新的分段 代码如下:#include <iostream>using namespace std;int main(){ int n, result(0); int a[1000]; cin >> n; for(int i=0; i<n; i++) cin &g...原创 2018-08-30 13:11:39 · 222 阅读 · 0 评论 -
CCF 201509-2 日期计算
思路: 这个题是相对其他年份的题简单得多的题。判断是否是闰年,是的话在二月上加一天。只要天数大于最近的那个月,天数再减去那个月的天数。说起来复杂,直接看代码:#include <iostream>using namespace std;int main(){ int y, d; int c=1; //有点计数 count 的味道 int m...原创 2018-08-30 13:26:11 · 144 阅读 · 0 评论 -
CCF 201703-3 Markdown 80分
不知道哪里的问题,试了不少转换,和 Markdown 在线编辑器的转换一致,也符合题目要求,但永远的 80 分。这样的题目真的很坑。如有网友找出反例,请在评论说明,不胜感激! 代码如下:#include <iostream>#include <string>#include <vector>#include <sstream>usi...原创 2018-09-02 12:12:53 · 151 阅读 · 0 评论 -
CCF 201312-2 ISBN号码
如果你是 50 分或者 80 分,注意看下面的注意点。#include <iostream>#include <string>using namespace std;int main(){ string isbn, isbnbak;//isbnbak是备份用的,后面有用。 int a[10]; int sum; cin&g...原创 2018-08-30 14:52:12 · 219 阅读 · 0 评论 -
CCF 201503-3 节日
思路: 1. 首先计算每月的第一天是星期几,据此推断第 b 个星期 c 是否在该月内,不在就输出 none。 2. 用基姆拉尔森计算公式判断第 y 年第 m 月第 d 天是星期几。用字符串流处理输出格式。 代码如下:#include <iostream>#include <string>#include <sstream>using name...原创 2018-09-11 20:45:25 · 365 阅读 · 0 评论 -
CCF 201609-3 炉石传说
思路: 1. 两个玩家,每个玩家用一个向量 vector 表示,如果随从死了,删除对应随从,vector 自动更新;如果用数组,判断更新会比较麻烦。 2. 依次判断每行第一个字符串,按游戏规则作相应处理即可。注意英雄提前挂掉的情况。 3. 遇到字符串”end” 切换玩家,0表示第一玩家,1表示第二玩家,则 player = (++player)%2 即可切换玩家。文中多处用取模方法来切换玩家...原创 2018-09-11 21:00:36 · 240 阅读 · 0 评论 -
CCF 201509-3 模板生成系统
思路: 1. 就字符串的查找替换,注意找好每次截断的字符串长度就好了。截错的话多试几次就好了。 2. 用map<string, string>来放键值对 代码如下:#include <iostream>#include <string>#include <vector>#include <map>using name...原创 2018-09-11 22:41:01 · 201 阅读 · 0 评论 -
CCF 201609-2 火车购票
思路: 1. 从第一个座位开始计 没有被占 的座位数,如果计数数值和输入的票数样,则打住;如果到座位为 5 的倍数,则归零重新计数。 2. 用一个数组 a[101] 表示所有座位,已经有座的标记为 1, 无座的标记为 0; 注意事项: 1. 数组必须初始化为 0,否则后果自负; 2. 要考虑一个特殊情形,比如 21 个人购票,每人均购买 4 张票,前面 20 人的票都是连续的,最后一个的...原创 2018-08-29 21:37:25 · 364 阅读 · 0 评论 -
CCF 201803-3 URL映射
思路: 1. 用测试的数据匹配给出的 n 条规则,匹配成功则返回 2. 把测试数据和规则均按 / 分割开,一一匹配 3. 匹配成功,处理输出参数,只要规则里面是 <str> 等三种字符串,就在输出值上加入对应的参数,否则没有参数。匹配失败,返回 “404”。 注意:/<int>/ 和 /1 不能匹配,前者以 / 结尾,后者则不是。 代码如下:#includ...原创 2018-09-01 12:55:03 · 499 阅读 · 4 评论 -
CCF 201412-1 门禁系统
#include <iostream>using namespace std;int main(){ int n; int a[1001]={0}; cin >> n; for(int i=1; i<= n; i++) { int num; cin>>num; ...原创 2018-08-27 19:03:55 · 350 阅读 · 0 评论 -
CCF 201803-2 碰撞的小球
思路: 1. 用数组 a[ i ][ j ] 记录第 i 时刻第 j 个小球的位置,此处用的 i,j 编号均从零开始。 2. 用数组 dir[ j ] 记录第 j 个小球的方向,dir[ j ] == 1 或 dir[ j ] == -1 ,初始化为 1,因为小球初始时都向右移。 3. 如果小球相撞或碰到边缘,就修改小球运动的方向,即令 dir[ j ] = - dir[ j ]。 4. ...原创 2018-08-30 19:47:04 · 235 阅读 · 0 评论 -
CCF 201803-1 跳一跳
#include <iostream>using namespace std;int main(){ int n; int lastscore = 0; //上一次得分(只是一次的) int nowscore = 0; //当前总计得分 while(1) { int t; cin>>t;...原创 2018-08-27 23:05:58 · 280 阅读 · 0 评论 -
CCF 201412-2 Z字形扫描
提示运行错误,只得90分,也不知道哪出错,时间远没超时,空间也足够的呀。。。。#include &amp;lt;iostream&amp;gt;#include &amp;lt;memory.h&amp;gt;using namespace std;struct dir{ int x; int y; dir(int xx=0, int yy=0):x(xx), y(yy){}};...原创 2018-08-28 11:17:16 · 146 阅读 · 0 评论 -
CCF 201709-3 JSON查询 90分
这个题考虑出现一些特殊情况,比如情况一:{ "a":"11", "b": { "first" : "1", "second" : "2"}}直接查 first, 应该查不到才对。代码中考虑了情况一。 还有一种情况,不知测试数据中有没原创 2018-08-28 15:31:08 · 428 阅读 · 0 评论 -
CCF 201503-1 图像旋转
刚开始dev-C++报错,原因数组开得太大。后来把 int 换成 __int16就OK 思路很简单,从最后一列往左依次输出. 题目部分截屏如下: 代码实现:#include <iostream>using namespace std;int main(){ int n, m; __int16 mat[1001][1001]; ...原创 2018-08-28 16:09:11 · 248 阅读 · 0 评论 -
CCF 201703-1 分蛋糕
#include <iostream>using namespace std;int main(){ int n, k; int all = 0; //当前此人(一个人)已经得到的蛋糕重量 int cake; //一块蛋糕的重量 int num(0); cin>>n>>k; for(int i...原创 2018-08-28 16:30:17 · 183 阅读 · 0 评论 -
CCF 201703-2 学生排队
思路:1。n个学生排队,就用有n个int型元素的列表列表表示这个队,输出就从头开始输出列表的元素就可以了.2。移动时,先找到要移动的学生,记录下他的位置,然后将他删除,再把他插入到他应当在的位置。#include <iostream>#include <list> using namespace std;int main(){ int n, m;...原创 2018-08-29 10:49:38 · 214 阅读 · 0 评论 -
CCF 201503-2 数字排序
思路:1。因为输入数字是0-1000的整数,故用一个大小为1001的int数组a [1001],a [i]表示数字i出现的次数; 2.用对把出现次数不为0,即a [i]!= 0的数字组合成对<数字,数字出现次数>,放入向量.3。定义向量的小于方式,对向量进行排序,依次输出向量元素。#include <iostream>#include <vector&...原创 2018-08-29 11:45:03 · 269 阅读 · 0 评论 -
CCF 201612-1 中间数
思路:1。对输入数组从小到大排序2。从中间开始向两边扩展,直到扩展到数组边界或到中心距离相等的两元素大小不相等#include <iostream>using namespace std;int findMidNumber(int a[], int &n){ if(n == 1) return a[0]; for(int i...原创 2018-08-29 12:40:46 · 203 阅读 · 0 评论 -
CCF 201612-2 工资计算
思路: 1. 得到的工资 = 原始工资 – 税 2. 把没个阶段的临界税收计算出来,比如 3500 元时税收为 0, 7000(3500+4500)时税收为 45;从而计算出对应的各阶段的实际所得工资; 3. 根据最后实际工资看出扣除过几个阶段的税,减去步骤 2 中的最近的税收,再减去零头的税收,就是实际工资。根据实际工资可以反推出原始工资。#include <iostream...原创 2018-08-29 20:00:12 · 379 阅读 · 0 评论 -
CCF 201609-1 最大波动
简单不解释#include <iostream>#include <cmath>using namespace std;int main(){ int n; int a[1000]; cin>>n; for(int i=0; i<n; i++) cin>>a[i]; int ...原创 2018-08-29 20:10:45 · 277 阅读 · 0 评论 -
CCF 201312-4 有趣的数
思路: 用动态规划,说白了就是后一步的信息可以根据前面的信息求出来。根据规定: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。 3. 最高位数字不为0。 有: 如果一个数是“有趣的数”, 如果它的前 n 位为一个数字,那么这个数一定是 2。不信可以写几个数字来自己摸索,其...原创 2018-09-12 18:32:02 · 243 阅读 · 0 评论