再就业
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 50(24 users) Total Accepted: 27(21 users) Rating:  Special Judge: No
Description

修水管没修好,小胖子又失业了,于是又找了一份在婚姻介绍所的工作,现在老板又给小胖子出难题了,如果小胖子能解决,就可以重新再就业了。

这里有n对男女士,任意一个男生对一个女生都有一个好感值,任意一个女生也对一个男生有好感值,给出一个好感值表,为了方便,用n*n的矩阵表示,(i,j)表示第i行表示男士(或女士)对第j列的女士(或男士)的好感度,问怎么安排n对相亲才能使成功率最大,并且不存在搞基等事件发生。

小胖子感慨,没文化真可怕,工作都没了。

Input

第一行输入一个整数t,代表测试次数,t不超过100。

对于每组数据的第一行输入一个整数n,代表有多少对男女生,n大于0不超过16。

接下来是一个n*n的矩阵,每个数字分别表示i和j之间的好感度,好感度不超过10000。

Output
输出最大相亲的好感和。
Sample Input

2

2

1 5

2 1

3

1 2 3

6 5 4

8 1 2

Sample Output


16

Author
sunshine@hrbust

状压dp都是300+ms过的,看到几位大神在理工oj上边用KM算法秒到2ms,简直不是人......................图论渣表示还是去老老实实的用状压dp来搞定这个问题。

思路:
我们设dp【i】【j】表示第i行j状态的最大好感值的和。

对于状态j。假设j的值为5:,对应二进制的值为101,表示选取了第0行和第2行上边的女孩。

辣么不难推出:

dp【i+1】【q((1<<k)+j)】=max(dp【i+1】【q((1<<k)+j)】,dp【i】【j】+a【i+1】【k】);

我们初始化dp矩阵为-1,然后初始化第0行dp【0】【1<<j】=a【0】【j】,然后向下一行开始dp,枚举第0行的j状态,如果当前这种状态有值(不为-1)的话,我们再枚举一下k,如果(j&(1<<k)!=0)【与运算同1为1,其他为0,可以方便用来判断当前状态里边是否已经选取了第k列的女孩】辣么说明j状态里边没有选取第k列的女孩。辣么就能符合状态转移方程。

AC代码:

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int a[17][17];
int dp[17][1<<17];
int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);for(int i=0;i<n;i++){for(int j=0;j<n;j++){scanf("%d",&a[i][j]);}}//printf("yes\n");int end=1<<n;memset(dp,-1,sizeof(dp));for(int j=0;j<n;j++){dp[0][1<<j]=a[0][j];}for(int i=0;i<n-1;i++){for(int j=0;j<end;j++){if(dp[i][j]==-1)continue;else{for(int k=0;k<n;k++){int tmp=1<<k;if(j&tmp)continue;dp[i+1][j+tmp]=max(dp[i+1][j+tmp],dp[i][j]+a[i+1][k]);}}}}int output=0;for(int i=0;i<end;i++){if(dp[n-1][i]>output)output=dp[n-1][i];}printf("%d\n",output);}
}

hrbust/哈理工oj 1809 再就业【状压dp】相关推荐

  1. POJ 1038 Bugs Integrated Inc (复杂的状压DP)

    \(POJ~1038~~*Bugs~Integrated~Inc:\) (复杂的状压DP) \(solution:\) 很纠结的一道题目,写了大半天,就想练练手,结果这手生的.其实根据之前那道炮兵阵地 ...

  2. UVA10296 Jogging Trails(中国邮递员问题)(欧拉回路、一般图最大权匹配 / 状压DP)

    整理的算法模板合集: ACM模板 目录 思路 UVA10296 Jogging Trails 题目翻译: 给你n个点,m条无向边,每条边有一定的距离数值,构造成一个连通图.问从任意一点出发,遍历所有的 ...

  3. 【每日DP】day2、P1879 [USACO06NOV]Corn Fields G玉米地(状压DP模板题)难度⭐⭐⭐★

    昨天的每日DP我还在写01背包,今天就到状压DP了,真刺激. P1879 [USACO06NOV]Corn Fields G 题目链接 输入 2 3 1 1 1 0 1 0 输出 9 一道简单的状压D ...

  4. hdu 4778 Gems Fight! 状压dp

    转自wdd :http://blog.csdn.net/u010535824/article/details/38540835 题目链接:hdu 4778 状压DP 用DP[i]表示从i状态选到结束得 ...

  5. 【洛谷 P1896】[SCOI2005]互不侵犯(状压dp)

    题目链接 题意:在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. 这是道状压\(DP\)好题啊.. ...

  6. P2340 奶牛会展(状压dp)

    P2340 奶牛会展 题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由 ...

  7. bzoj1402 Ticket to Ride 斯坦纳树 + 状压dp

    给定\(n\)个点,\(m\)条边的带权无向图 选出一些边,使得\(4\)对点之间可达,询问权值最小为多少 \(n \leqslant 30, m \leqslant 1000\) 首先看数据范围,\ ...

  8. Codeforces Gym 100676G Training Camp 状压dp

    http://codeforces.com/gym/100676 题目大意是告诉你要修n门课,每门课有一个权值w[i], 在第k天修该课程讲获得k*w[i]的学习点数,给出了课程与先修课程的关系,要修 ...

  9. 【思维题 状压dp】APC001F - XOR Tree

    可能算是道中规中矩的套路题吧-- Time limit : 2sec / Memory limit : 256MB Problem Statement You are given a tree wit ...

  10. 最短Hamilton路径(状压dp)

    链接:https://ac.nowcoder.com/acm/problem/50909 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

最新文章

  1. Java NIO编程的技巧和陷阱
  2. 21天舞动西浦报名失败的教训:先下手为强
  3. linux下静态库和动态库的制作与使用
  4. .net的轻量级ORM -- PetaPoco/NPOCO框架使用说明
  5. axure 链接html文件,通过WuliHub免费托管原型Axure HTML文件
  6. Linux|麒麟操作系统实现多路RTMP|RTSP播放
  7. Lucas(卢卡斯)定理
  8. java 终止方法_Java中终止线程的三种方法
  9. day2_windows下zip安装wamp环境
  10. 前台页面操作文件属性。
  11. mysql var目录很快_mysql数据库实现亿级数据快速清理的方法
  12. 局域网IP搜索小工具
  13. 魔方矩阵c语言,C语言检验并打印魔方矩阵,检验并打印魔方矩阵,用C语言,求大神尽快解决...
  14. 电脑截图怎么转换成文字?学会这个方法,轻松实现
  15. Java代理和动态代理机制分析和应用
  16. AutoCAD打印样式中缺少.ctb只有.stb怎么办?
  17. vim 配置(ma6174 + YCM)
  18. P2882 [USACO07MAR]Face The Right Way G 【贪心 + 差分】
  19. 【大数据----Spark】Spark入门教程[3]
  20. MySQL Workbench建表时的PK,NN,UQ,B,UN,ZF,AI,G

热门文章

  1. RS485通信原理图及程序实例详解
  2. html+css入门(参考b站黑马
  3. PMP第六版 十五至尊图
  4. h5 打包后效果失效
  5. nodejs+redis使用例子
  6. 爬取淘宝评论以及词云图
  7. 基2FFT算法matlab程序编写,基2时抽8点FFT的matlab实现流程及FFT的内部机理
  8. 静态GPS控制测量使用技术方法
  9. 第四章需求分析与设计工具
  10. 计算机窗体视频教程,计算机二级Access2010视频教程