poj
来源:互联网 发布:c语言随机数生成 编辑:程序博客网 时间:2024/06/03 12:40
欢迎视察,觉得不错您顶一个鼓励我一下,有什么意见或建议欢迎留言~~
又套路了一个 dfs + 剪枝
题意 : 给定 n ,按照习惯 我们看做 0 - (n-1),,题目的意思是要把这 n 个数分成 A,B 两组 要干啥呢? :
任意分别从 A B 两组中 找一个数 定为 i,j 关键来了:求和---所有 ma[i][j] 的和 (ma[][] 存给定权值数组 )
额,就这些,dfs 的是 0 - (n-1),用 f[] 这个标志数组 0/1 值 表示是否为初始组
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int maxn = 100 + 10;int n, ans, ma[maxn][maxn], f[maxn];void dfs(int id, int sum) { f[id] = 1; int num = sum; for(int i = 0; i < n; ++i) { if(f[i] == 1) num -= ma[id][i]; else num += ma[id][i]; } ans = max(num, ans); for(int i = id+1; i < n; ++i) { if(num > sum) { dfs(i, num); f[i] = 0; } }}int main() { while(scanf("%d", &n) == 1 && n) { memset(ma, 0, sizeof ma); memset(f, 0, sizeof f); for(int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) scanf("%d", &ma[i][j]); ans = -10; dfs(0, 0); printf("%d\n", ans); } return 0;}
1 0
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- 对JVM的理解
- HDU1257 最少拦截系统 —— LIS
- 延迟初始化,双重检查加锁的陷阱
- 平衡二叉查找树插入节点操作( AVLTree ):旋转、调整平衡
- MySQL
- poj
- 常用的机器学习算法大汇总
- Java I/O
- iOS Cocoapods 第一次使用
- 动态代理解决表单提交的中文乱码问题
- 异常:java.lang.IllegalArgumentException
- 基于Java语言的安卓编程之二十六通信录读取(下)
- 无法安装Matlab
- 在线汇率转换,用json解析数据,支持偏好设置。