OJ |
题目号 |
题目名称 |
日期 |
一句话概括做题思路 |
HDU |
1049 |
Is It a number |
3.8 |
合法数字,Wrong answer |
HDU |
2554 |
|
3.8 |
简单规律题,AC |
HDU |
1049 |
Is It a number |
3.9 |
题意没能完全理解,导致错误,没考虑E后面不能带小数 AC |
HDU |
2056 |
Rectangles |
3.9 |
数学几何题,找关系。 AC |
HDU |
2062 |
Subset sequence |
3.10 |
数学集合+规律,看答案 AC |
HDU |
2063 |
过山车 |
3.11 |
二分图的最大匹配问题(匈牙利算法)WA |
HDU |
2064 |
汉诺塔3 |
3.12 |
找规律题,但注意数值大小,用__int64 |
HDU |
2077 |
汉诺塔4 |
3.12 |
找规律题,在2064的基础上很容易 |
ZOJ |
1136 |
Longest Ordered Subsequence |
3.12 |
动态规划,找最长上升子序列 AC |
ZOJ |
3310 |
Unrequited Love |
3.14 |
动态规划,写出状态转移方程,并注意减少不必要的比较,因为会超时AC |
ZOJ |
3311 |
Special AC String |
3.14 |
字符串的处理(STL),注意题目要求,注意细节AC |
HDU |
3364 |
Lucky Number |
3.15 |
简单题,找规律,8的倍数 hdu上排第一 |
HDU |
2063 |
过山车 |
3.15 |
利用二分图(DFS)模板,简单通过 |
HDU |
3349 |
lazy gege |
3.16 |
找规律,简单数学几何题 hdu上排第一 |
HDU |
3347 |
Calculate the expression
|
3.16 |
此题花了近两个小时,其实很简单的一道题目,但是没注意细节,将输入放到while中,因为每次都要先进行输入后再判断,造成没有正常退出。教训啊!!!本来想放弃的,还是坚持把它通过了。用到了STL 的map容器 AC |
HDU |
3279 |
Nth Largest Value |
3.16 |
求第三大数,用STL的set集合容器 简单AC |
HDU |
3201 |
Build a Fence |
3.16 |
求面积,简单AC |
HDU |
3343 |
An ant's story |
3.16 |
微积分证明,超级简单的代码,hdu上排第一 |
HDU |
2548 |
两军相遇 |
3.17 |
绝对水题,5分钟虐掉 |
HDU |
3344 |
Kakuro Extension Extension |
3.17 |
字符串处理,代码量大,运行结果对,但不知道为什么无法AC |
HDU |
2547 |
无剑无我 |
3.17 |
简单数学题,5分钟虐掉 |
HDU |
2549 |
壮志难酬
|
3.17 |
开始没考虑小数点前边的数据大小,导致错,最终AC |
HDU |
3344 |
Kakuro Extension Extension |
3.18 |
今天早上神奇般AC了,有的题中说:“After each test case, you should output one blank
|
HDU |
2550 |
百步穿杨 |
3.18 |
用二维数组简单AC |
HDU |
2551 |
竹青遍野 |
3.18 |
简单题,将全部数据算出来,存到数组中 AC |
HDU |
2570 |
迷瘴 |
3.18 |
贪心 这道题目很奇怪,提交了N次才AC,如果在先前除100,就WA,如果在输出的时候除以100,就AC。真搞不明白?? |
HDU |
2560、2562、2568、 |
三道水题 |
3.18 |
这三道水体15分钟内AC完它们 |
HDU |
2561 |
第二小整数 |
3.18 |
multiset容器区别set容器,multiset允许重复的元素键值插入 |
HDU/POJ |
1361/1068 |
Parencodings |
3.19 |
模拟法,用二维数组标记 理解题目花了近30分钟 细心 AC |
HDU |
比赛:1001 |
关键字拷贝 |
3.20 |
STL string的使用,注意细节 |
HDU |
比赛: 1008 |
流行新词 |
3.20 |
STL multiset容器的使用 |
HDU |
1159 |
Common Subsequence |
3.20 |
经典动态规划 |
HDU |
2573 |
Typing |
3.21 |
字母大小写的处理,注意数据下标,尽量简化题目方法(不熟练) |
HDU |
1207 |
汉诺塔II |
3.22 |
找规律,细心 |
HDU |
1995 |
汉诺塔V |
3.22 |
注意大数的边界,一种投机取巧的方法就是不用高精度,直接用计算器算出最后越界的大数,判断输出即可。 |
HDU |
2175 |
汉诺塔IX |
3.24 |
规律题,细心AC |
HDU |
1012、1014、1017 |
简单数学题 |
3.25 |
简单数学题,注意输入输出格式 |
HDU |
3351 |
Seinfeld |
3.29 |
简单模拟题 hdu 第一 |
HDU |
3354 |
Probability One |
3.29 |
简单数学题 hdu 第一 |
HDU |
3353 |
Not So Flat After All |
3.29 |
主要解决质因数问题: 方法一:不考虑消耗时间 用set和 multiset容器相结合 方法二:时间消耗0,但方法复杂 |
HDU |
3352 |
Tiles of Tetris, NOT |
3.29 |
数学问题,注意要总结出规律,求最小公倍数 |
HDU |
1031 |
Design T-Shirt |
3.29 |
没怎么整理,代码写得很菜,代码量大,细心 |
HDU |
1021 |
Fibonacci Again |
3.29 |
简单规律题,找出规律,超级水 |
HDU |
3357 |
Stock Chase |
3.30 |
传递闭包问题,每次插入都要更新,注意:自己公司不能和自己公司交易 |
HDU |
1028 |
Ignatius and the Princess III |
3.30 |
母函数,未AC 解决 整数划分 |
HDU |
3336 |
Count the string |
3.30 |
思路:一个看数据量。(n < 200000)。想到的算法时间:只能在{O(n),O(1),(O(n*log n)(这个有点危险))},首先想到暴力枚举,先得枚举所有前缀,再找匹配的,时间上不行了。于是想到了一个小小的技巧。 就是:无论这个串怎么样,它最少多会有n个匹配的,就是与自己身的。然后永远把第一个字符与第二个以后的字符匹配,找到相同的记数就加一,再把第下一个字符与第二个字符匹配,以此类推,直到不能匹配为 止,就下移。一直重复到字符串结束为止。 类似深度搜索 |
HDU |
比赛 1011 |
毓秀园的花岗岩路 |
3.30 |
用传统方法怎么都AC不了,总是超时(至少错了10次)。今晚就尝试着用STL容器来做,终于AC了~~ 哈哈·~ 思路如下: 1.把所有输入的石头,都把最小边排在最前面,注意不能搞乱它们之间的顺序,写一个比较函数,排序~ 2.然后将它们连接到字符串S上 3.将字符串加到set容器ss中,根据此容器的特性,若值相同,则不重复统计 4.最后判断ss的大小和n是否相同 |
HDU |
2734 |
Quicksum |
3.30 |
字符串的计算 简单题 |
HDU |
1328 |
IBM Minus One |
3.30 |
字符串的计算 简单题 |
HDU |
1390 |
Binay Number |
3.31 |
二进制的转换 简单题 |
HDU |
2719 |
The Seven Percent Solution |
3.31 |
字符串的替换 处理 |
HDU |
1326 |
Box of Bricks |
3.31 |
简单计算 注意格式 |
HDU |
1086 |
You can Solve a Geometry Problem too |
3.31 |
求两条线段是否有交点(几何),利用模板很快就AC,但代码量太大~~ |
HDU |
1321 |
Reverse Text |
3.31 |
使用C++string类型的反转函数,注意头文件要写上: #include <string> 和 #include <algorithm> 采用一行输入: cin.getline(c,70); 要写范围 |
HDU |
2160 |
母猪的故事 |
3.31 |
水题 |
HDU |
2162 |
Add ‘em |
3.31 |
简单题 |
HDU |
1379 |
DNA Sorting |
4.1 |
比较函数 注意 类型转换、类型的赋值和调用qsort函数,声明变量时,在程序的最开始时声明 特别注意: 比较函数返回值为TRUE时,就进行调换 区别C++的sort的比较函数 |
HDU |
2180 |
时钟 |
4.2 |
好恶心的一道题目,费尽了我所有心思,细节上的小小错误,真的好恶心。收获:看完题目,弄清楚思路后再敲键盘,要不对着一团代码,怎么也找不出逻辑的错误!!! |
HDU |
2552 |
三足鼎立 |
4.2 |
纯数学题目:tan(arctan(X))=X,其它的调用数学函数即可。 |
HDU |
2201 |
熊猫阿波的故事 |
4.3 |
简单数学,算概率 |
HDU |
2203 |
亲和串 |
4.3 |
理解循环移位:所谓循环移位是指在移位时不丢失移位前原范围的位,而是将它们作为另一端的补入位。 本题将S1在本身后边再接一个S1,循环移位本身 |
HDU |
1214 |
圆桌会议 |
4.3 |
数学找规律题 |
HDU |
1222 |
Wolf and Rabbit |
4.3 |
数论简单题,判断两数是否存在公约数的问题 |
HDU |
1329 |
Hanoi Tower Troubles Again! |
4.3 |
总结规律 |
HDU |
1517 |
A Multiplication Game |
4.3 |
感觉是博弈问题,但师兄说不是,也是总结规律 |
HDU |
3280 |
Equal Sum Partitions |
4.3 |
模拟题 |
HDU |
1509 |
Windows Message Queue |
4.6 |
注意输入gets(c)与scanf("%s",c)的区别,优先队列的用法,会重载比较操作符 |
HDU |
2156 |
分数矩阵 |
4.6 |
简单题 |
HDU |
1161 |
|
4.7 |
入门题目 |
HDU |
1406 |
完数 |
4.7 |
注意一定的技巧:1.先把数据范围内的所有完数算出来 2.判断输入两个数的大小,小数在前边 |
HDU |
1711 |
Number Sequence |
4.7 |
KMP简单运用,注意类型,char类型只能接受一个字符,还有语法上的细节要注意 |
HDU |
1709 |
The Balance |
4.7 |
母函数的简单运用,此题定义两个数组,其中一个是用于标记每次增加的数据,另一个是标记可以实现的数据,如果同时用同一个的话, 会重复计算,导致结果错误,最重要的是,采用两个数组,可以用于分层处理 |
HDU |
1381 |
Crazy Search |
4.7 |
Set容器的运用和s.substr(i,n)的运用 |
HDU |
1701 |
ACMer |
4.8 |
数学问题,巧妙用类型转换来取整 |
HDU |
1018 |
Big Number |
4.8 |
算N!的位数,注意数学规律 |
HDU |
1028 |
Ignatius and the Princess III |
4.8 |
母函数G(x)=(1+x+x^2+....)(1+x^2+x^4+....)(1+x^3+x^6+....)(1+x^4+x^8+....)....(1+x^n+…) |
HDU |
1060 |
Leftmost Digit |
4.8 |
大数求首位是多少,难点在于多个大数相乘。利用数学知识:已知大数n,求n^n的首位数,log10 n=x,n*x取小数部分b,再10的b次方,最后取整得出最高位。 |
HDU |
1544 |
Palindromes |
4.8 |
分析:《ACM程序设计》P186,注意常规方法会超时。 在处理字符串的时候,一定要注意字符串相对应的位置 |
HDU |
2740 |
Root of the Problem |
4.8 |
数学问题,用到pow(double,double)函数,当A^N=B,则A=pow(B,1/N)。注:B与N都要为double类型 |
HDU |
1671 |
Phone List |
4.8 |
先将所有电话号码排序(升序),再直接和上一个比较,注意超时,用STL的vector容器的sort快速排序和find查找 |
HDU |
1194 |
Beat the Spread! |
4.8 |
简单数学题! |
HDU |
1303 |
Double |
4.8 |
思路是先排序,在判断比较,简单题 |
HDU |
1039 |
Easier Done Than Said? |
4.8 |
简单字符串判断,但代码长,注意细节 |
HDU |
1056 |
HangOver |
4.9 |
数学题,计算1/2+1/3+1/4… |
HDU |
1065 |
I Think I Need a Houseboat |
4.9 |
题目有点难读,计算圆的面积公式 |
HDU |
1048 |
The Hardest Problem Ever |
4.12 |
密码破译题,但此题简单,处理好字符串的输入即可 |
HDU |
1789 |
Doing Homework again |
4.12 |
贪心 这一道经典的贪心花了我好多心血,因为老是处理不好细节问题,wr了7、8次才AC。贪心公式:每次选择一个最大的且尽可能的在规定时间内往后推。 思路:1.对输入的数据进行排序,先按规定时间,再按扣分 2.从后面开始贪心,理由很简单,因为能完成得事件,尽可能的推后,别放到前面,占用了别的科目的位置 3.用k[i]来标记,时间i是否有科目安排,如果有,先选择第一个,然后判断后边的数据,有没有比他更大的。 如果没有,便直接找后续最大的数据 4.一个细节问题,每次确定某个科目,就将他赋值为0,以免重复用 |
HDU |
1253 |
胜利大逃亡 |
4.12 |
BFS(广度搜索) 意外学习到,C++的结构体也可以像C#一样,里边有好几个方法 用BFS搜索,将所有情况遍历完,直到最后到达终点或者步子大于规定时间范围 |
HDU |
3374 |
String Problem |
4.12 |
用最小表示法 分别求出 最小字符串和最大串 最后再用KMP算法统计有多少个字符串一样的 |
HDU |
1372 |
Knight Moves |
4.13 |
BFS(广度搜索) 注意sscanf的用法 |
HDU |
1314 |
Numerically Speaking |
4.13 |
模拟题,高精度的加法、乘法、除法和取余,还得注意字符串的输出格式,一道不错的题目 |
HDU |
1106 |
排序 |
4.14 |
注意输入字符的处理 排序利用容器自动排序的功能 |
HDU |
1029 |
Ignatius and the Princess IV |
4.14 |
用常规方法会超内存,用map的容器,最后查找那个最多,输出即可。 |
HDU |
1207 |
Clock |
4.14 |
计算时钟角度,然后排序,定义结构体,调用快速排序,提交时用C++提交 |
HDU |
1236 |
排名 |
4.14 |
注意格式 结构体排序,比较函数判断字符串 |
HDU |
1280 |
前m大的数 |
4.14 |
ms.erase(it,it1);删除指定位置 ms.erase(*it);删除所有与*it相等的值 注意:常规方法会超内存! |
HDU |
1391 |
Number Steps |
4.14 |
简单题,没有见到什么排序!? |
HDU |
2673 |
shǎ崽 OrOrOrOrz |
4.14 |
排序,在依次头尾输出。方法一:常规数组,用快速排序,再控制数组下标排序。 方法二:直接将数据存入STL的multiset容器,在用迭代器控制头尾依次输出。 |
HDU |
1045 |
Fire Net |
4.15 |
这道贪心题目,一定要注意对每个点的标记! 此题的标记方式: 若为‘.’,则标记为0 若为‘X’,则标记为1 若该路上有炮台,则该炮台的范围内标记为-1 贪心的方式是根据影响的行和列来决定: 0:行和列都是墙 1:行或列有一个两边都有墙 2:行和列都会相通 有 0 1 2三种方式,贪心最小的情况 |
HDU |
2037 |
今年暑假不AC |
4.15 |
典型贪心:从后面开始贪心 用结构体,先按开始时间排序,如果开始时间一样,再按结束时间排序 |
HDU |
1051 |
Wooden Sticks |
4.15 |
贪心+递归 方法一:采用结构体和快速排序 用时:15ms 内存:296k 方法二:常规方法 用时:140MS 内存:188K |
HDU |
1050 |
Moving Tables |
4.15 |
贪心 这道题最少花多少时间,实际上我们只要考虑哪一段重合度最高,重合度最高的地方, 也就是我们至少要移动的次数了。因为有400间房间,1-2对应一段走廊,3-4对应一段走廊,如此我们可以把走廊分成200段,标记为a[1]-a[200],之后我们根据输进的房间序号,就可以算出要用到哪几段的走廊,之后给对应的a[n]值加1就好,最后求出a[n]最大值就是移动的次数了 |
HDU |
3177 |
Crixalis's Equipment |
4.15 |
经典的贪心,注意其贪心的方式,是贪心所要空间和占用空间的差,而不是贪心所要空间。从大到小排序。 |
HDU |
1053 |
Entropy |
4.16 |
贪心经典 赫夫曼编码 此题又长又臭,如果没有学习过赫夫曼编码,题意真像天书 赫夫曼编码(算法导论 P233) 前缀编码:没有一个编码是另一个编码的前缀 构造赫夫曼树(二叉):每次合并具有最低频度的两个树 解题思路:利用priority_queue 优先队列容器 每次取出最小两个值,合并再加入队列中,直到队列取空 PS:一个细节错误,开始一直没有发现,最后找了近一个小时,那就是当所有输入都相同时,队列里只有一个结构体,那么,它就没有进入while循环 进行统计。所有最后加上一个判断 |
HDU |
2566 |
统计硬币 |
4.17 |
母函数 只需循环判断即可 |
HDU |
2079 |
选课时间 |
4.17 |
母函数,先用t[a]=b标记学分a课程有b门,再暴力计算 |
HDU |
3317 |
hot girl with cool car |
4.18 |
主要是题目意思有点难理解,作图推导公式,初中三角几何知识 |
HDU |
1152 |
brownie points I |
4.18 |
简单题,判断点所在的期间,主要就是题目难读 |
HDU |
2299 |
Largest Triangle |
4.18 |
数学题,海伦公式+凸包。但对此题,暴力也可以过 |
HDU |
3194 |
Median |
4.18 |
Hash问题,开始往难的方面想去了,想到数论那些,OH~ 其实用hash统计每个结果的次数,最后判断哪一个先通过中间值 |
HDU |
3233 |
Download Manager |
4.18 |
文件下载,和去年那道排序题目差不多,主要就是题目意思难懂 |
HDU |
2831 |
Plants VS Zombies |
4.18 |
经典贪心问题 |
HDU |
2919 |
Adding Sevens |
4.18 |
模拟题,注意二进制的转换 |
HDU |
2572 |
终曲 |
4.19 |
还以为这道题的代码会很长,自己想的解题思路很复杂,网上一搜,发现别人的代码写得非常的好。比用KMP算法,直接调用了string.h函数库的strstr方法:返回第一次出现的指针位置(看函数文档) strstr函数+map |
HDU |
2152 |
fruit |
4.19 |
母函数经典模板(整数拆分),初始化范围要注意好 |
HDU |
2189 |
来生一起走 |
4.19 |
母函数,整数拆分(拆分成素数) |
HDU |
2110 |
Crisis of HDU |
4.19 |
母函数 与其他母函数一样,不能使用暴力方法,就只能使用经典模板(滚动数组),注意结果要取余10000 |
HDU |
1358 |
Period |
4.19 |
KMP算法的巧妙运用,统计一个字符串的所有循环串 |
HDU |
1465 |
不容易系列之一 |
4.20 |
组合数学,排错公式。d[1]=0;d[2]=1; d[n]=(n-1)*(d[n-1]+d[n-2]); |
HDU |
1492 |
The number of divisors(约数) about Humble Numbers |
4.20 |
组合数学:常规方法超时 首先 2,3,5,7是互质的!可以把 N 写成 (2^a)*(3^b)*(5^c)*(7^d) (a,b,c,d >= 0)! 每次从a ,b,c,d中选出一组数就是一个因数,那么ans=a*b*c*d |
HDU |
1570 |
A C |
4.20 |
排列组合问题,简单组合数学 |
HDU |
2089 |
不要62 |
4.20 |
注意数据的大小,先提前统计还前i个数据含有多少合法的数据,再在输入数据的区间中相减。简单数学题 |
HDU |
1568 |
Fibonacci |
4.20 |
经典:Fibonacci通项公式+对数求前几位数 http://zc634579757.blog.163.com/blog/static/124497462200971624038914/ |
HDU |
1019 |
Least Common Multiple |
4.20 |
求最小公倍数,有一点注意的是,整型*整型可能超过int的范围,所以在此题,第一个数先除以最大公约数,再乘另外个数,避免数据类型过大,导致错误。 |
HDU |
1164 |
Eddy's research I |
4.20 |
分解质因数 |
HDU |
1212 |
Big Number |
4.20 |
别以为是高精度问题,其实用点数学理论+小技巧 |
HDU |
1023
1130
1134 |
Train Problem II
How Many Trees?
Game of Connections 三题代码一样 |
4.21 |
卡塔兰数列+高精度乘法(此题巧妙地处理) 唯一要注意的问题是n比较大,需要用大数来处理。为了避免做大数除法,先做了一个小处理。
令h(1)=1,catalan数满足递归式: h(n)= h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1) (其中n>=2)
另类递归式: h(n)=((4*n-6)/(n))*h(n-1); 该递推关系的解为: h(n)=C(2n,n)/(n + 1) (n=1,2,3,...) 一下程序,用该公式 h(n)=C(2n,n)/(n + 1) => h(n)=(2n!/n!)/(n+1)! |
HDU |
2088 |
Box of Bricks |
4.21 |
简单题 |
HDU |
2065 |
红色病毒 |
4.21 |
递归:1、先将条件分类 2、观察各个条件之间的关系 3、通个关系总结出递归关系 |
HDU |
2072 |
单词数 |
4.21 |
STL容器的set使用,但此题注意处理多余的空格,避免把空格加入容器,输入用gets或getchar,不能用cin,因为不接受空格 |
HDU |
2078 |
复习时间 |
4.21 |
超级简单贪心 |
HDU |
1575 |
Tr A |
4.21 |
此题求矩阵的幂 用到二分法求矩阵的幂+矩阵乘法 |
HDU |
1757 |
A Simple Math Problem |
4.22 |
构造矩阵 矩阵乘法 矩阵的幂 此题难点在如何构造矩阵,另外在写for语句时,要记得多加大括号,今天早上调试了一个上午,才发觉这样的错误 |
HDU |
1725 |
Find minimal sum |
4.22 |
简单数学题 |
HDU |
1202 |
The calculation of GPA |
4.22 |
水题、简单计算 区别实型(小数)和整型 |
HDU |
3388 |
Coprime |
4.23 |
数论 看别人的代码 |
|
1677 |
|
|
|
HDU |
1215 |
七夕节 |
4.30 |
打表发,常规方法超时,容器会错 |
HDU |
1286 |
找新朋友 |
5.5 |
简单数论题,欧拉函数,找前n个数与n互质的数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|