博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 2441 Arrange the Bulls (状态压缩dp+滚动数组)
阅读量:6417 次
发布时间:2019-06-23

本文共 872 字,大约阅读时间需要 2 分钟。

题意:

n头牛和m个barn,每头牛有自己喜欢的p个barn(1<=p<=m),问有多少种安排n头牛的方法。

 

分析:

dp[i][j]表示i头牛在j状态下的方法数。

dp[i][j] = sigma(dp[i-1][k])  (k从0到 1<<m)。

要用滚动数组优化,否则dp[20][1<<20]会MLE!

 

注意滚动数组的清空= =!

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 12 using namespace std;13 14 typedef long long ll;15 16 vector
p[25];17 int dp[2][1<<20],n;18 19 int main()20 {21 int m,x,y;22 while(~scanf("%d%d",&n,&m))23 {24 for(int i=1;i<=n;i++)25 {26 p[i].clear();27 scanf("%d",&x);28 while(x--)29 {30 scanf("%d",&y);31 p[i].push_back(y);32 }33 }34 memset(dp,0,sizeof(dp));35 36 int all = (1<
>t)&1) continue; //如果k状态下这个位置已经有牛则不能放49 dp[i&1][k|(1<
View Code

 

转载于:https://www.cnblogs.com/hadis-yuki/p/4395757.html

你可能感兴趣的文章
爬取熊猫TV,javascript,selenium,模拟点击
查看>>
厦门大学2016年高等代数考研试题参考解答
查看>>
[转] C# 获取程序运行目录
查看>>
c++ 基于wincrypt的DES CBC模式加解密
查看>>
Logic Bist Arch
查看>>
程序员常用工具软件 总结
查看>>
Codeforces Round #369 (Div. 2) A. Bus to Udayland 水题
查看>>
C#预处理器指令【转】
查看>>
adb上使用cp/mv命令的替代方法(failed on '***' - Cross-device link解决方法)
查看>>
C++标准库简介、与STL的关系。
查看>>
Spring Boot 3 Hibernate
查看>>
查询EBS请求日志的位置和名称
查看>>
大型机、小型机、x86服务器的区别
查看>>
JVM调优总结:调优方法
查看>>
J2EE十三个规范小结
查看>>
算法(第四版)C#题解——2.1
查看>>
网关支付、银联代扣通道、快捷支付、银行卡支付分别是怎么样进行支付的?...
查看>>
大数据开发实战:Stream SQL实时开发一
查看>>
C++返回引用的函数例程
查看>>
C语言可变参数,参数传递
查看>>