紫书阅读笔记
GocNeverGiveUp
这个作者很懒,什么都没留下…
展开
-
紫书阅读笔记(1)
浮点型四舍五入 floor(x + 0.5)strcmp (1)字符串1=字符串2,返回0 (2)字符串1>字符串2,返回一个正整数 (3)字符串1<字符串2,返回一个负整数strcat int main() { char a[10] = "ABC"; char b[10] = "DEF"; strca...原创 2018-05-29 17:28:19 · 408 阅读 · 0 评论 -
区间dp总结(更新中)
前一阵跟着紫书学了区间dp,趁着还没凉再复习复习1. 石子合并 : 石子合并题目链接 题目要求 : 有n堆石子排成一行,每次选择相邻的两堆石子,将其合并为一堆,记录该次合并的得分为两堆石子个数之和。已知每堆石子的石子个数,求当所有石子合并为一堆时,最小的总得分。 解题思路 : 将每个大的区间划分成最小长度为2的区间,然后逐步扩大寻求最优解,由局部最优达到整体最优 ...原创 2018-08-08 10:11:51 · 936 阅读 · 0 评论 -
POJ 1651 Multiplication Puzzle(区间dp学习篇 矩阵链乘)
POJ - 1651紫书上介绍矩阵链乘的时候用的这个转移方程dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j] + a[i-1]*a[k]*a[j]);这道题算是矩阵链乘的变形,同样把“最后一次乘法”变成了第一次,这个思想很重要,倒着推出状态转移方程,汝佳大佬说这很容易就推出来了,emmmmmm,我要不然放弃吧#include<iost...原创 2018-08-03 11:07:44 · 186 阅读 · 0 评论 -
*UVa 10003 Cutting Sticks(区间dp 切木棍)
UVA - 10003一道区间dp变形,根据紫书的思路 : 设d(i, j)代表切割i ~ j 的最优费用,则d(i, j) = min{d(i,k) + d(k,j) | i < k < j} + a[j] - a[i],其中a[j] - a[i]代表第一刀的费用相当于把每一刀的位置离散化处理,将木棒视为1-n每一个点都可以切割,且最终答案为dp[0][n+1],巧妙地转化成...原创 2018-08-02 19:26:32 · 278 阅读 · 0 评论 -
POJ 1655 Balancing Act/ POJ 3107 Godfather(树形dp学习篇:树的重心)
POJ - 1655接触到了一个新的名词:树的重心,百度百科给出的定义 : 树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。紫书上差不多也是这样介绍的,很好理解的概念,这道题就是求树的重心的裸题,给定一颗无根树,将每一个点都设置为根,跑一下dfs,更新自己最大的子数具有的节点数(假定生成的子树中还包含祖先...原创 2018-08-02 15:24:28 · 190 阅读 · 0 评论 -
HDU 2196 Computer(树的最长路径/树的直径)
刚学树形dp的时候人家给这道题的定义是--简单题,当时心态就崩了,学完紫书上的另外两个分支之后回过头来看,发现也不是无从下手,思路问题,跑两种dfs,这个网络上有,思路写的十分清晰,但是代码看不明白,所以就跑去找kuangbin的模板,写的真好啊,一看就明白了!思路:记录每一个树到子树的最长路径和次长路径,其中次长路径是通过和最长路径的不断更替得到的(这里kuangbin写的真的好,学到了),...原创 2018-08-05 19:36:21 · 315 阅读 · 0 评论 -
UVA 12100 Printer Queue
Printer QueueUVA - 12100之前遗留的一道问题,只需要把自己需要打印的文件位置不停的更新,同时更新最大值就能做出来,更像是一道借助stl实现的模拟很多时候不是做不出来,而是真的懒得去更进一步的思考,哎,这道题之前没认真想,现在开始训练回暖一下,这一个多月没碰C++有点生疏了,其实还是想学matlab和py,还想学java,一点点来吧。我又回来了。。#inclu...原创 2018-07-23 10:56:15 · 317 阅读 · 0 评论 -
紫书第五章课后习题
UVA - 1594#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<vector>#include<set&g...原创 2018-06-01 21:18:38 · 188 阅读 · 0 评论 -
UVa 1588 Kickdown
UVA - 1588发现自己自带水题免疫天赋(更别说难题了),这道题wa了三次,原因还是自己思维不够缜密这道题一开始以一边为起点开始遍历,其实还应该倒过来遍历一遍,两次遍历过程可以简化为一个我用的简单复制粘贴所以代码量比较大,上下两部分称对称结构。。#include<iostream>#include<cstring>#i...原创 2018-06-01 18:04:26 · 388 阅读 · 0 评论 -
UVa 1368 DNA Consensus String
这道字符串也处理了很多麻烦的情况啊啊啊啊啊,感觉字符串的问题都很注重细节(其实这是一道简单模拟吧。。。),可能是找错了方法,这道题又做了四十分钟左右。。。好难受明明是一道水题结果一直在Debuuuuuug。。先想好思路再下手,效果一定会好很多。。这紫书给的题真的要吐槽一下子,说是难题吧思路简单,说是水题呢半天敲不出来,自己功底太弱,加油码! UVA -...原创 2018-05-31 14:35:23 · 98 阅读 · 0 评论 -
紫书第三章课后习题
UVA - 1585#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<vector>#include<set>#include<map>#include<queue>原创 2018-05-31 01:33:12 · 201 阅读 · 0 评论 -
UVa 227 Puzzle
这个题让我和题目一样--好迷惑,以为是一道水题,寻思做完了就睡觉然后做到现在,前后做了两个小时,由于UVa编译器只能用c++11导致gets()废掉网上的代码都是gets,用getline写遇到了很多困难,于是尝试用getchar写排除了很多可能出现的问题,终于敲过了样例,此时过去了一个小时。。。第二个小时在找PE的错误,这个错误真不想说啥了,恶心,空白行出现的位置其实差不多啊。。。感觉不是我的错...原创 2018-05-31 01:28:56 · 110 阅读 · 0 评论 -
UVa 232 Crossword Answers
这道题难道是不难,细节太多了,撸了一百多行,PE?还好及时发现。。F - Crossword Answers UVA - 232 #include<iostream>#include<cstring>#include<cstdio>#include<algorith...原创 2018-06-05 19:25:04 · 210 阅读 · 0 评论 -
关于字符数组
#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<vector>#include<set>#include<map>#include<queue>#include&原创 2018-05-29 19:06:03 · 111 阅读 · 0 评论 -
深入 char * ,char ** ,char a[ ] ,char *a[]
1 数组的本质 数组是多个元素的集合,在内存中分布在地址相连的单元中,所以可以通过其下标访问不同单元的元素。 2 指针。 指针也是一种变量,只不过它的内存单元中保存的是一个标识其他位置的地址。。由于地址也是整数,在32位平台下,指针默认为32位。。 3 指针的指向? 指向的直接意思就是指针变量所保存的其他的地址单元中所存放的数据类型。 int * p ;//p 变量保存的地址所...转载 2018-05-29 18:55:59 · 232 阅读 · 0 评论 -
UVA 272 TEX Quotes(字符串处理)
UVA - 272这道题看的刘汝佳紫书的代码,感觉字符串处理用这个方式很好,留下来当模板不能用gets()可以选择getchar()进行替代#include<iostream>#include<cstring>#include<cstdio>#inclu...原创 2018-05-29 18:31:32 · 176 阅读 · 0 评论 -
树形dp总结
这个总结是基于《算法竞赛入门经典(第2版)》的思路进行的总结树上的动态规划(树形dp)大致分为三类1.最大独立集2.树的重心(质心)3.树的最长路径(最远点对)这三个是最基础的入门级题目,真正的树形dp是有很多节点关系需要处理的,先把基础思路捋清 1. 树的最大独立集定义 : 对于一颗n个节点的无根树,给出n-1条遍,选出尽量多的节点,使得任何两个节点均不相邻。输出...原创 2018-08-08 10:41:14 · 367 阅读 · 0 评论