有错,但问题是输入方式,苦逼的EOF……1楼正解+1,第二问确实可以DP出来
|
|
果的动规,改变了if语句的顺序后过了
先判定(用时少):if (f[i]<f[j]+1) 后判定(用时多):if (a[i].substr(0,len[j])==a[j]) 膜拜蛋神用单调堆栈(单调包含堆栈——不是点掉递减堆栈,也不是单调递增堆栈) |
|
偷懒,直接用STL函数: str.find(sta.top())==string::npos
题目 173 词链
2012-11-03 18:14:44
|
|
应该是“最长上升子序列”和“最长下降子序列”,如果反着存一遍的话“最长上升”两次就行了
|
|
|
|
只要一看到MST,不管它稀疏不稀疏,直接上tree_ufs+kruskal...
题目 7 通信线路
2012-11-03 14:58:10
|
|
我排序了。。不會用記錄父節點的來按字典序輸出路徑。。最後改用vector記錄整個路徑。。。
题目 1243 嵌套矩形
2012-11-03 13:17:27
|
|
尿了。。不會按字典序輸出路徑
题目 1243 嵌套矩形
2012-11-03 12:59:08
|
|
数据没问题啊
题目 1160 [NOIP 1999]旅行家的预算
2012-11-03 11:32:03
|
|
我刚才看看DAG_DP的定义,赶脚“最长XX子序列”一类的问题也是DAG_DP。
题目 1243 嵌套矩形
2012-11-03 11:12:01
|
|
BFS,哈希判重,STL vector充当队列(为了输出路径)——>伟大的RP之神........................Orz
|
|
膜拜大神会四种OZ背包的算法。。本蒟蒻一个也不会。。
题目 68 [NOIP 2005]采药
2012-11-03 10:50:00
|
|
Tarjan了。。
题目 996 [NOIP 2010冲刺四]晨跑路径
2012-11-02 23:04:28
|
|
比较简单,不过很麻烦。我开放了代码,欢迎各路高手点评代码 :)
|
|
Truth诚不欺我 第一遍果然跪在了w和l上
|
|
错误1:需求:n变量全局定义;结果:n变量全局局部都有定义。导致:跪
错误2:tarjan求出的割点可能会出现同一个点多次被求出的情况,需判断。 以后需注意:“根”节点的情况单独判断,当从其发出的“儿子”大于1时,则该点为割点,否则不为割点。 |
|
为何我只想到了用高精度
摘自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并计算末位。 |
|
补充:启示:嵌套循环中,“小循环”尽量在外层
|
|
枚举目标饲料的份数,搜索三种原料的份数
其中当目标目标饲料分数枚举值超过一定值时结束程序,输出NONE。 为此专门开了ctime算时间,结果发现卡着时间点不行,不是好方法! 启示:就算卡时间点,也要多留出些时间 |
|
给OI初学者跪了
题目 521 [NOIP 2010]引水入城
2012-11-02 15:49:05
|