Aiiage Camp Day5 A Rikka with Linker
题意
n个点,m个关系。a依赖b则a需要出现在b前。
求满足所有关系的最短序列长度。
n<18, m<n(n-1)
题解
问题事实上等价于有向有环图的拓扑排序。
所以用拓扑排序结合搜索有个显然的2^n*n^2的做法。
赛场上写的有点丑T了。
标算是DP。F[S]表示添加了集合S的最短长度。对于每个S,枚举添加点x:若x被依赖的所有点都出现过,则只需要在当前序列最后添加x;否则,需要在最后再添加一个x使尚未添加的点满足条件。
复杂度O(2^n*n)。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int h[30], f[300000]; 5 6 int main() 7 { 8 int T; 9 for (scanf("%d", &T); T; T--) 10 { 11 memset(h, 0, sizeof(h)); 12 int n, m; 13 scanf("%d%d", &n, &m); 14 for (int i = 0; i < m; ++i) 15 { 16 int u, v; 17 scanf("%d%d", &u, &v); 18 h[v] ^= 1 << (u - 1); 19 } 20 int maxx(pow(2, n)); 21 for (int i = 0; i < maxx; ++i) 22 f[i] = 2 * n; 23 f[0] = 0; 24 for (int i = 0; i < maxx; ++i) 25 for (int j = 1; j <= n; ++j) 26 if (!(i & (1 << (j - 1)))) 27 if ((h[j] ^ i) & h[j]) 28 f[i ^ (1 << (j - 1))] = min(f[i ^ (1 << (j - 1))], f[i] + 2); 29 else 30 f[i ^ (1 << (j - 1))] = min(f[i ^ (1 << (j - 1))], f[i] + 1); 31 printf("%d\n", f[maxx - 1]); 32 } 33 34 return 0; 35 }
转载于:https://www.cnblogs.com/aseer/p/8479842.html
Aiiage Camp Day5 A Rikka with Linker相关推荐
- Aiiage Camp Day4 A Board game
题意 N个D维空间点,每次可将一个点移动至字典序小于它且大于0的坐标处.Alice和Bob轮流移动,最先无法移动者输. 1<=n,d<=100 题解 每个维度相互独立.所以问题等价于D个尼 ...
- 2019年 CCPC-Wannafly Winter Camp 总结及感悟
比赛网站:传送门 一.得到的知识训练 1. dp ①直接dp 数据范围很小(n<=100) 且符合动态规划的题目特征可直接暴力dp,直接用多维(一般三维以上)状态.多重(一般三重以上)for循环 ...
- Tree-AC训练实录
Tree-AC比赛记录 2018 ICPC nanjing Bronze 120/310 ICPC qingdao Bronze 153/360 2019 ZJPSC ...
- 【长更】一句话题解(各大oj)
太简单的题,但是又要记录下来做过哪些东西,就写在这里啦~ 早搞不搞,等到快退役了才来搞 标 * 的为有价值的题,标 ^ 的为欺诈题,标 - 的为知识点待填坑,标 ? 的表示看别人是这样做的 ...
- 2019 wannafly winter camp day5-8代码库
目录 day5 5H div2 Nested Tree (树形dp) 5F div2 Kropki (状压dp) 5J div1 Special Judge (计算几何) 5I div1 Sortin ...
- HDU 6091 - Rikka with Match | 2017 Multi-University Training Contest 5
思路来自 某FXXL 不过复杂度咋算的.. /* HDU 6091 - Rikka with Match [ 树形DP ] | 2017 Multi-University Training Conte ...
- Spark菜鸟学习营Day5 分布式程序开发
Spark菜鸟学习营Day5 分布式程序开发 这一章会和我们前面进行的需求分析进行呼应,完成程序的开发. 开发步骤 分布式系统开发是一个复杂的过程,对于复杂过程,我们需要分解为简单步骤的组合. 针对每 ...
- 《从零开始学Swift》学习笔记(Day5)——我所知道的标识符和关键字
Swift 2.0学习笔记(Day5)--我所知道的标识符和关键字 原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和关键字,一直没有好好的总结,就是这样的用着,现在小 ...
- Python学习day5作业-ATM和购物商城
Python学习day5作业 Python学习day5作业 ATM和购物商城 作业需求 ATM: 指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆, ...
最新文章
- 图像处理——基于深度学习HED实现目标边缘检测
- 极限编程阅读笔记--第二篇
- 【CodeForces - 472A】Design Tutorial: Learn from Math (tricks,思维,数论,打表)
- 多线程和线程池的基本知识总结
- MFCC梅尔频率倒谱系数
- OpenResty安装下载
- 【XSY2731】Div 数论 杜教筛 莫比乌斯反演
- HTML中怎么点击超链接让新页面在另一个窗口打开?
- js打印倒三角形和正三角形
- Ubuntu16.04 GTX1050Ti安装CUDA10.0和cuDNN7.4.2
- 【软件定义汽车】【场景篇】智能座舱
- 计算机网络三大要素是,计算机网络安全的三大要素不包括?
- 秘宝 联想正式进入元宇宙 互联网巨头的数字藏品用的哪种技术?
- 为用户“NT AUTHORITY/NETWORK SERVICE”授予的权限不足,无法执行此操作。 (rsAccessDenied)
- 【电子产品】kindle使用心得.满满干货
- EXCEL如何设置下拉选项打勾 + 不正常选项拉红
- Android中给定一个日期判断是周几.
- 大数运算(4)——大数乘法
- AI-039: Python深度学习3 - 三个Karas实例-1
- 电子学习用品商城小程序开发功能需求分析
热门文章
- 学习CSS 不错网址
- Window 2000 网络操作命令全释
- java创建datetime_Java OffsetDateTime ofInstant()用法及代码示例
- java 克隆对象工具类_关于dorado-core源码包中CloneUtils克隆工具类对对象进行克隆复制操作...
- css网页布局中文字排版的属性和用法
- JavaScript prototype整理(网上的三种理解)
- Spring整合Hibernate图文步骤
- 四种参数传递的形式——URL,超链接,js,form表单
- org.apache.hadoop.io
- 汇编(8086cpu): 地址寄存器