博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj2531-dfs
阅读量:6680 次
发布时间:2019-06-25

本文共 2273 字,大约阅读时间需要 7 分钟。

Run time error了

不知道哪里做错

知道后立即修改博客

先交解题报告打卡

#include 
using namespace std;class Node{public: int* messageNode; bool visited; int group; Node(int nodeSum=0){ visited = false; group = 0; if(nodeSum != 0) messageNode = new int[nodeSum]; }};int nSum = 0;Node **nodeQueue;int amount = 0;int countNode = 0;bool nodeGroup = false;int *divideGroup;void dfs(int x){ countNode++; if(countNode <= nSum){ nodeQueue[x]->visited = true; if(!nodeGroup){ divideGroup[x] = 0; nodeGroup = true; } else{ divideGroup[x] = 1; nodeGroup = false; } int largest = -1; int temp = 0; for(int i=0;i < nSum;i++){ if(!nodeQueue[i]->visited && nodeQueue[x]->messageNode[i] > temp){ largest = i; temp = nodeQueue[x]->messageNode[i]; } } dfs(largest); }}void calculateAll(){ for(int i=0;i
messageNode[j]; } } } cout << amount << endl;}int main() { cin >> nSum; if(nSum >0){ nodeQueue = new Node*[nSum]; divideGroup = new int[nSum]; for(int i=0;i
> nodeQueue[i]->messageNode[j]; } } dfs(0); calculateAll(); } return 0;}

 其他的正解

 

//

 

//  main.cpp

 

//  poj2531Cpp_others

 

//

 

//  Created by 韩雪滢 on 12/1/16.

 

//  Copyright © 2016 韩雪滢. All rights reserved.

 

//

 

 

 

#include <iostream>

 

using namespace std;

 

 

 

const int MAX_N = 20;

 

int n;

 

int map[MAX_N + 1][MAX_N + 1];

 

bool in_group[MAX_N + 1];

 

int ans;

 

 

 

void dfs(int id, int cur_sum)

 

{

 

    in_group[id] = true;

 

    int tmp_sum = cur_sum;

 

    for (int i = 1; i <= n; i++){

 

        if (in_group[i]){

 

            tmp_sum -= map[id][i];

 

        }

 

        else{

 

            tmp_sum += map[id][i];

 

        }

 

    }

 

    if (tmp_sum > ans){

 

        ans = tmp_sum;

 

    }

 

    

 

    //剪枝:当前的sum大时

 

    if (tmp_sum > cur_sum){

 

        //id之前的会重复,舍掉

 

        for (int i = id + 1; i <= n; i++){

 

            dfs(i, tmp_sum);

 

        }

 

    }

 

    in_group[id] = false;

 

}

 

 

 

 

 

int main()

 

{

 

    cin >> n;

 

    memset(in_group, 0, sizeof(in_group));

 

    ans = 0;

 

    for (int i = 1; i <= n; i++){

 

        for (int j = 1; j <= n; j++){

 

            cin >> map[i][j];

 

        }

 

    }

 

    dfs(1, 0);

 

    cout << ans << endl;

 

    return 0;

 

}

 

转载于:https://www.cnblogs.com/HackHer/p/6122881.html

你可能感兴趣的文章
系统SDK介绍-01
查看>>
copy strong weak assign的区别
查看>>
SpringMVC运行原理
查看>>
Eureka简介以及工作原来
查看>>
iOS 后台语音播报功能开发过程中的那些坑
查看>>
Uniqlo与Fast Retailing发出警告 46万消费者账号遭入侵
查看>>
拯救不会函数的我!!
查看>>
js预解析+作用域+this指向
查看>>
iOS KVO监听readonly属性
查看>>
线性判别分析随记
查看>>
十一课堂|通过小游戏学习Ethereum DApps编程(2)
查看>>
当iPhone不再流行 Android它将如何面对未来?
查看>>
web前端浅谈,htmlcss脱离标准文档流相关
查看>>
Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis
查看>>
免费的容器架构可视化工具 | 阿里云应用高可用服务 AHAS 发布重大新特性
查看>>
spring cloud微服务分布式云架构-整合企业架构的技术点
查看>>
随着加密货币市场稳定 比特币价格不可避免的会下降
查看>>
跟我学习dubbo-Dubbo管理控制台的安装(3)
查看>>
构建微服务:Spring boot
查看>>
物联网落地三大困境破解
查看>>