摘要:
这道题目是一道经典的DP: 讲一下思路: f[i]:指i元可以用最少多少张钞票凑齐,凑不齐的话值为-1 先将f数组初始化为无穷大(因为后面有min操作所以不能用-1) 输入的同时将f[a[i]]设为1(举个例子:有一张五元的钞票要凑5元,可以只用一张钞票完成任务) 将f[0]设为0(又一个初始化) 阅读全文
摘要:
啊啊啊,最近老是因为各种小细节与100%失之交臂,今天就来总结一下。 DFS、BFS和各种递归型功能函数都要用void要不然用int的话在本地的诡异编辑器会过编译并正常运行,但到了万恶的测评机上就RE! 考试的时候要注意不开中文文件夹要删条件运行、打开文件输入、查看输入、输出文件名、检查检查! 更新 阅读全文
摘要:
题目: 这一题是典型的BFS模板题只有几点需要注意: 1.要靠小根堆顶替栈这样才能最优 2.要想到BFS,乍一看给人DFS的感觉但DFS会超,所以用BFS 3.因为这里有x,y值,所以要开struct 小根堆+结构体?总结如下: struct point{ int x,y,a; }; struct 阅读全文
摘要:
题目: 这道题目是一点数学成分+一点DFS 主要介绍DFS以及其调用的变量 DFS:dfs(x,y,dir,rem,d_t) 1.DFS变量介绍 (x,y):出发x,y坐标 dir:向对于整个地图来说的dir方向走,向上为0,向下为1,向左为2,向右为3。一定要记住所有的方向值一定是对于整个地图的( 阅读全文
摘要:
这是一个vector数组做的和邻接矩阵功能差不多 开: vector<int> edge[1010]; 创建从a到b的一条边(有向): edge[a].push_back(b); 阅读全文
摘要:
今天俺在虐简单题目的路上被一道一级的看似简单实则DP的题目搞崩了 先来找动态转移方程: 过程十分复杂直接上结论: 俺不会! F(N)=F(N-5)+F(N-2)-F(N-2-5)+1; 最后一个for解决战斗 要注意的是,我们可以通过将输入的N除以十以及将10、20、50除以十来进行优化。 程序: 阅读全文
摘要:
哈夫曼树: WPL计算: 此树的WPL值是11 由三个值相加 例子:2叶节点:2(它本身编号)*2是这两个 所以WPL=2*2+3*2+1*1=(2+3)*2+1*1=11 阅读全文
摘要:
这道题目要用二分+桶排的方式解决 函数: l~r找v c:靠左/右(‘l’/‘r’) 靠左和靠右用STL函数二分就行,这里讲一下思路,二分出最靠左/右的v值(but二维,在but[v][0~len]区间二分)再判断是否在区间内在区间内输出but[v][a](a为二分的答案)否则输出-1。 靠左:用l 阅读全文
摘要:
这道题目可以用递归来解(不是正解) 思路如下: 1.输入 2.递归 2.1判断是否合法 return 2.2判断是否只有一个数 输出,return 2.3根节点是前序遍历的首节点,再在中序遍历中找到根节点的位置,找到位置之后就可以把中序遍历和前序遍历分成左子树和右子树 2.4进入下一层(分治,一个是 阅读全文
摘要:
今天打了一场模拟赛总结一下: 题目比较简单(我后面一个题目100一个90都是暴力的功/dogen) Frist problem: 总结:一道伪装成5⭐的打卡题目 用时:2~3min 思路:每输入一个字符串判断最后一个字符就可以得知是哪国的人(因为这几个国结尾字母各不相同) Second proble 阅读全文