![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
随笔
文章平均质量分 91
艾_Mi杰
算法很苦,坚持很酷!
展开
-
2022浙大CS考研
碎碎念对于这篇博客原本是有些纠结的,但最终还是把自己的一些心得感悟写了出来,希望后来者可以少走弯路,在有限的时间内,尽量得到更高的分数。纵观个人的整个考研历程,并没有某个环节表现得特别出彩,相反不论是初试(384,计专70名左右)还是机试(超级拉跨,前所未有的低)或是复试(80左右,排名100+),都有许多令人不满意的地方。但尽管有这么这么多的不足,最后也依然能够上岸,并录取到海宁找到自己心仪的导师,所以在这里也请各位路过考研er相信:有志者,事竟成,破釜沉舟百二秦关终属楚;苦心人,天不负,三千越甲可吞吴原创 2022-03-29 00:10:04 · 1317 阅读 · 0 评论 -
基于Qt实现的算法可视化(旅行商)
接上篇基于Qt实现的算法可视化(棋盘覆盖、汉诺塔、旅行商),本篇主要给出旅行商问题的具体实现。旅行商问题作为一个NP难问题,我们并不要求解决太过庞大的数据,因此本篇通过可视化技术来展示贪心实现的过程。同时,我们选择一个固定形态的无向图,只支持用户修改起点和各条路径的权值,这样实现起来就简单了许多。具体见代码注释。头文件:#ifndef TSP_H#define TSP_H#include <QWidget>#include <QPushButton>#include原创 2020-12-10 18:31:17 · 1528 阅读 · 2 评论 -
基于Qt实现的算法可视化(汉诺塔)
接上篇基于Qt实现的算法可视化(棋盘覆盖、汉诺塔、旅行商),本篇主要给出汉诺塔问题的具体实现。本篇给出汉诺塔移动的动态实现。虽然Qt有动画类,但是无奈太菜了,短时间内根本学不会,于是通过绘画类,即在短时间内不断重绘矩形,以此来实现动态的移动效果。另外,汉诺塔是一个递归问题,如果边递归边绘制,会出现绘制速度与递归速度不匹配的情况,从而让计数器发生混乱。所以最终思路与棋盘覆盖问题相近,即初始将汉诺塔问题中每一步的移动状态记录下来,然后再一步步动态实现这些移动。具体见代码注释。头文件:#ifndef HAN原创 2020-12-10 18:23:07 · 2097 阅读 · 8 评论 -
基于Qt实现的算法可视化(棋盘覆盖)
接上篇基于Qt实现的算法可视化(棋盘覆盖、汉诺塔、旅行商),本篇主要给出棋盘覆盖问题的具体实现。该篇代码给出了棋盘覆盖分治算法的动态实现过程,先是通过DAC来生成染色顺序的序列,然后通过计时器来依次将每个方格染色,并不断的更新棋盘。具体见代码注释。头文件:#ifndef CHESSCOVER_H#define CHESSCOVER_H#include <QWidget>#include <QPushButton>#include <QPixmap>#in原创 2020-12-10 18:07:46 · 2411 阅读 · 8 评论 -
基于Qt实现的算法可视化(棋盘覆盖、汉诺塔、旅行商)
学校开设了相关的课程,要做算法可视化。由于之前只接触过C系列和一点点Python,就选了Qt+C来实现。实际上,Qt的ui界面设计是非常方便的,但是课设时间短,任务重,直接自己手敲了,没有对ui设计进行深入的学习。自己根据难易程度选择了棋盘覆盖、汉诺塔和旅行商三个问题,实现的算法分别是分治、递归还有贪心。棋盘覆盖篇:汉诺塔篇:旅行商篇:此篇给出主界面的实现:直接给出代码,思路见代码注释。头文件:#ifndef MAINWIDGET_H#define MAINWIDGET_H#includ原创 2020-12-10 17:54:27 · 1641 阅读 · 0 评论 -
CCF201712-3 Crontab(100分)
非常细节的一道题目,需要有一定的耐心和时间。同时,在写代码的时候也要注意实现方式,虽然题目给了10s的时间,但是依然需要程序足够高效。事实上,求解大型模拟题目一定要将题目需求捋清楚,一步一步处理,保持头脑冷静,不要心态爆炸。下面直接上代码:#include <iostream>#include <cstdio>#include <cstring>#include <map>#include <set>#include <cct原创 2020-12-09 15:30:34 · 317 阅读 · 0 评论 -
LCIS HDU - 3308、The LCIS on the Tree HDU - 4718(树剖、线段树、区间合并)
LCIS是The LCIS on the Tree的简易版。3308是一道简单的线段树+区间和并。4718是将LCIS在树上运行,因此,就需要在LCIS的基础上再加一个树链剖分。LCIS的代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;c...原创 2020-03-14 16:25:09 · 228 阅读 · 0 评论 -
Cube painting(数学)
题目链接:UVA 253题目大意:以“上正左右背下”的顺序为正方体编号1-6,为正方体各个面上“r、g、b”三种颜色,给定一个长度为12的字符串,前六位为某一正方体对应六个面的颜色,判断能否经过旋转将该正方体六个面颜色的顺序转换为后六位对应正方体的颜色顺序。网上的代码有许多都是模拟旋转过程,但是对于正方体来说,不论怎样旋转,其对面上的颜色对应不会变。代码如下:#include <ios...原创 2019-07-17 20:24:36 · 264 阅读 · 0 评论 -
If We Were a Child Again(大数除法、模除)
题目链接:UVA 10494大数除法、模除的模板题,直接上代码。#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N=1024;char s[N],ans[N];int main(){ int len; l...原创 2019-07-16 20:45:36 · 143 阅读 · 0 评论 -
Exponentiation UVA - 748(高精度大数乘方)
题目链接:UVA 748计算方法类似大数乘法,乘方使用多次循环即可。但结果中的小数点位置需要通过计算得到,具体为原有的小数位数*乘方次数即为结果的小数位数。代码如下:#include <iostream>#include <cstdio>#include <cstring>#include <string>using namespac...原创 2019-07-16 20:36:17 · 261 阅读 · 0 评论 -
Integer Inquiry UVA - 424(大数加法)
题目链接:UVA 424大数加法模板题,直接上代码。#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N=1e2;int ans[N+10];char s[N+5];int main(){ int maxlen=...原创 2019-07-16 14:34:08 · 128 阅读 · 0 评论 -
Product UVA - 10106(大数乘法)
题目链接:UVA 10106大数乘法模板题,直接上代码。#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int N=256;char x[N],y[N],ans[N*2];void multiply(){ int xx[...原创 2019-07-16 14:26:20 · 127 阅读 · 0 评论 -
敌兵布阵(线段树、树状数组、分块)
题目链接:敌兵布阵 HDU - 1161 线段树代码:(待补全)在这里插入代码片树状数组代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N=5e4+5;int c[N];int n;...原创 2019-05-11 15:46:57 · 230 阅读 · 0 评论 -
Full Tank?(BFS+优先队列)
题目链接:POJ 3635题目大意:给定一张图,若干点之间的路径、距离和每个点的油价。并已知每条路的耗油量,给一些询问,求每个询问中从起点到终点用指定油箱容量的车所得到的最小耗费。思路:BFS+优先队列。无向图可以用邻接表来储存。实现:邻接表:邻接表使用vector实现相对于用二维数组实现不需要记录各个点的邻接点个数,只需要通过push_back加入到vector中,在调用时通过siz...原创 2019-04-05 23:14:17 · 916 阅读 · 0 评论 -
Digital Square(分支限界法)
A - Digital SquareHDU - 4394Given an integer N,you should come up with the minimum nonnegative integer M.M meets the follow condition: M 2%10 x=N (x=0,1,2,3…)InputThe first line has an integer T( ...原创 2019-03-28 23:03:09 · 207 阅读 · 0 评论 -
Football (aka Soccer) (正则输入、排序)
题目链接:Football (aka Soccer) UVA - 10194题目大意:对于所给的输入进行处理后,按照得分高、胜场高、净进球数搞、进球数高、参与场次少以及队名字典序的优先顺序将各球队按照给定格式输出。代码是转大佬的,但是其中有些东西不错,特此记录!!!一、输入格式scanf()的一些特殊用法:“%ns”,n为整数,读入的字符串最长不超过n,然后在末尾补‘\0’。%...原创 2019-04-21 12:30:10 · 260 阅读 · 0 评论