74 条题解
-
0huangzeyuand LV 3 @ 2008-10-29 19:30:10
r,g,b居然都要用int64!
真想…… -
02008-10-20 15:46:39@
楼下下牛解..
注意如果使用另外函数比大小..一定也要用int64类型..- -|
我就因为这个不能one ac -
02008-10-14 18:32:35@
顶楼下的牛解,玩过魔兽的都知道要女巫、小鹿的厉害,就是这个道理:负属性尽可能多的附加给敌方单位(对方没有破法的话。。),纯伤害的放在后面。。。。。
-
02008-10-11 15:27:19@
魔法塔防 解题报告
Xascal 2008/10/11
题意:找出一个魔法师的排列,使其对怪物的总伤害最大红 攻击
蓝 减速
绿 下毒输入:n, r, g, b, y
(魔法师数量,攻击力大小, 减速时间, 毒性, 通过每个魔法塔的时间)
输出:一个数,表示最大伤害。总体思路:
1.如果放置红法师,那么红法师一定要被放在最后。
2.DP求出放置蓝、绿法师的最优解DP算法:
d[i, j] 表示在前i+j个位置放置i个蓝法师 j个绿法师的最优解。初始化:
d[0, 0]:=0; {没有法师}
d[0, 1]:=0; {只放一个绿法师}
d[0, j]:=d[0, j-1]+(j-1)*g*t;(1 -
02008-10-05 19:46:57@
#include
using namespace std;
int main()
{
int k[101][101];
int n,r,g,b,i,t1,t2,j,t;
unsigned int max=0;
cin>>n>>r>>g>>b>>t;
k[0][0]=n*r*t;
for(i=1;i -
02008-10-05 11:07:52@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 72ms
├ 测试数据 08:答案正确... 197ms
├ 测试数据 09:答案正确... 212ms
├ 测试数据 10:答案正确... 197ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:678ms
一定要注意!!要开int64,连输入数据也要int64... -
02008-10-04 22:40:44@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 103ms
├ 测试数据 08:答案正确... 119ms
├ 测试数据 09:答案正确... 150ms
├ 测试数据 10:答案正确... 166ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:538ms
第151个AC。。。口袋妖怪NO.151是梦幻吧。。。囧
简单的DP啦。。。
谁都知道红魔法师是个LJ,所以他们必须遗弃在队尾。。。
(PS:其实我还是挺同情他们的。。。FF1中还是挺卖力的I think)
f表示当前i个魔塔中放j个蓝魔法师(即还有i-j个绿魔法师)能达到的最大毒性损血量(无视红魔法师,当然蓝魔法师也不会斩血啦)。
f……|max{"f(i=j,此时i-j-1=-1,而底线是0) or f+(t+b*j)*(i-j-1)*g(ij)"("..."中是一个部分哦),f+(t+b*(j-1))*(i-j)*g}
搞定这些后只要在i=1~n,j=0~i中把(n-i)*(t+b*j)*(i-j)*g这部分红魔法师的斩血(红魔法师终于有用了。。。)和(n-i)*(t+b*j)*r这后面部分的毒性损血量加上求最大值Max就行了。。。↖(^ω^)↗
注意:除了循环变量用Longint外,所有计算所用到的变量都得是int64级别的才行。
(PS:我就是这样死了,半个月后发现才复活的。。。) -
02008-10-02 18:14:55@
提醒一句....n
-
02008-09-20 16:48:17@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 119ms
├ 测试数据 08:答案正确... 275ms
├ 测试数据 09:答案正确... 275ms
├ 测试数据 10:答案正确... 244ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:913ms
哇,,郁闷了几次之后,,终于AC了
总结下
首先
FOR I:=0 TO N DO
FOR J:=0 TO N DO
而且要+个判断
IF (I-1>=0) OR (J-1>=0) THEN
DP方程不加判断会WA6个还是5个点。
FOR I:=1 TO N DO
FOR J:=1 TO N DO
会WA掉第5个点 -
02008-09-20 18:54:55@
入楼下所说!!
-
02008-09-20 13:09:39@
循环变量要开到longint,其他int64啊。郁闷一次没过。
f表示前i个中有j个蓝魔法师造成的伤害。每次把f加上i以后红色法师攻击以及中毒掉的血,跟最大值作比较。
-
02008-09-15 15:58:01@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
18行 但理解这题题意对我是无比困难的 -
02008-09-13 21:02:53@
多谢各位大牛提醒~
BT的数据 -
02008-09-03 22:00:00@
动规方程:
f:=(n-i)*r*(t+b*i);
f[0,i]:=f[0,i-1]-r*t+g*(n-i)*t;
f:=max(f+(n-i-j)*r*b+(n-i-j)*(g*j)*b-r*(t+(i-1)*b),f+(n-i-j)*g*(t+i*b)-r*(t+i*b)) -
02008-08-29 15:24:14@
除了循环变量,
其他数据都开成int64,
包括输入数据!!!!
————————非常重要—————— -
02008-08-26 21:39:01@
还是开qword好啦...
-
02008-08-25 16:51:42@
友情提示:
输入的数据也要用INT64否则WA掉一半
真是奇怪的很
但是在TOI上不用这样也能AC -
02008-08-25 16:29:15@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 25ms
├ 测试数据 08:答案正确... 103ms
├ 测试数据 09:答案正确... 134ms
├ 测试数据 10:答案正确... 88ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:350ms绿魔的效果竟然有0...我汗...
-
02008-09-28 09:42:46@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
强大! -
02008-08-24 09:25:45@
问一下 方程怎么写