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 | 4.22 | 简单数学题 | |
HDU | 1202 | The calculation of GPA | 4.22 | 水题、简单计算 区别实型(小数)和整型 |
HDU | 3388 | 4.23 | 数论 看别人的代码 | |
| 1677 |
|
|
|
HDU | 1215 | 七夕节 | 4.30 | 打表发,常规方法超时,容器会错 |
HDU | 1286 | 找新朋友 | 5.5 | 简单数论题,欧拉函数,找前n个数与n互质的数 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
做题记录(2010.3~2010.5)
最新推荐文章于 2025-04-16 22:22:35 发布