ACM 温故
文章平均质量分 67
嚜寒
盖士人读书,第一要有志,第二要有识,第三要有恒。
有志则不甘为下流;
有识则知学问无尽,不敢以一得自足,如河伯之观海,如井蛙之窥天,皆无识者也;
有恒则断无不成之事。
展开
-
POJ1011 搜索+剪枝【很好】
1 题意。2 分析。枚举可能的最小长度,再搜索+剪枝,判断一下该最小长度是否可以由题目所给的一组子木条长度组合而成。剪枝点:。。。#include #include #include using namespace std;//const int INF=0x3f3f3f3f;const int maxn=70;int stick[maxn];int visted原创 2016-10-30 17:24:40 · 433 阅读 · 0 评论 -
POJ2080 日期计算(1),模拟题,因为细节WA很久
1 题意,给出2000年1月1日后多少天,换算出年-月-日 星期几。2 分析。比较水的模拟题。编码能力有待提高,思维不够缜密,出了很多错,是很多。注意题目要求输出的数,是有前导0的。3代码一#include #include#include using namespace std;int day;int year;int month;int zhou;in原创 2016-11-06 17:26:58 · 328 阅读 · 0 评论 -
SDNU1331 二分法求,确定划分次数后的最小连续区间和
0)(这个题的数据OJ没有补充,0二分法是有规律的暴力,那么二分的数列一定是有某种顺序,使得二分得到的数如果不符合某个条件,可以按规则再往左二分或再往右二分。1)之前用二分模拟划分情况,非常笨也非常麻烦,是不符合为了简洁高效而使用二分的思想。事后才知道,直接二分答案即可,因为二分效率非常高,找到答案所在的大概的区间位置,也就是二分所有可能的区间和,也不过是log(10^5)≈16,原创 2016-06-01 11:45:42 · 768 阅读 · 0 评论 -
POJ 2481 树状数组 区间覆盖(POJ2352 Stars 的变形题)(线段化点)
0)学会将题目情景转化为自己熟悉的结构或模型。题目大意: 每个奶牛有自己的一个区间,求每个奶牛的区间所覆盖的子区间个数(注意,真子集,相等的不算),按照输入的顺序输出。转化: 要学会将题目情景转化为自己熟悉的模型或结构上。把每个区间的左端x值作为点的x坐标,右端x值作为点的y坐标,就可以把所有区间转化为一个二维坐标图上的点集,而此时每个点左上方的原创 2016-05-09 20:30:00 · 1321 阅读 · 0 评论 -
HDU3591 01 背包 + 完全背包 + 多重背包 混用
0)01 背包,完全背包, 多重背包,混用。解题关键有两个。一个是将小倩付钱和老板找零分别做一个背包,小倩多重背包,老板无限背包,这样做可以的原因是,两个背包面值相同时对应的状态总可以作为一个不变的桥梁。另一个是,处理小倩的多重背包时,采用二进制优化可以显著缩短时间,不然因为数据过多容易超时(哪怕代码有错算不出正确数据,只要超时了,就会返回超时)。二进制优化的思想,就是利用任何数都原创 2016-04-27 20:03:35 · 497 阅读 · 0 评论 -
UVA11280 最短路 + SPFA变形 + 单向链表存储边 + 结构体构造函数 + 鲁棒性
1)这道题有很多需要学习的地方,除了code技巧上的运用比如链表存储边、初始化、结构体构造函数,在思维上也有很多比如判断走哪个点除了花费以外还加了对停留次数的判断、而停留次数可能大于城市个数(对于查询数据做一个鲁棒性的判断)等等。值得经常#include #include #include #include #include using namespace std;const原创 2016-04-18 12:11:05 · 536 阅读 · 0 评论 -
UVA1600 Dfs回溯完全遍历+记忆化搜索(用最小距离剪枝)+细节处理 (值得复习)(水)
0) 题意和样例很清晰,不解释了。1)有三处需要注意的,处理该类问题的细节:Error ①:因为是Dfs递归处理,所以不能直接return moves,否则又一层一层退回来,并没有记录moves值。Error ②:注意对于走过的点,应该做标记,否则可能出现这样的情况,假如dir方向数组前两个方向依次是向下和向右,那么A点往下走到B点,B点下面没有了,往上走到A点,A点又走到B点原创 2016-06-11 23:29:00 · 510 阅读 · 0 评论 -
UVA10371 日期转换(6) 连写带Debug了3个小时..
1 题意各时区的时间转换。2分析题不难写,但是细节上有点绕:题目给出的12小时的时间,以及测试数据所说的,存在12:40 pm,12:01am,前一个是凌晨的、后一个是中午的。那么选择什么样的思维来编码,对编码复杂度,有很大不同。3学习①模拟题,应该先在纸上,画一个树,画清各种情况(分类)的发展脉络(发展),再动手写就如虎添翼(因为还可能对于题目所给数据进行一些变化,看②),否原创 2016-11-13 23:55:40 · 431 阅读 · 0 评论 -
【留坑】 POJ2503 注意输入输出&&几种数据结构的复习、比较(线性表建立的字典 || 树建立的字典_即Trie || hash || map)
1 题意2 分析(上限,3000ms)1)代码一,map,G++,1700ms~2500ms①注意map不能将char数组作为关键字或者映射值,除非重载②gets(temp)会读入空白行,内部是通过temp[0]=='\0'来判断,是不是空白行,如果是就不会输出,我们同样可以用这一点,来区别两组用空白行分割的输入。③因为map的未插入的key-值,其由于初始化而对应的值是n原创 2016-11-26 21:46:41 · 704 阅读 · 0 评论