Link:

BZOJ 4057 传送门

Solution:

一道比较基础的状压DP

看到$n<=20$,状态转移与顺序相关,就可以开心地状压了

1表示破产,0表示未破产,不断扩展破产的集合即可

Code:

#include <bits/stdc++.h>

using namespace std;

const int MAXN=;
int a[MAXN][MAXN],dp[*],T,n; int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=;i<(<<n);i++) dp[i]=;
for(int i=;i<n;i++)
for(int j=;j<n;j++)
scanf("%d",&a[i][j]); dp[]=;bool f=false;
for(int i=;i<(<<n);i++)
if(dp[i])
for(int j=;j<n;j++)
if(!(i&(<<j)) && !dp[i|(<<j)])
{
int tmp=;
for(int k=;k<n;k++)
if(!(i&(<<k))) tmp+=a[j][k];
if(tmp>) dp[i|(<<j)]=;
}
for(int i=;i<n;i++)
if(dp[((<<n)-)^(<<i)]) f=true,printf("%d ",i+);
if(!f) putchar('');
puts("");
}
return ;
}

[BZOJ 4057] Kingdoms的更多相关文章

  1. 【BZOJ 4057 Kingdoms】

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 450  Solved: 187[Submit][Status][Discuss] Descriptio ...

  2. BZOJ 4057: [Cerc2012]Kingdoms( 状压dp )

    状压dp.... 我已开始用递归结果就 TLE 了... 不科学啊...我dp基本上都是用递归的..我只好改成递推 , 刷表法 将全部公司用二进制表示 , 压成一个数 . 0 表示破产 , 1 表示没 ...

  3. BZOJ 4057: [Cerc2012]Kingdoms

    状压DP #include<cstdio> #include<cstring> using namespace std; int F[1200005],A[25][25],st ...

  4. BZOJ 4057 状压DP

    思路: 状压一下 就完了... f[i]表示选了的集合为i 转移的时候判一判就好了.. //By SiriusRen #include <cstdio> #include <cstr ...

  5. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  6. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

  7. BZOJ 3275: Number

    3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 874  Solved: 371[Submit][Status][Discus ...

  8. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

  9. bzoj 4610 Ceiling Functi

    bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...

随机推荐

  1. BZOJ2097: [Usaco2010 Dec]Exercise 奶牛健美操 贪心+伪树dp+二分

    //论全局变量的杀伤力....QAQ#include<cstdio> #include<iostream> #include<cstdlib> #include&l ...

  2. git使用笔记(三)文件忽略

    By francis_hao    Nov 19,2016 注:此条所有内容均来自$ git help gitignore,细节请参考之   有时候在仓库里有一些文件我们并不想提交,git提供了指定屏 ...

  3. Codeforces Round #350 (Div. 2) B

    B. Game of Robots time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  4. Exponial~(欧拉函数)~(发呆题)

    Description Everybody loves big numbers (if you do not, you might want to stop reading at this point ...

  5. bzoj 5092 [Lydsy1711月赛]分割序列 贪心高维前缀和

    [Lydsy1711月赛]分割序列 Time Limit: 5 Sec  Memory Limit: 256 MBSubmit: 213  Solved: 97[Submit][Status][Dis ...

  6. js 内置对象属性及方法

    1.Date 属性(1): constructor      所建立对象的函数参考 prototype       能够为对象加入的属性和方法 方法(43): getDay()        返回一周 ...

  7. struts2和jstl有关循环的写法

    一:前言 其实觉得自己现在就是个码农啊,对于struts2的标签和jstl的标签我一直都是只会用,但是觉得自己老是会混淆这种概念性的问题.所以我自己在代码里面就试着用了几种方式,实现同一种效果,下面就 ...

  8. 2017南宁现场赛E The Champion

    Bob is attending a chess competition. Now the competition is in the knockout phase. There are 2^r2r  ...

  9. 51nod 1254 最大子段和 V2 ——单调栈

    N个整数组成的序列a[1],a[2],a[3],…,a[n],你可以对数组中的一对元素进行交换,并且交换后求a[1]至a[n]的最大子段和,所能得到的结果是所有交换中最大的.当所给的整数均为负数时和为 ...

  10. Android 性能优化 - 详解内存优化的来龙去脉

    前言 APP内存的使用,是评价一款应用性能高低的一个重要指标.虽然现在智能手机的内存越来越大,但是一个好的应用应该将效率发挥到极致,精益求精. 这一篇中我们将着重介绍Android的内存优化.本文的篇 ...