博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
USACO 状压DP练习[3]
阅读量:4981 次
发布时间:2019-06-12

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

题意:$m*n:\ m,n \le 12$的牧场,有的格子不能选,相邻不能同时选,求方案数


$f[i][j]$前$i$行当前行选的集合为$j$

#include 
#include
#include
#include
#include
using namespace std;typedef long long ll;const int N=13,S=(1<<12)+5,P=1e8;inline int read(){ char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){
if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f;}int m,n;int f[N][S],cant[N];inline void mod(int &x){
if(x>=P) x-=P;}int main(){ //freopen("in","r",stdin); m=read();n=read(); for(int i=1;i<=m;i++) for(int j=0;j
View Code

 




 

 

题意:$n \le  16$个数字排列,所有相邻数字相差$\ge k$的方案数


 

$f[i][j]$表示当前已经选上的数字集合为$j$,以第$i$个数字结尾的方案数

#include 
#include
#include
#include
#include
using namespace std;typedef long long ll;const int N=18,S=(1<<16)+5,P=1e8;inline int read(){ char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){
if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f;} int n,k,a[N];ll f[N][S];int main(){ //freopen("in","r",stdin); n=read();k=read(); for(int i=0;i
k ) f[i][s]+=f[j][t]; } ll ans=0; for(int i=0;i
View Code

 




题意:有N头牛,它们可能患有D种病,现在从这些牛中选出若干头来,但选出来的牛患病的集合中不过超过K种病,最多选几头


 

$f[i][s]$表示前$i$头病集合为$j$最多选几头

用更新的写法比较好,因为你不知道去掉第$i$头后其他牛有没有第$i$头牛的病,还得预处理之类的

#include 
#include
#include
#include
#include
using namespace std;typedef long long ll;const int N=1005,S=(1<<15)+5;inline int read(){ char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){
if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f;}int n,m,k,a[N],f[S];inline int bitCount(int n){ int c=0; for(;n;++c) n&=(n-1); return c;}int main(){ //freopen("in","r",stdin); n=read();m=read();k=read(); for(int i=1;i<=n;i++){ int c=read(); while(c--) a[i]|= 1<<(read()-1); } int All=1<
=0;j--) f[j|a[i]]=max(f[j|a[i]],f[j]+1); int ans=0; for(int j=0;j

 

转载于:https://www.cnblogs.com/candy99/p/6512649.html

你可能感兴趣的文章
jQuery选择器总结2
查看>>
2019_BUAAOO_第一单元总结
查看>>
git比较两个版本,获取所有代码有差别的文件,并拷贝到一个文件夹中
查看>>
Spring3.1+Hibernate3+Struts2的最新整合所需要的jar包
查看>>
20135202闫佳歆--week2 操作系统是如何工作的--学习笔记
查看>>
HTML5 简介
查看>>
Charles接口工具使用介绍
查看>>
MVC VIEW 时间格式控制
查看>>
包装设计模式
查看>>
poj 1144 Network (割点)
查看>>
前端 HTML
查看>>
[LeetCode] 82 Remove Duplicates from Sorted List II
查看>>
2018.10.26 操作系统中的线程定义以及理解
查看>>
《洛克菲勒留给儿子的38封信》 第二封:运气靠策划
查看>>
笔记 js 基础笔记(Dom操作)
查看>>
struts配置请求后缀,将.action改为.do、.doaction_2015.01.04
查看>>
LOJ#565. 「LibreOJ Round #10」mathematican 的二进制 分治,FFT,概率期望
查看>>
C# 集合
查看>>
lucene学习笔记、资料
查看>>
js获取和设置DOM样式函数cssStyle(类似于jquery的$(elem).css())
查看>>