Mudrobøt @ 2018-02-04 09:08:34
此代码本机运行第十个点是对的,在洛谷IDE上运行第十个点也是RE的打不出答案,但是本机可以打出来! 下面是代码:
#include<cstdio>
#include<cstring>
#include<vector>
#include<iostream>
using namespace std;
struct sd{
int weight,value;
bool prime;
}thing;
int M[32005];
int num=0;
bool judger[32005];
vector<sd> subject[80];
vector<sd> group[80];
int m,n;
void init();
int main()
{
init();
int limit=0;
for(int i=1;i<=num;++i)
{
for(int k=limit;k>=0;--k)
{
for(int j=group[i].size()-1;j>=0;--j)
{
if((k==0||M[k]!=0)&&k+group[i][j].weight<=m)
{
if(!judger[k]&&M[k+group[i][j].weight]<M[k]+group[i][j].value)
{
M[k+group[i][j].weight]=M[k]+group[i][j].value;
judger[k+group[i][j].weight]=true;
}
}
if(k+group[i][j].weight>limit)
limit=k+group[i][j].weight;
}
}
memset(judger,false,sizeof(judger));
}
long long ans=0;
for(int i=0;i<=m;++i)
if(ans<M[i])
ans=M[i];
cout<<ans;
return 0;
}
void init()
{
int a,b;
int c;
scanf("%d%d",&m,&n);
for(int i=1;i<=n;++i)
{
scanf("%d%d%d",&a,&b,&c);
thing.value=a*b;
thing.weight=a;
if(c==0)
{
thing.prime=true;
subject[i].push_back(thing);
}
else
{
thing.prime=false;
subject[c].push_back(thing);
}
}
for(int i=1;i<=n;++i)
{
if(subject[i].size()==0)
continue;
else
{
num++;
if(subject[i].size()==1)
{
group[num].push_back(subject[i][0]);
}
else if(subject[i].size()==2)
{
int king;
if(subject[i][0].prime) king=0; else king=1;
group[num].push_back(subject[i][king]);
sd change;
change.weight=subject[i][king].weight+subject[i][1-king].weight;
change.value=subject[i][king].value+subject[i][1-king].value;
group[num].push_back(change);
}
else if(subject[i].size()==3)
{
int king;
if(subject[i][0].prime) king=0; else if(subject[i][1].prime) king=1; else king=2;
group[num].push_back(subject[i][king]);
sd swp;
swp=subject[i][king];
subject[i][king]=subject[i][0];
subject[i][0]=swp;
sd change;
change.weight=subject[i][0].weight+subject[i][1].weight;
change.value=subject[i][0].value+subject[i][1].value;
group[num].push_back(change);
change.weight=subject[i][0].weight+subject[i][2].weight;
change.value=subject[i][0].value+subject[i][2].value;
group[num].push_back(change);
change.weight=subject[i][0].weight+subject[i][1].weight+subject[i][2].weight;
change.value=subject[i][0].value+subject[i][1].value+subject[i][2].value;
group[num].push_back(change);
}
}
}
}
by Mudrobøt @ 2018-02-04 09:09:11
恳请大佬帮助一下!谢谢!!!
by fbhou @ 2018-02-04 09:11:45
哈麻皮
by fbhou @ 2018-02-04 09:11:59
菜锤皮
by fbhou @ 2018-02-04 09:12:16
李时珍的皮
by fbhou @ 2018-02-04 09:12:52
滚滚滚爬爬爬
by Mudrobøt @ 2018-02-04 09:44:37
@fbhou 同学请注意一下你的言行!!!
I类违反(轻微规则违反):
犇犇或讨论发送无意义内容的
用私信骚扰辱骂他人而被举报,或私信骚扰管理员的
提交不符合要求的题解或题目的(包括剽窃他人成果而不注明出处的)
提交无意义评测代码或在评测时抄袭他人代码的
恶意进行评分的
在洛谷站内发送未经许可的洛谷站外广告的
在洛谷站内宣传不符合规定的比赛、团队的
其他的轻度不合理行为 II类违反(严重规则违反):
3次或以上造成I类违反的
在洛谷内发表违反法律、社会公德以及严重的人身攻击的言论
在社区内做出令人觉得严重困扰的行为(包括但不限于发表令人不快的言论)
创建不符合要求的公开比赛的
在比赛中为了骗取奖品、获得排名而作弊的
用户名或头像不和谐或冒充管理员的
在其他任何地方给洛谷造成不好的影响的
故意卡评测机或者利用洛谷系统漏洞而不上报、造成严重后果的(测试并上报没问题)
其他的恶意行为
by Mudrobøt @ 2018-02-04 09:46:35
金明的预算方案!对不起忘说了。
by fbhou @ 2018-02-04 10:17:33
@Mudrobot 我就不注意你能把我怎么样/滑稽
by eternal风度 @ 2018-02-07 07:26:33
@fbhou 给人以起码的尊重,注意你的素质,不要总想着在网上当键盘侠逞一时之快...
by fbhou @ 2018-02-07 08:39:27
@eternal风度 您知道他是谁吗