8.16解题

本文分享了解几道经典算法题目(如HDU1005, HDU1708等)的心得体会及解题过程,特别是针对HDU1588的难点进行了深入剖析,并介绍了POJ2967的解决技巧。

今天……不,是昨天,没解多少题,晚上有CF BetaRound#26的比赛,表现不怎么样,只解了两道最水的题……

好了,发解题报告吧~

hdu1005 :  http://acm.hdu.edu.cn/showproblem.php?pid=1005

先以一个水题开始,最简单的矩阵构造,表示没有什么说的...

hdu1708 :  http://acm.hdu.edu.cn/showproblem.php?pid=1708

没什么好说的,对于每个字母都满足F(n)=F(n-1)+F(n-2) ,直接推就可以了。

hdu1588 :  http://acm.hdu.edu.cn/showproblem.php?pid=1588

这个题纠结死我了,看来我的coding 能力确实不敢恭维,写了好久还是没写出来,函数不会用,导致代码很长,无从检查起,昨天残留的二分也不会写…… orz ,看来任重而道远啊!

先说下思路吧~


poj2967 :  http://acm.pku.edu.cn/JudgeOnline/problem?id=2967

好混蛋的题……用c++ 怎么做都是 tle ,最后用 g++ 居然提前 2s 过了……

首先要优化的是如果n 大于 46 那么只需要判定两个最小的和最大的是否能够成三角形即可,因为最密的情况(任意三个构不成三角形)是斐波那契数列,然而斐波那契数列在 int 范围内最多有 46 个,因此,如果大于的,直接比较即可,如果小于再 sort 吧……这样会避免反复 sort 导致超时,但是这么做还是会超时的,郁闷的是居然要用 getchar 读入然后再转化成 int- -.... 我没话说了 - -|||| 然后转化完还是 tle ,后来想想用 g++ 交居然就这么过了……郁闷 ~ ~

不然这题就是纯粹的水题嘛……

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值