思路:

状态压缩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相关推荐

  1. 《挑战程序设计竞赛(第2版)》习题册攻略

    本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...

  2. html5语义化标签 加粗,html5标签 H5标签

    html> h5文本元素 1.文本元素 2.加粗文字 b 3.倾斜文字 i 4.删除文字 del 5.加粗文字2 strong 6.安全换行 wbr~~~ 7.强调 倾斜元素 em 8.删除线2 ...

  3. R语言dplyr处理dataframe:使用mutate函数生成新的列、recode函数进行数据编码、rename函数重命名字段、arrange排序数据列、select筛选数据、filter过滤数据

    R语言使用dplyr包处理dataframe数据:使用mutate函数生成新的数据列.recode函数进行数据编码.rename函数重命名字段.arrange函数对数据列内容排序.select筛选数据 ...

  4. R语言dplyr包使用group_by函数、arrange函数和filter函数获取每个分组的第一个、第N个、最后一个记录实战

    R语言dplyr包使用group_by函数.arrange函数和filter函数获取每个分组的第一个.第N个.最后一个记录实战 目录

  5. R语言可视化包ggplot2包绘制多个图形并将多个图像垂直堆叠c成一个图像实战(grid.arrange)

    R语言可视化包ggplot2包绘制多个图形并将多个图像垂直堆叠c成一个图像实战(grid.arrange) 目录

  6. R语言dplyr包使用arrange函数、group_by函数、mutate函数生成分组数据的排名(rank)实战(Rank Variable by Group):升序排名、降序排名以及相同排名的处理

    R语言dplyr包使用arrange函数.group_by函数.mutate函数生成分组数据的排名(rank)实战(Rank Variables by Group):升序排名.降序排名以及相同排名的处 ...

  7. leetcode算法题--Bulls and Cows

    原题链接:https://leetcode.com/problems/bulls-and-cows/ string getHint(string secret, string guess) {int ...

  8. 299 Bulls and Cows 猜数字游戏

    你正在和你的朋友玩猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜.每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为"Bulls", ...

  9. 299. Bulls and Cows

    题目: You are playing the following Bulls and Cows game with your friend: You write down a number and ...

最新文章

  1. GNU make manual 翻译(二十六)
  2. C#访问Access和Win7 64位下可能遇到的 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序 问题
  3. Java并发编程(4):守护线程与线程阻塞的四种情况
  4. ios8来了,屏幕更大,准备好使用 iOS Auto Layout了吗?
  5. java并发编程实战源码_java并发编程实战(附源码)
  6. 如何在手机或平板上编写代码?
  7. IEEE 802.3标准简介以及各分类标准汇总
  8. 从Dying gasp功能看Linux的响应速度
  9. 超级马里奥(待完善)
  10. 分享 | NB-IoT智能井盖传感器
  11. java去除多余excel_java使用poi删除excel中的空行
  12. 微信解绑手机号服务器会保留吗,微信怎么解绑手机号?微信还能解绑手机号吗?...
  13. 【转载】几封读者来信的回复
  14. python游戏最简单代码-python基础练习之几个简单的游戏
  15. IC回收,回收电子,回收IC,电子产品回收公司
  16. matlab仿真超声波测距,汽车倒车雷达的Simulink仿真测试
  17. 在安化云台山,遇见最美的风景
  18. iOS游戏开发中使用自定义字体的方法
  19. 如何快速找到期刊文献的期卷号
  20. mysql什么语句触发自动执行_MySQL的( )可在一定条件下被触发、自动执行一些语句序列。_学小易找答案...

热门文章

  1. Java学习---RMI 技术分析[Hessian]
  2. [计算机网络] C++模拟telnet登陆SMTP服务发送邮件过程
  3. CentOS7 设置开机直接进入命令行界面
  4. div样式调整.txt
  5. 如何再发行 SAPI 5.1 核心组件
  6. ROS学习笔记九:ROS工具
  7. Python hashlib 无法打印
  8. 【转】Eclipse下编写C++程序——CDT环境搭建
  9. 【Linux高频命令专题(24)】grep
  10. oracle 里面定时执行任务,比如存储过程内容等