- 博客(16)
- 收藏
- 关注
原创 1. 使用Linux作为主力系统的注意事项
文章目录1. 为什么要用 Linux 作为桌面系统2. 什么人适合用 Linux 作为主力操作系统3. 我应该选择哪一种 Linux 发行版4. 桌面环境5. 总结6. 启动盘制作7. 之后的计划先说一下自己的情况,本人用虚拟机 Linux 系统已经很长一段时间了,因为还在上大学,各种原因,不方便在电脑上直装 Linux 系统。但是之后还是考虑要将系统替换为 Linux,为此开一系列记录文章,总结 Linux 日常使用的一些注意事项。看这篇文章的大概都有一定的计算机基础知识。Linux 广泛用于服务器以
2021-02-19 14:35:09
1852
2
原创 【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
原创 【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
原创 【CCF-CSP201412-2】Z字形扫描
文章目录1. 题目要求2. 思考与解答3. 总结1. 题目要求2. 思考与解答这道题目我想了比较久,找规律花的时间不多,但是如何模拟这个规律,调整输出的顺序,花了较多时间。思路如下:每次扫描,一定是从左上角开始,到右下角为止。数字个数非常有限,可以用二维数组模拟这一个图片矩阵;有多个方向不同的扫描轨迹,如果把每个扫描轨迹划分为不同的组(互相平行的轨迹算做不同的扫描组),组号从 0 开始,那么就会有下面的扫描序列(给出依次扫描的每个元素的坐标序列从 0 开始,数组下标从 0 开始,以4x4
2021-02-04 12:49:26
301
1
原创 C++ 输入输出与数据范围的技巧
在输入输出大量数字、字符串等的情况下,cin 和 cout 往往不是好的做法。部分情况下甚至会出现输入还没有结束时,程序就已经超时的情况。对此,输入输出数字、字符等时,建议一律采用 scanf 和 printf 函数。对应表如下:控制符对应最大值%dint232−12^{32}-1232−1%lldlong long int264−12^{64}-1264−1%cchar—%schar*—以上基本涵盖了常见的情况,除了 string 的输
2021-01-29 18:22:30
3674
原创 【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
原创 【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
173
原创 【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
原创 【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
原创 【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
原创 【CCF相关】CCF考试的形式以及难度
1. 考试形式CCF 考试的形式是 5 题,每题多个测试点,一共 100 分,5 题 500 分。有关更多介绍可以看官网上的解答 这里。据说现在 CCF 赛制改革了,考试的时候提交后可以及时看到分数反馈。2. 试题难度要根据数据范围选择正确的算法。可以看这里。根据我自己的经验,前两题主要是简单的模拟题,最多用到一些 STL 以及排序算法等,难度不大。基本上可以接受 O(n2)O(n^2)O(n2) 的复杂度。第三题,难度不定。可能要考虑算法。第四第五题,大概率一定要使用某种算法,第四题经常出
2021-01-25 20:16:02
12492
4
原创 【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
原创 【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
原创 【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
原创 《第一行代码》第1章笔记
文章目录前言笔记1 安装 Anroid Studio前言其实自己学习安卓已经有挺长时间了,不过一直没有系统地读完一本安卓教材,很多基础知识处于学了就忘的状态,感觉有记录会好很多,所以选择了 优快云 博客来记录。笔记1 安装 Anroid Studio这里没有要特别注意的地方。按照教程即可装好。一开始检测到没有 Android SDK,点击 cancel 后会跳转到后续引导页面指导下载。...
2021-01-15 19:53:22
166
原创 Android Studio 加速 gradle sync
Android Studio 默认引用的是 google() 和 jcenter() 两个仓库。因为网络限制的问题,这两个仓库的同步速度是比较慢的,也就造成了 gradle 初始化时下载依赖会很慢。事实上阿里云提供了这几个仓库的镜像,gradle 也提供了 init.gradle 的办法来预先执行一些操作。我们就可以把同步的仓库替换为阿里云的镜像仓库。一下是一些有用的参考网站。阿里云仓库服务Gradle 关于 init.gradle 的介绍init.gradle 的写法如下:allprojects
2020-12-21 21:58:43
595
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人