[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) 我将以自己为实验对象. 我将开源我的学习方 ...
最新文章
- QT学习第8课:QT计算器界面实现
- 3D CNN框架结构各层计算
- 块级元素 Vs 内联元素
- 退役-兵巨臂锻炼计划
- IDEA+Hadoop运行TriangleCount程序
- 深入理解javascript原型和闭包(5)——instanceof
- Linux网络新技术基石 |​eBPF and XDP
- java中setStroke_Java调用setStroke()方法设置笔画属性的语法 原创
- java构造器 权限_一文搞懂Java的 构造方法 和 访问权限
- socket,ioctl获取ip
- FEMTransfer软件实现Patran/Nastran/Abaqus/Ansys/Sesam(Genie)/Workbench/Femap/盈建科/PKPM仿真分析软件的有限元模型相互转换导入
- Eclipse 英文翻译一点点
- blastn 输出结果每列啥意思_本地blast的详细用法
- 微信小程序识别字符串中的手机号,手机号高亮显示,并且可以点击这个手机号,拨打电话?
- PostgreSQL on duplicate update
- mcgscom口针脚定义_标准9针串口引脚定义
- 【GPT4】微软 GPT-4 测试报告(6)与人类的交互能力
- Git Github
- 这笔投资你算过吗?―写给二本院校的苦逼青年
- Ubuntu完全使用文档
热门文章
- php连接mysql原生_php链接mysql原生写法
- SQLAlchemy create_engine
- C++ newdelete
- date_range
- python特征数据类型及常用操作对比_更高效的利用Jupyter+pandas进行数据分析,6种常用数据格式效率对比!...
- 如何上传服务器文件大小,如何上传云服务器文件大小
- 求矩形的最小值c语言,C语言复习---矩形法求定积分函数
- 中小机房UPS电源及环境多方式在线监控和告警方案
- 负载均衡 > 用户指南 > 证书管理 > 证书要求
- Go 语言学习总结(4)—— 为什么说 Golang 是面向未来的语言?