codevs 1155 김 명의 예산 안 - 심야 의 좌절 -
3823 단어 알고리즘
#include
#include
using namespace std;
int f[40000],w[40000],v[40000],p[40000],s[40000][3];
int main()
{
int n,m,k=0;
scanf("%d%d",&m,&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&w[i],&v[i],&p[i]);
v[i]=v[i]*w[i];// *
if(p[i]!=0) s[p[i]][++s[p[i]][0]]=i;// ,
}
for(int i=1;i<=n;i++)
if(p[i]==0)//
for(int j=m;j>=0;j--)
{
if(j-w[i]>=0)
f[j]=max(f[j],f[j-w[i]]+v[i]);
if(j-w[i]-w[s[i][1]]>=0&&s[i][1]!=0)
f[j]=max(f[j],f[j-w[i]-w[s[i][1]]]+v[i]+v[s[i][1]]);
if(j-w[i]-w[s[i][2]]>=0&&s[i][2]!=0)
f[j]=max(f[j],f[j-w[i]-w[s[i][2]]]+v[i]+v[s[i][2]]);
if((j-w[i]-w[s[i][1]]-w[s[i][2]])>=0)
f[j]=max(f[j],f[j-w[i]-w[s[i][1]]-w[s[i][2]]]+v[i]+v[s[i][1]]+v[s[i][2]]);// 4
}
printf("%d",f[m]);
return 0;
}
oh~ 이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.