怎么才能吸引人进来调题?

P1064 [NOIP2006 提高组] 金明的预算方案

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

include<bits/stdc++.h>

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

背包,5种选择。1.不选。 2.只选主件。 3.选主件+附件1。 4.选主件+附件2。 5.选主件+附件1+附件2。


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。


|