【bzoj4057】[Cerc2012]Kingdoms
来源:互联网 发布:扶贫软件 编辑:程序博客网 时间:2024/06/16 23:00
闷声大爆搜就好。
状压判重。
时间
#include <bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=b;i++)#define per(i,a,b) for(int i=a;i>=b;i--)#define shl(x) (1 << (x))inline int rd() { char c = getchar(); while (!isdigit(c) && c != '-') c = getchar(); int x = 0 , f = 1; if (c == '-') f = -1 ; else x = c - '0'; while (isdigit(c = getchar())) x = x * 10 + c - '0'; return x * f;}int n , a[23][23] , c[23] , vis[1 << 21] , ans , all;void input() { n = rd(); rep (i , 1 , n) c[i] = 0; rep (i , 1 , n) rep (j , 1 , n) a[i][j] = rd() , c[i] += a[i][j];}void dfs(int s , int t) { if (vis[s]) return; vis[s] = 1; if (t == 1) { ans |= s ; return ; } rep (i , 1 , n) if ((shl(i - 1) & s) && c[i] > 0) { rep (j , 1 , n) c[j] -= a[j][i]; dfs(s ^ shl(i - 1) , t - 1); rep (j , 1 , n) c[j] += a[j][i]; }}void solve() { ans = 0; all = shl(n) - 1; rep (i , 0 , all) vis[i] = 0; dfs(all , n); bool p = 0; rep (i , 1 , n) if (shl(i - 1) & ans) { if (p) putchar(' '); else p = 1; printf("%d" , i); } if (!p) putchar('0'); //puts("");}int main() { #ifndef ONLINE_JUDGE freopen("data.txt" , "r" , stdin); #endif per (T , rd() , 1) { input(); solve(); puts(""); } return 0;}
0 0
- 【bzoj4057】[Cerc2012]Kingdoms
- 【CERC2012】【BZOJ4057】Kingdoms
- 【BZOJ4057】【Cerc2012】Kingdoms 状压DP
- CERC2012 A - kingdoms 状态压缩dp
- bzoj 4057: [Cerc2012]Kingdoms 状压dp
- Kingdoms
- 【挖坑】CERC2012
- Kingdoms UVA
- 【bzoj4062】[Cerc2012]Jewel heist
- 【CERC2012】【BZOJ4063】Darts
- 【CERC2012】【BZOJ4062】Jewel heist
- 【bzoj3169: [Cerc2012]Conservation】
- hdu 3442 Three Kingdoms
- FZU - 1981 Three kingdoms
- Sicily 1914. Kingdoms
- CSU 1116 Kingdoms
- CSU 1116 Kingdoms
- HDU 3442 Three Kingdoms
- Spark深度解析(2)
- 黑马程序员日记-1
- soj 2511 Moooo 单调栈
- Gson-----9、注册TypeAdapter及处理Enum类型
- HTTP协议是无状态协议
- 【bzoj4057】[Cerc2012]Kingdoms
- 【jQuery】slideUp()和slideDown()函数
- UIAlertController UIAlertAction (UIAlertView, UIActionSheet)(最好)
- mysql的学习总结
- 利用UISlider和 UIImageView实现跑图
- Xcode7\iOS9添加启动页
- 倒计时按钮
- maven学习手记+nexus配置
- 二十一天成神计划之小白第一天