题目链接:http://poj.org/problem?id=2531

题目意思:将 n 个点分成两个部分A和B(也就是两个子集啦), 使得子集和最大(一定很难理解吧,呵呵)。举个例子吧,对于样例,最佳的分法就是把点2分为一个子集,另一个子集理所当然就是1、3了。 2-1 的权值是50,2-3的权值是40,那么最大就是50+40 = 90了。

首先dfs的话,我不太会做啦。看了队长的用了状态压缩来做,一下子觉得好神奇!!!!

可能第一次接触,理解得不是太深刻,先留着吧。就觉得好神奇,好神奇....好神奇... 不过总觉得它情况判断的时候有重复,看一下 第一次 的子集1: 1    子集2: 2、3  和 第六次 的子集1: 2 3  子集2: 1  实质就是一个情况嘛~~~注意:如果一个子集包含n个元素,那意味着另一个子集得0个元素,明显这个是不符合条件的。因为要求得一个子集的所有点对于另一个子集中的所有点(前提是有边相连)的和是最大的!

(不好意思啊,老是逼迫大家看我的恶心涂鸦,不过动手之后真的理解了一些咯,这个是我凭着我的涂鸦来默写滴)

 #include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; const int maxn = + ;
int c[maxn][maxn];
int A[maxn], B[maxn]; // A[]: 用于保存子集1包含的顶点编号;B[]: 用于保存子集2包含的顶点编号
// (注意下标0是表示顶点编号为1的点) int main()
{
int n;
while (scanf("%d", &n) != EOF)
{
for (int i = ; i < n; i++)
{
for (int j = ; j < n; j++)
scanf("%d", &c[i][j]);
}
int cnt1, cnt2;
int ans = -;
for (int i = ; i < (<<n); i++) // 枚举子集数, n个元素有(2^n - 1)个子集(空集除外)
{ // (3个元素有七个子集(001~111)
cnt1 = cnt2 = ;
for (int j = ; j < n; j++)
{
if (i & ( << j)) // 例如用5(2^0 + 2^2)表示第 1 个点(0)和第3个点(2)被选在第一个子集里
A[cnt1++] = j;
else
B[cnt2++] = j;
}
int cursum = ;
for (int k = ; k < cnt1; k++)
{
for (int j = ; j < cnt2; j++)
cursum += c[A[k]][B[j]];
}
ans = max(cursum, ans);
}
printf("%d\n", ans);
}
return ;
}

最新文章

  1. (十四)UDP协议的两个主要方法sendto和recvfrom详解
  2. jquery点击label触发2次的问题
  3. 单图上传预览(uploadpreview )
  4. PHP常用正则表达式汇总
  5. [JS]Javascript的函数总结
  6. Hadoop-安装过程-单虚拟机版(伪分布式)(Ubuntu13.04版本下安装)
  7. ural 1108
  8. Leetcode OJ : Repeated DNA Sequences hash python solution
  9. Android(java)学习笔记231:服务(service)之混合方式开启服务
  10. 高性能web系统的架构和系统优化
  11. Eclipse 整合cvs教程及遇到的问题
  12. ASF(传感器)
  13. java中System类简介(转)
  14. jquery获得select的文本
  15. 自定义IHttpModule
  16. nmon用法
  17. Python =&gt; ValueError: unsupported format character &#39;Y&#39; (0x59)
  18. 实现Java线程安全
  19. GWAS后续分析:多基因风险评分(Polygenic Risk Score)的计算
  20. Cs231n课堂内容记录-Lecture 6 神经网络训练

热门文章

  1. 远程管理 KVM 虚机
  2. Peaks BZOJ 3545 / Peaks加强版 BZOJ 3551
  3. linux 内核源码arch/ 目录的前世今生
  4. Mongodb报错:ERROR: child process failed, exited with error number 1
  5. laravel控制器
  6. Mybatis resultMap空值映射问题
  7. linux top %VSZ含义
  8. Strom运行监控
  9. CMDB资产管理系统的数据表设计
  10. Java中常量定义在interface和class的区别(转)