hdu 4049 2011北京赛区网络赛J 状压dp ***
cl少用在for循环里
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
using namespace std;
#define MOD 1000000007
const int INF=0x3f3f3f3f;
const double eps=1e-;
typedef long long ll;
#define cl(a) memset(a,0,sizeof(a))
#define ts printf("*****\n");
const int MAXN=;
int n,m,tt;
int dp[][<<],cost[MAXN],in[MAXN][MAXN],a[MAXN][MAXN],st[MAXN];
int main()
{
int i,j,k,ca=;
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
#endif
while(scanf("%d%d",&n,&m)!=EOF&&n&&m)
{
for(i=;i<=m;i++)scanf("%d",cost+i);
for(i=;i<=n;i++)
for(j=;j<=m;j++) scanf("%d",&in[i][j]);
for(i=;i<=n;i++) //陪同
{
for(j=;j<=n;j++) scanf("%d",&a[i][j]);
}
//dp初始化
for(i=;i<=m;i++)
{
for(j=;j<=(<<n)-;j++) dp[i][j]=-;
}
for(i=;i<=(<<n)-;i++) dp[][i]=;
for(i=;i<=m;i++)
for(j=;j<=(<<n)-;j++)
{
int tot=;
//当前状态取得的值
int temp=j;
for(k=;k<=n;k++)
{
st[k]=temp%;
if(st[k]) tot+=(in[k][i]-cost[i]);
temp/=;
}
//printf("%d\n",tot);
//陪伴加成
for(k=;k<=n;k++)
{
for(int kk=k+;kk<=n;kk++)
{
if(st[k]&&st[kk])
{
tot+=a[k][kk];
}
}
}
//之前的转态
int ans=; //状态总和
int pre[<<];
pre[]=j;
for(k=;k<=n;k++)
{
if(!st[k]) //该人当前未出现,则之前可能是出现也可能是没出现
{
int sum=ans;
for(int kk=;kk<ans;kk++)
{
int nst=pre[kk]^(<<(k-));
pre[sum++]=nst;
}
ans=sum;
}
}
//加上之前的转态
int Max=-;
for(k=;k<ans;k++)
{
if(Max<dp[i-][pre[k]])
{
Max=dp[i-][pre[k]];
}
}
dp[i][j]=Max+tot;
}
int Max=-;
for(i=;i<=m;i++)
{
for(j=;j<=(<<n)-;j++)
{
if(Max<dp[i][j]) Max=dp[i][j];
}
}
if(Max<=) printf("STAY HOME\n");
else printf("%d\n",Max);
}
}
hdu 4049 2011北京赛区网络赛J 状压dp ***的更多相关文章
- hdu 4044 2011北京赛区网络赛E 树形dp ****
专题训练 #include<stdio.h> #include<iostream> #include<string.h> #include<algorithm ...
- hdu 4050 2011北京赛区网络赛K 概率dp ***
题目:给出1-n连续的方格,从0开始,每一个格子有4个状态,左右脚交替,向右跳,而且每一步的步长必须在给定的区间之内.当跳出n个格子或者没有格子可以跳的时候就结束了,求出游戏的期望步数 0:表示不能到 ...
- hdu 4045 2011北京赛区网络赛F 组合数+斯特林数 ***
插板法基础知识 斯特林数见百科 #include<iostream> #include<cmath> #include<cstdio> #include<cs ...
- hdu 4041 2011北京赛区网络赛B 搜索 ***
直接在字符串上搜索,注意逗号的处理 #include<cstdio> #include<iostream> #include<algorithm> #include ...
- hdu 4046 2011北京赛区网络赛G 线段树 ***
还带这么做的,卧槽,15分钟就被A了的题,居然没搞出来 若某位是1,则前两个为wb,这位就是w #include<cstdio> #include<cstring> #defi ...
- hdu 4043 2011北京赛区网络赛D 概率+大数 **
推出公式为:P = A(2n,n)/(2^(2n)*n!) 但是不会大数,学完java再补
- HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛)
HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛) Panda Time Limit: 10000/4000 MS (Java/Others) Memory Limit: ...
- hdu 4035 2011成都赛区网络赛E 概率dp ****
太吊了,反正我不会 /* HDU 4035 dp求期望的题. 题意: 有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 从结点1出发,开始走,在每个结点i都有3种可能: 1.被杀死,回到结点 ...
- hdu 4031 2011成都赛区网络赛A题 线段树 ***
就是不知道时间该怎么处理,想了好久,看了别人的题解发现原来是暴力,暴力也很巧妙啊,想不出来的那种 -_-! #include<cstdio> #include<iostream&g ...
随机推荐
- Bootstrap 3学习笔记 -栅格
这是Bootstrap中非常基础一张表,但其实有这么容易掌握和理解吗? (1).对于col-md的div, 默认是垂直排列, 当视口(屏幕或浏览器的宽度)>992px,col-md-1的div块 ...
- Git引用
原文: http://gitbook.liuhui998.com/7_3.html git中,分支(branch), 远程跟踪分支(remote-tracking branch)以及标签(tag)都是 ...
- 开始学习C++
这里突然想起来当初学习java和C# 总是会有个demo : hello world. 这里我记得我曾经看过一个笑话.说有个程序员,想学习书法,买了笔墨,都准备好了,但是不知道写什么好.最后,他大 ...
- 76 binary_search 查找重复元素
[本文链接] http://www.cnblogs.com/hellogiser/p/binary-search-for-repeated-element.html [题目] 给定一个升序排列的自然数 ...
- Unity3d《Shader篇》漫反射
Unity3d<Shader篇>漫反射 Shader "Custom/Ambient" { Properties { _MainTex ("Base (RGB ...
- Zlib 在windows上的编译
1.下载http://www.zlib.net 下载,最新版本1.2.8 2.解压后,实际已提供了在vc下编译的工程,目录为:zlib-1.2.8\contrib\vstudio. 其中的zlibst ...
- Mac shell 添加VPN 路由
苦于每次使用内网VPN,都需要手动添加route来设置网络的映射,才可以正常使用VPN. 每次都需要自动添加,当然就是觉得很烦,想到Mac的shell.反正每次添加的时候都是在终端执行添加路由.为了方 ...
- asp.net 图片下载
string fileName = "123.jpg";//图片名字 string filePath = Server.MapPath(&qu ...
- ios wax热更新之安装wax(xcode7.3.1)
通过Finder浏览到你保存该项目的文件夹.创建三个新的文件夹:wax.scripts和Classes. 第一:首先,下载源代码的压缩包.Wax放在GitHub上(https://github.com ...
- 决绝Capturing 'demo' strongly in this block is likely to lead to a retain cycle
- (IBAction)onTest:(id)sender { BlockDemo *demo = [[BlockDemo alloc]init]; __weak typeof(BlockDemo) ...