
CCF_AC系列1
文章平均质量分 53
ac CCF-CSP 认证历年真题前三题。
「已注销」
大学生。目前正发力算法学习。
展开
-
【CCF-CSP201503-2】数字排序
文章目录1. 题目要求2. 解答3. 总结1. 题目要求2. 解答比较简单的题,可以使用排序做。#include <iostream>#include <algorithm>using namespace std;const int N = 1010;struct Num{ int freq = 0; int val = 0; bool operator< (Num& n) const { if(freq != n.freq) retu原创 2021-02-06 09:44:00 · 192 阅读 · 0 评论 -
【CCF-CSP201503-1】图像旋转
文章目录1. 题目要求2. 解答3. 总结1. 题目要求2. 解答题目的时间上限是 5 秒,这是非常宽裕的。如果预先存好数组,然后按照列访问的话也非常耗时,考虑采用 vector 进行一定程度思维上的简化,顺便复习了一下多重 vector 的写法。思路比较简单,n x m 的矩阵,开 m 个 vector,每个 vector 内存入n 个数(对应一列)最后输出。#include <iostream>#include <vector>using namespace原创 2021-02-05 21:08:22 · 227 阅读 · 0 评论 -
【CCF-CSP201412-2】Z字形扫描
文章目录1. 题目要求2. 思考与解答3. 总结1. 题目要求2. 思考与解答这道题目我想了比较久,找规律花的时间不多,但是如何模拟这个规律,调整输出的顺序,花了较多时间。思路如下:每次扫描,一定是从左上角开始,到右下角为止。数字个数非常有限,可以用二维数组模拟这一个图片矩阵;有多个方向不同的扫描轨迹,如果把每个扫描轨迹划分为不同的组(互相平行的轨迹算做不同的扫描组),组号从 0 开始,那么就会有下面的扫描序列(给出依次扫描的每个元素的坐标序列从 0 开始,数组下标从 0 开始,以4x4原创 2021-02-04 12:49:26 · 301 阅读 · 1 评论 -
【CCF-CSP201409-3】字符串匹配
文章目录1. 题目要求2. 解答3. 总结1. 题目要求2. 解答这一题是模拟题,按照要求模拟即可,使用 C++ 的话需要对 string 的操作比较熟悉。#include <iostream>#include <cstring>using namespace std;int main(){ string s; int op; int n; cin >> s; scanf("%d%d", &op, &n); int len原创 2021-01-27 11:44:06 · 295 阅读 · 0 评论 -
【CCF-CSP201409-2】画图
文章目录1. 题目要求2. 解答3. 总结1. 题目要求2. 解答如果采用暴力做法,有 n 个要画的矩形,每个矩形最大可以是 100 * 100,因为 n 本身最大值也是 100, 所以最坏情况下大概要处理 100×100×100=106100\times{100}\times{100}=10^6100×100×100=106数量级的基本操作,属于合理范围。#include <iostream>using namespace std;const int N = 101;int原创 2021-01-27 10:43:17 · 176 阅读 · 0 评论 -
【201409-1】相邻数对
文章目录1. 题目要求2. 解答2.1 数组指针法2.2 哈希表做法3. 总结1. 题目要求2. 解答2.1 数组指针法开两个指针 a,b,外循环让 a 往前走,内循环让 b 每次从头走到尾,依次比较 a b 所指的数组的数值。为了避免同一个数对计算两次,固定只考虑 b = a + 1 的情况。时间复杂度 O(n2)O(n^2)O(n2)#include <iostream>using namespace std;int main(){ int n; scanf("%原创 2021-01-27 10:14:31 · 242 阅读 · 0 评论 -
【CCF-CSP201403-2】窗口
1. 题目要求2. 解答#include <iostream>#include <algorithm>using namespace std;struct Win { int x0, y0, x1, y1; int height; int number; bool operator< (Win& win) const { return height < win.height; }} win[25];int main(){原创 2021-01-26 10:13:07 · 224 阅读 · 0 评论 -
【CCF-CSP201403-1】相反数
1. 题目要求2. 解答2.1 哈希表做法哈希表的查找复杂度是 1,可以将每个数插入一个 unordered_set 然后查找是否有相反数,由于每个数字最多只会被查找记录一次,所以时间复杂度是 O(n)O(n)O(n)。CCF-CSP 在线训练系统没有开放 C++11 选项,而 unordered_set 是 C++11 的 STL 的一种,所以在测试系统上会出现编译错误。不过据说考试时可以自选是否使用 C++11 。在此还给出一种数组做法,以备考试时随机应变。#include <ios原创 2021-01-25 21:45:55 · 146 阅读 · 0 评论 -
【CCF-CSP201312-3】最大的矩形
preAcWing 分享 由数据范围反推算法复杂度和算法内容1. 题目要求2. 解答解答这个题目要注意到,最后画出的矩形,它的高度一定与题目中的某一个矩形的高度相同。于是题目等价转化为在图中可以画出多少个高度为 height[i]height[i]height[i] 的连续矩形。以图中 height[i]height[i]height[i] 矩形为起始,向左找不低于它的矩形,向右找不低于它的矩形,得到它能画出的最大的矩形个数,乘以矩形高度就是最后的矩形的面积。迭代可以得到题目要求的最大矩形原创 2021-01-25 12:53:43 · 190 阅读 · 0 评论 -
【CCF201312-2】ISBN号码
1. 题目要求2. 解答2.1 模拟#include <iostream>using namespace std;int main(){ string str; cin >> str; int cnt = 0; int sum = 0; string res = str; int len = str.size(); for(int i = 0; i < len - 1; i ++) { char& ch = str[i]; if原创 2021-01-25 12:17:03 · 97 阅读 · 0 评论 -
【CCF201312-1】出现次数最多的数
preAcWing 分享 由数据范围反推算法复杂度和算法内容1. 题目要求2. 解答因为数字范围有限,可以采用一个计数数组来存储每一个数,每个数组元素包含两部分,代表的数字以及代表的数字出现的次数。最后对这个数组进行排序,找到符合要求的一项即可。2.1 结构体排序写法#include <iostream>#include <algorithm>using namespace std;const int N = 10010;struct Elem { i原创 2021-01-25 11:26:47 · 108 阅读 · 0 评论