Tpp2024 @ 2024-08-04 12:38:52
既然你进来了就别走了,帮我调一下吧qwq,全WA
#include <bits/stdc++.h>
using namespace std;
int v[65];
int w[65];
int p[65];
bool is_buy[65]={0};
int m,n;
int ans;
void dp(int x)
{
if(!p[x]&&!is_buy[p[x]]&&!is_buy[x]) dp(p[x]);
else if(v[x]<=n)
{
ans+=v[x];
n-=v[x];
is_buy[x]=1;
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>v[i]>>w[i]>>p[i];
}
for(int i=1;i<=m;i++)
for(int j=1;j<=m;j++)
if(w[i]<w[j])
{
swap(v[i],v[j]);
swap(w[i],w[j]);
swap(p[i],p[j]);
}
for(int i=1;i<=m;i++)
dp[i];
cout<<ans;
return 0;
}
by Eason_cyx @ 2024-08-04 12:57:21
@Tpp2024 《dp[i]》
by Yangyutang @ 2024-08-04 13:13:17
你信不信我告张老师
by Yangyutang @ 2024-08-04 13:16:31
给你70fen代码```cpp
using namespace std; int m,n,v[62],p[62],q[62],cnt,b[62],sum,tmp; void dfs(int x){ if(x>n){ cnt=max(cnt,sum); return; } dfs(x+1); if(q[x]==0){ if(tmp+v[x]<=m){ tmp+=v[x]; b[x]=1; sum+=v[x]p[x]; dfs(x+1); tmp-=v[x]; sum-=v[x]p[x]; b[x]=0; } } else{ if(b[q[x]]==1){ if(tmp+v[x]<=m){ tmp+=v[x]; sum+=v[x]p[x]; dfs(x+1); tmp-=v[x]; sum-=v[x]p[x]; } } } } int main(){ cin>>m>>n; for(int i=1;i<=n;i++){ cin>>v[i]>>p[i]>>q[i]; } dfs(1); cout<<cnt; return 0; }
by Tpp2024 @ 2024-08-04 14:03:58
@Yangyutang 你千万别qwq
by Tpp2024 @ 2024-08-04 14:06:18
@Yangyutang 谢谢你哦(^▽^)
by Tpp2024 @ 2024-08-04 14:08:57
@Yangyutang 你这个张老师的名字是怎么弄的?
by Daniel_M @ 2024-08-05 16:23:44
背包,
by Ophi @ 2024-08-06 13:55:54
我承认你这个标题党成功了(
by zhaoyingdong @ 2024-08-08 19:20:58
调函数是小括号
by FJ_OIer @ 2024-08-13 10:18:00
@Yangyutang 希望更丰富的展现?使用 Markdown、KaTeX。