Gravatar
cstdio
积分:4748
提交:1198 / 2108
有错,但问题是输入方式,苦逼的EOF……1楼正解+1,第二问确实可以DP出来

Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
果的动规,改变了if语句的顺序后过了
先判定(用时少):if (f[i]<f[j]+1)
后判定(用时多):if (a[i].substr(0,len[j])==a[j])
膜拜蛋神用单调堆栈(单调包含堆栈——不是点掉递减堆栈,也不是单调递增堆栈)

题目 173 词链 AAAAAAAAAA
2012-11-03 18:46:38
Gravatar
Makazeu
积分:3005
提交:780 / 1516
偷懒,直接用STL函数: str.find(sta.top())==string::npos

题目 173 词链
2012-11-03 18:14:44
Gravatar
cstdio
积分:4748
提交:1198 / 2108
应该是“最长上升子序列”和“最长下降子序列”,如果反着存一遍的话“最长上升”两次就行了

Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
一个强有力的启发——【跪!
卡点开数据会爆!最好去尾,舍去除首位外所有的数。
卡时间解题会爆!最好多留点预留的保险时间。
开STL vector慢得跟翔一样!少开!

题目 835 邮票 AAAAAAAAAAAAA
2012-11-03 16:11:06
Gravatar
Makazeu
积分:3005
提交:780 / 1516
只要一看到MST,不管它稀疏不稀疏,直接上tree_ufs+kruskal...

题目 7 通信线路
2012-11-03 14:58:10
Gravatar
Makazeu
积分:3005
提交:780 / 1516
我排序了。。不會用記錄父節點的來按字典序輸出路徑。。最後改用vector記錄整個路徑。。。

题目 1243 嵌套矩形
2012-11-03 13:17:27
Gravatar
Makazeu
积分:3005
提交:780 / 1516
尿了。。不會按字典序輸出路徑

题目 1243 嵌套矩形
2012-11-03 12:59:08
Gravatar
cstdio
积分:4748
提交:1198 / 2108
数据没问题啊

Gravatar
Makazeu
积分:3005
提交:780 / 1516
我刚才看看DAG_DP的定义,赶脚“最长XX子序列”一类的问题也是DAG_DP。

题目 1243 嵌套矩形
2012-11-03 11:12:01
Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
BFS,哈希判重,STL vector充当队列(为了输出路径)——>伟大的RP之神........................Orz

题目 865 魔板 AAAAAAAA
2012-11-03 10:57:59
Gravatar
Makazeu
积分:3005
提交:780 / 1516
膜拜大神会四种OZ背包的算法。。本蒟蒻一个也不会。。

题目 68 [NOIP 2005]采药
2012-11-03 10:50:00
Gravatar
Makazeu
积分:3005
提交:780 / 1516
Tarjan了。。

Gravatar
WJW0612
积分:9
提交:6 / 21
比较简单,不过很麻烦。我开放了代码,欢迎各路高手点评代码 :)

Gravatar
fflyt
积分:186
提交:81 / 200
Truth诚不欺我 第一遍果然跪在了w和l上

Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
错误1:需求:n变量全局定义;结果:n变量全局局部都有定义。导致:
错误2:tarjan求出的割点可能会出现同一个点多次被求出的情况,需判断。
以后需注意:“根”节点的情况单独判断,当从其发出的“儿子”大于1时,则该点为割点,否则不为割点。

Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
为何我只想到了用高精
摘自NOCOW:
简单的把末尾的0去掉是不行的,因为我们不知道现在不是0的位会不会乘上下一个数之后就变成0了。
因为10=2*5,所以每有一个0就有一对2*5=10出现,反之,如果这个数的质因数分解没有成对的2,5,我们就可以简单的对10求模,而不用管前面的数字,因为它一定不会产生0。
所以我们只要在处理阶乘的时候消掉所有成对的2和5就行了,容易理解,N!的质因数分解式里因子2远比5要多,所以只需要记录因子2的个数,有因子5就消掉,最后再把2乘回去就行了。
可以直接用高精度乘法计算,5000位就够了,每位存储一个四位数,打印时处理一下。
甚至可以连高精度都不用,用一个变量j记录i!的最后四位末尾非零数,在计算(i+1)!时只需要计算(i+1)*j即可。
更简洁的方法是,一遍循环消除5并记录5的个数,第二遍循环消除同样个数的2并计算末位。

题目 861 阶乘 AAAAAAAAAA
2012-11-02 17:09:56
Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
补充:启示:嵌套循环中,“小循环”尽量在外

Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
枚举目标饲料的份数,搜索三种原料的份
其中当目标目标饲料分数枚举值超过一定值时结束程序,输出NONE。
为此专门开了ctime算时间,结果发现卡着时间点不行,不是好方法!
启示:就算卡时间点,也要多留出些时间

题目 864 饲料调配 AAAAAA
2012-11-02 15:55:00
Gravatar
日光。
积分:327
提交:90 / 224
给OI初学者跪了