[cerc2012][Gym100624A]20181013
A
题意:n(n<=20)个国家,每个国家之间有一些债务关系,总体为负债的国家会破产,破产国家的债务关系全部消除。问哪些国家可能成为最后一个唯一存在的国家。
题解:
对于每一个状态,面对若干个负债国,哪个国家先破产会影响最后的结果。
考虑到n<=20,可以状压。f[s]表示状态为s(0表示未破产,1表示已破产)是否存在。
转移方程:if(!s&(1<<i) && i在s状态下已破产) f[s+(1<<i)] | = f[s];
O(2^n * n^2)//很慢www谁有更好的方法请留言
1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 #include<queue> 6 using namespace std; 7 8 const int N=50; 9 int n,a[N][N],ok[N],f[1100000]; 10 11 int main() 12 { 13 //freopen("a.in","r",stdin); 14 int T; 15 scanf("%d",&T); 16 while(T--) 17 { 18 scanf("%d",&n); 19 for(int i=0;i<n;i++) 20 for(int j=0;j<n;j++) 21 scanf("%d",&a[i][j]); 22 23 memset(f,0,sizeof(f)); 24 f[0]=1; 25 for(int s=0;s<(1<<n);s++) 26 { 27 if(!f[s]) continue; 28 for(int i=0;i<n;i++) 29 { 30 if(!(s&(1<<i))) 31 { 32 int sum=0; 33 for(int j=0;j<n;j++) 34 if(!(s&(1<<j))) sum-=a[i][j]; 35 if(sum<0) f[s|(1<<i)]=1; 36 } 37 } 38 } 39 memset(ok,0,sizeof(ok)); 40 int bk=0,now=0; 41 for(int i=0;i<n;i++) 42 if(f[((1<<n)-1)-(1<<i)]) ok[i]=1,bk++; 43 for(int i=0;i<n;i++) 44 if(ok[i]) 45 { 46 now++; 47 if(now<bk) printf("%d ",i+1); 48 else printf("%d\n",i+1); 49 } 50 if(!bk) printf("0\n"); 51 } 52 return 0; 53 }
转载于:https://www.cnblogs.com/KonjakJuruo/p/9809493.html
[cerc2012][Gym100624A]20181013相关推荐
- [cerc2012][Gym100624B]20181013
转载于:https://www.cnblogs.com/KonjakJuruo/p/9809637.html
- [cerc2012][Gym100624C]20181013
题意:用元素符号表示字符串 题解:签到题 简单dp 难点在于把元素符号都改成小写qaq 1 #include<cstdio> 2 #include<cstdlib> 3 #in ...
- BZOJ 4059: [Cerc2012]Non-boring sequences ( )
要快速在一段子序列中判断一个元素是否只出现一次 , 我们可以预处理出每个元素左边和右边最近的相同元素的位置 , 这样就可以 O( 1 ) 判断. 考虑一段序列 [ l , r ] , 假如我们找到了序 ...
- 论文阅读2018-10-13
论文阅读2018-10-13 Addressing the minimum fleet problem in on-demand urban mobility 原文及翻译 METHODS Addres ...
- BZOJ4061/Gym100624F CERC2012 Farm and Factory 最短路、切比雪夫距离
传送门--BZOJCH 传送门--Vjudge 设\(f_i\)表示\(i\)到\(1\)号点的最短距离,\(g_i\)表示\(i\)到\(2\)号点的最短距离,\(s_i\)表示\(n+1\)号点到 ...
- datagrid显示mysql_WPF DataGrid显示MySQL查询信息,且可删除、修改、插入 (原发布 csdn 2018-10-13 20:07:28)...
1.入行好几年了,工作中使用数据库几率很小(传统行业).借着十一假期回家机会,学习下数据库. 2.初次了解数据库相关知识,如果本文有误,还望告知. 3.本文主要目的,记录下wpf界面显示数据库信息,且 ...
- 20181013优秀的软件推荐专栏(每日一次)
小马win7旗舰版64位激活工具 v10.1031 官方版是一款快速激活win7系统的工具软件,小马win7旗舰版激活工具工具采用一键式的激活方式,简单方便,内置5种品牌机oem进行选择激活,真正做到 ...
- 【跃迁之路】【725天】程序员高效学习方法论探索系列(实验阶段482-2019.2.15)...
实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) 我将以自己为实验对象. 我将开源我的学习方 ...
- 【跃迁之路】【724天】程序员高效学习方法论探索系列(实验阶段481-2019.2.14)...
实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) 我将以自己为实验对象. 我将开源我的学习方 ...
最新文章
- python 加注拼音-又一个奇葩要求,Python是如何将“中文”转“拼音”的?
- 使用frameset时的target属性
- 【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 第三次迭代 | 中心元变换 | 检验数计算 | 最优解判定 )
- 学生信息管理系统小结
- 四部门发文!坚决避免数据中心盲目无序发展
- iis php mysql 一键安装_LNMP(Nginx服务,MySQL 服务,安装PHP服务 手动安装技术文档)
- NgRx使用CreateSelector组装复合Selector
- Java元数据总结:Java注释的使用和定义
- Maven工作笔记-jar包打入本地仓库并打包
- 新云网站管理系统最新版注入漏洞
- Mac OS下使用VS Code对C++程序进行debug的配置
- icmp基于tcp还是udp_imi -- 基于PHP协程应用开发框架,支持WebSocket,TCP,UDP应用开发...
- 前端VUE学习总结(一)
- MongoDB windows 局域网连接
- icinga ido2db
- QT编译程序出现[ui_Widget.h] Error 1
- 怎么提取pdf中的表格数据_如何从pdf第1部分中提取表格数据
- 计算机无法屏保,电脑屏幕保护程序为什么不能修改 原因及解决方法【详细介绍】...
- termux无法安装引导程序包_分享一个小玩意儿Termux
- Redis设置密码,查看密码,修改密码,忘记密码。