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 ...
随机推荐
- 史上最详细的CocoaPods安装教程
虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正 ...
- Unity3d NavMesh获得地面高度
UnityPro内置的NavMesh有几个API很有用 NavMesh.SamplePosition 根据给的点进行采样,可传入最大距离,返回true说明采样到了点,否则采样失败(可以用来获得地形高度 ...
- Unity全屏模糊
先上效果,左边模糊 其实用的是Unity Stard Effect里的资源,一个脚本一个shader //脚本代码 using UnityEngine; using System.Collection ...
- 在wpf中使用winrt的Toast弹框效果
源码地址:https://code.msdn.microsoft.com/windowsdesktop/Sending-toast-notifications-71e230a2/sourcecode? ...
- HDU 5995 Kblack loves flag ---BestCoder Round #90
题目链接 用两个布尔数组分别维护每个行/列是否被插过旗帜,最后枚举每一行.列统计答案即可.空间复杂度O(n+m),时间复杂度O(n+m+k). #include <cstdio> #inc ...
- python数据库(mysql)操作
http://fantefei.blog.51cto.com/2229719/1282443
- sql的优化相关问题
这篇文章写的真心不错,值得仔细拜读,所以将其转载过来了. 一. 分析阶段 一 般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性.可用性.可靠性.安全性需求往往吸引 ...
- 解决eclipse Maven 主项目不能刷新maven
项目->.project -> 增加<?xml version="1.0" encoding="UTF-8"?><projectD ...
- backBarButtonItem 替换
最上级vc里面加 下级设置生效 UIImage* image = [UIImage imageNamed:@"back_button.png"]; [item setBackBut ...
- Jmeter 中使用非GUI启动进行压力测试
使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源.使用命令jmeter -n -t <testplan filename> -l <list ...