讨论 / 为什么WA 80?
cherryunix_sys 2013-07-25 02:15:00
点我顶贴 收藏 删除
状态: Unaccepted

测评机: Xeost[5]

得分: 80分

提交日期: 2011-9-27 19:28:00

有效耗时: 454毫秒

测试结果1: 通过本测试点|有效耗时125ms

测试结果2: 通过本测试点|有效耗时47ms

测试结果3: 通过本测试点|有效耗时47ms

测试结果4: 通过本测试点|有效耗时47ms

测试结果5:

测试结果6:

测试结果7: 通过本测试点|有效耗时47ms

测试结果8: 通过本测试点|有效耗时47ms

测试结果9: 通过本测试点|有效耗时47ms

测试结果10: 通过本测试点|有效耗时47ms

提交代码:

view sourceprint?

001.

#include <cstdio>

002.

#include <iostream>

003.

#include <cstring>

004.

#include <vector>

005.

006.

using namespace std;

007.

008.

int value[100][10] = {{0}};

009.

int wast[100][10] = {{0}};

010.

int n,m;

011.

long ans;

012.

int f[4000][100] = {{0}};

013.

int map[200];

014.

int flag = 0;

015.

016.

void init()

017.

{

018.

//freopen("ex.in","r",stdin);

019.

cin>>n>>m;

020.

n = n/10;

021.

for (int i=1; i<=m; i++)

022.

{

023.

int t_1,t_2,t_3;

024.

cin>>t_1>>t_2>>t_3;

025.

t_1 = t_1/10;

026.

if (t_3 == 0)

027.

{

028.

flag++;

029.

value[flag][0]++;

030.

value[flag][1] = t_1*t_2;

031.

map[i] = flag;

032.

wast[flag][0]++;

033.

wast[flag][1]=t_1;

034.

}

035.

else

036.

{

037.

value[map[t_3]][0]++;

038.

value[map[t_3]][value[map[t_3]][0]] = t_1*t_2;

039.

wast[map[t_3]][0]++;

040.

wast[map[t_3]][wast[map[t_3]][0]]=t_1;

041.

042.

}

043.

}

044.

for (int i=1; i<=m; i++)

045.

{

046.

if (value[i][0] == 2)

047.

{

048.

value[i][0];

049.

wast[i][0];

050.

value[i][2] = value[i][1]+value[i][2];

051.

wast[i][2] = wast[i][1]+wast[i][2];

052.

}

053.

if (value[i][0] == 3)

054.

{

055.

int t_4 = value[i][2];

056.

value[i][2]+= value[i][1];

057.

wast[i][2]+= wast[i][1];

058.

value[i][3]+= value[i][1];

059.

wast[i][3]+= wast[i][1];

060.

value[i][0]++;

061.

wast[i][0]++;

062.

value[i][4] = value[i][3]+value[i][2]-value[i][1];

063.

wast[i][4] = wast[i][3]+wast[i][2]-wast[i][1];

064.

}

065.

}

066.

/*cout<<flag<<endl;

067.

for (int i=1;i<=flag;i++)

068.

{

069.

for (int j=1;j<=value[i][0];j++)

070.

{

071.

cout<<value[i][j]<<" ";

072.

}

073.

cout<<endl;

074.

}*/

075.

}

076.

077.

int max(int a,int b)

078.

{

079.

return a>b?a:b;

080.

}

081.

082.

void dp()

083.

{

084.

for (int i=0;i<=n;i++)

085.

for (int j=1;j<=flag;j++)

086.

for (int k=1;k<=value[j][0];k++)

087.

{

088.

if (i - wast[j][k] < 0)

089.

{f[i][j] = f[i][j-1];

090.

continue;

091.

}

092.

int temp=f[i][j-1];

093.

f[i][j] = max(f[i-wast[j][k]][j-1] + value[j][k],f[i][j]);

094.

f[i][j] = max(temp,f[i][j]);

095.

ans = max(f[i][j],ans);

096.

}

097.

}

098.

099.

int main()

100.

{

101.

init();

102.

dp();

103.

cout<<ans*10;

104.

return 0;

105.

}

#1 1150076053@2011-09-27 07:34:00
回复 删除
啥题
#2 yedayuan@2013-07-25 02:15:00
回复 删除
我才40
查看更多回复
提交回复