做题记录(2010.3~2010.5)
来源:互联网 发布:科罗拉多矿业学院 知乎 编辑:程序博客网 时间:2024/05/01 09:55
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
line”,而有的题目却说:“Between each test case, you should ouput one blank line”请大家注意After和Between的区别,因为如果多了一或少了空行,将导致Presentation Error甚至Wrong Answer
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互质的数
- 做题记录(2010.3~2010.5)
- NOIP做题记录(提高组)
- URAL 做题记录
- 做题记录
- leetcode 做题记录
- 做题记录
- 做题记录
- 做题记录
- 每日做题记录
- 做题记录
- 【】做题记录
- KMP做题记录
- uva题目做题记录
- URAL 做题记录 V2
- DomiNo Grid做题记录
- 【4-29做题记录】
- 【5-4做题记录】
- leetcode 做题记录2
- Java中各类Cache机制实现解决方案
- (转)Android Content Provider的应用
- EditPlus配置完美的C#运行环境
- struts2.0的标签库(一)
- VB.Net程序设计:IE收藏夹管理器-增强版
- 做题记录(2010.3~2010.5)
- Etag和Expires
- Linux Command Line 解析
- 两个最常用的设计模式:工厂方法 & 抽象工厂
- SQL中 常用的处理方法(处理空值、更新字段、去掉小数后的0、查询重复列)
- maven构建与使用
- list vector比较
- 双线性插值算法用于图像缩放
- C#源码 备份和恢复数据库