Gravatar
Makazeu
积分:3007
提交:780 / 1516
膜拜大神会四种OZ背包的算法。。本蒟蒻一个也不会。。

题目 68 [NOIP 2005]采药
2012-11-03 10:50:00
Gravatar
Makazeu
积分:3007
提交: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初学者跪了

Gravatar
Makazeu
积分:3007
提交:780 / 1516
天狗=てんぐ=テング=TenGu

Gravatar
Makazeu
积分:3007
提交:780 / 1516
省选初中组的垃圾题。。6兆5千3百12万 4千7百10年の 果て果てに飛び込んだんだ 午前5時始発の終着点 。。

题目 1245 [HAOI 2012]添加号
2012-11-02 15:43:50
Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
启发:天狗==ten inu

Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
见过马甲

Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
西行妖下看樱

Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
守矢神社一

Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
四维枚举i1,j1,i2,j2,高先不枚举,实际意义是先从上到下贯穿地切下来一竖条西瓜。翔!
剩下的用一位的思想做(DP)。
为了方便可以开一个s[i][j][k],表示第i层从(1,1)到(j,k)的营养值的和。

Gravatar
feng
积分:897
提交:139 / 331
多明显,我的程序最快。
题解

Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
树形BCJ,留
RP过低,求帆神破【哔~】

Gravatar
feng
积分:897
提交:139 / 331
类似于最大子矩阵和
考验空间想象能力
还可能要用到容斥原理
题解

Gravatar
Makazeu
积分:3007
提交:780 / 1516
log10(2^P)+1 @Paulinsider