poj2441 Arrange the Bulls
思路:
状态压缩dp。需要一点优化,否则容易超时。
实现:
1 #include <cstdio> 2 #include <vector> 3 #include <cstring> 4 #include <iostream> 5 using namespace std; 6 vector<int> G[21]; 7 int n, m, dp[1 << 21]; 8 int main() 9 { 10 int p, x; 11 scanf("%d%d", &n, &m); 12 for (int i = 1; i <= n; i++) 13 { 14 scanf("%d", &p); 15 for (int j = 0; j < p; j++) 16 { 17 scanf("%d", &x); 18 G[i].push_back(x); 19 } 20 } 21 dp[0] = 1; 22 for (int i = 0; i < n; i++) 23 { 24 for (int j = (1 << m + 1) - 1; j >= 0; j--) 25 { 26 if (__builtin_popcount(j) != i) continue; 27 for (int k = 0; k < G[i + 1].size(); k++) 28 { 29 int tmp = G[i + 1][k]; 30 if (!(j >> tmp & 1)) dp[j | 1 << tmp] += dp[j]; 31 } 32 } 33 } 34 int cnt = 0; 35 for (int j = 0; j < (1 << m + 1) - 1; j++) 36 if (__builtin_popcount(j) == n) cnt += dp[j]; 37 printf("%d\n", cnt); 38 return 0; 39 }
转载于:https://www.cnblogs.com/wangyiming/p/9141724.html
poj2441 Arrange the Bulls相关推荐
- 《挑战程序设计竞赛(第2版)》习题册攻略
本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...
- html5语义化标签 加粗,html5标签 H5标签
html> h5文本元素 1.文本元素 2.加粗文字 b 3.倾斜文字 i 4.删除文字 del 5.加粗文字2 strong 6.安全换行 wbr~~~ 7.强调 倾斜元素 em 8.删除线2 ...
- R语言dplyr处理dataframe:使用mutate函数生成新的列、recode函数进行数据编码、rename函数重命名字段、arrange排序数据列、select筛选数据、filter过滤数据
R语言使用dplyr包处理dataframe数据:使用mutate函数生成新的数据列.recode函数进行数据编码.rename函数重命名字段.arrange函数对数据列内容排序.select筛选数据 ...
- R语言dplyr包使用group_by函数、arrange函数和filter函数获取每个分组的第一个、第N个、最后一个记录实战
R语言dplyr包使用group_by函数.arrange函数和filter函数获取每个分组的第一个.第N个.最后一个记录实战 目录
- R语言可视化包ggplot2包绘制多个图形并将多个图像垂直堆叠c成一个图像实战(grid.arrange)
R语言可视化包ggplot2包绘制多个图形并将多个图像垂直堆叠c成一个图像实战(grid.arrange) 目录
- R语言dplyr包使用arrange函数、group_by函数、mutate函数生成分组数据的排名(rank)实战(Rank Variable by Group):升序排名、降序排名以及相同排名的处理
R语言dplyr包使用arrange函数.group_by函数.mutate函数生成分组数据的排名(rank)实战(Rank Variables by Group):升序排名.降序排名以及相同排名的处 ...
- leetcode算法题--Bulls and Cows
原题链接:https://leetcode.com/problems/bulls-and-cows/ string getHint(string secret, string guess) {int ...
- 299 Bulls and Cows 猜数字游戏
你正在和你的朋友玩猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜.每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为"Bulls", ...
- 299. Bulls and Cows
题目: You are playing the following Bulls and Cows game with your friend: You write down a number and ...
最新文章
- GNU make manual 翻译(二十六)
- C#访问Access和Win7 64位下可能遇到的 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序 问题
- Java并发编程(4):守护线程与线程阻塞的四种情况
- ios8来了,屏幕更大,准备好使用 iOS Auto Layout了吗?
- java并发编程实战源码_java并发编程实战(附源码)
- 如何在手机或平板上编写代码?
- IEEE 802.3标准简介以及各分类标准汇总
- 从Dying gasp功能看Linux的响应速度
- 超级马里奥(待完善)
- 分享 | NB-IoT智能井盖传感器
- java去除多余excel_java使用poi删除excel中的空行
- 微信解绑手机号服务器会保留吗,微信怎么解绑手机号?微信还能解绑手机号吗?...
- 【转载】几封读者来信的回复
- python游戏最简单代码-python基础练习之几个简单的游戏
- IC回收,回收电子,回收IC,电子产品回收公司
- matlab仿真超声波测距,汽车倒车雷达的Simulink仿真测试
- 在安化云台山,遇见最美的风景
- iOS游戏开发中使用自定义字体的方法
- 如何快速找到期刊文献的期卷号
- mysql什么语句触发自动执行_MySQL的( )可在一定条件下被触发、自动执行一些语句序列。_学小易找答案...