文章

1

粉丝

250

获赞

0

访问

7.7k

头像
图-深度优先遍历
P1849 清华大学2020年机试题
发布于2021年3月9日 15:09
阅读数 7.7k

思路都写在注释里了,可以先看注释,再看代码

#include <bits/stdc++.h>
#define maxn 2005

int v[maxn];
int mp[maxn][maxn];
int result;

int n,m,q;
int u,limit;

void dfs(int beg,int limit,int value){
    if(value>result)
        //这个result是个全局变量,每一条路径进来的时候,都会进行一次比较
        //如果某条路径上的value更大,就用这条路径上的value
        result=value;
    for(int i=1;i<=n;i++){
        if(mp[beg][i]<=limit)
            //对于每一条路径,都试着进去跑一遍,经过limit-mp[beg][i]后,
            //每一条路径的初始上限就各不相同了
            dfs(i,limit-mp[beg][i],value+v[i]);
    }
}

int x,y,z;
int main(){
    scanf("%d%d%d",&n,&m,&q);
    for(int i=1;i<=n;i++){
        scanf("%d",&v[i]);
    }

    memset(mp...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发