2018.10.27 洛谷P2915奶牛混合起来Mixed Up Cows(状压dp)
传送门
状压dp入门题。
按照题意建一个图。
要求的就是合法的链的总数。
直接f[i][j]f[i][j]f[i][j]表示当前状态为jjj,下一位要跟iii连起来的方案数。
然后从没被选并且跟iii连通的点转移就行了。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=20;
bool tran[N][N];
int n,K,up,s[N];
ll f[N][1<<16];
inline int read(){
int ans=0;
char ch=getchar();
while(!isdigit(ch))ch=getchar();
while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
return ans;
}
inline ll dfs(int pos,int sta){
if(~f[pos][sta])return f[pos][sta];
if(sta+1==up)return f[pos][sta]=1;
f[pos][sta]=0;
for(int i=1;i<=n;++i){
if(!tran[i][pos]||((sta>>(i-1))&1))continue;
f[pos][sta]+=dfs(i,sta|(1<<(i-1)));
}
return f[pos][sta];
}
int main(){
memset(f,-1,sizeof(f)),n=read(),K=read(),up=1<<n;
for(int i=1;i<=n;++i){
s[i]=read();
for(int j=1;j<i;++j)if(abs(s[i]-s[j])>K)tran[i][j]=tran[j][i]=1;
tran[i][0]=tran[0][i]=1;
}
cout<<dfs(0,0);
return 0;
}
2018.10.27 洛谷P2915奶牛混合起来Mixed Up Cows(状压dp)的更多相关文章
- 洛谷P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows 状压动归
考场上空间开大了一倍就爆0了QAQ- Code: #include<cstdio> #include<algorithm> #include<cmath> usin ...
- 洛谷 P4484 - [BJWC2018]最长上升子序列(状压 dp+打表)
洛谷题面传送门 首先看到 LIS 我们可以想到它的 \(\infty\) 种求法(bushi),但是对于此题而言,既然题目出这样一个数据范围,硬要暴搜过去也不太现实,因此我们需想到用某种奇奇怪怪的方式 ...
- 洛谷U14667 肝活动【比赛】 【状压dp】
题目描述 Yume 最近在玩一个名为<LoveLive! School idol festival>的音乐游戏.他之所以喜欢上这个游戏,是因为这个游戏对非洲人十分友好,即便你脸黑到抽不出好 ...
- 洛谷P3694 邦邦的大合唱站队【状压dp】
状压dp 应用思想,找准状态,多考虑状态和\(f\)答案数组的维数(这个题主要就是找出来状态如何转移) 题目背景 \(BanG Dream!\)里的所有偶像乐队要一起大合唱,不过在排队上出了一些问题. ...
- 洛谷P1879 [USACO06NOV]玉米田Corn Fields(状压dp)
洛谷P1879 [USACO06NOV]玉米田Corn Fields \(f[i][j]\) 表示前 \(i\) 行且第 \(i\) 行状态为 \(j\) 的方案总数.\(j\) 的大小为 \(0 \ ...
- 洛谷P1879 [USACO06NOV]玉米田Corn Fields【状压DP】题解+AC代码
题目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ...
- [USACO08NOV]奶牛混合起来Mixed Up Cows(状态压缩DP)
题目描述 Each of Farmer John's N (4 <= N <= 16) cows has a unique serial number S_i (1 <= S_i & ...
- 【洛谷5369】[PKUSC2018] 最大前缀和(状压DP)
点此看题面 大致题意: 对于一个序列,求全排列下最大前缀和之和. 状压\(DP\) 考虑如果单纯按照题目中对于最大前缀和的定义,则一个序列它的最大前缀和是不唯一的. 为了方便统计,我们姑且规定,如果一 ...
- 洛谷 P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows 解题报告
P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows 题意: 给定一个长\(N\)的序列,求满足任意两个相邻元素之间的绝对值之差不超过\(K\)的这个序列的排列有多少个? 范围: ...
随机推荐
- TOJ 2755 国际象棋(搜索)
传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=2755 思路:对起点到终点进行广搜, ...
- XFF的学习+修改源码--Are you in class
这几天有做天枢CTF的“Are you in class”的题目,虽然以前了解过XFF,但还是没有很好地应用,而且最后居然掉进了一个大坑,且听我细细讲来. 打开题目,首先有个提示“在不在学校主要看 ...
- sizeof 4字节对齐
#include <iostream> #include<assert.h> using namespace std; typedef struct sys{ char a; ...
- day 17 re模块
RE模块 import re 对一个大篇幅的字符串,按照你的规则找出想要的字符串 # 单个字符匹配 import re # \w 与 \W #字母数字下划线, 非 # print(re.findall ...
- asp相关知识整理
WWW----World Wide Web(万维网) URL----Uniform Resource Locator(统一资源定位符) HTTP----Hyper Text Transfer Prot ...
- linux下查看项目端口号,杀掉对应端口号的方法
查看端口号:netstat -anp 结束端口号:sudo iptables -A INPUT -p tcp --dport 8012 -j DROP"
- 小程序 picker 多列选择器 数据动态获取
需求是将各校区对应各班级的数据 以两列选择器的方式展示出来,并且可以在选择完成之后记录选结果参数. 校区数据 和 班级数据 分别是两个接口,以 校区 teach_area_id 字段关联 其各班级数据 ...
- mysql decimal(10,2)对应java类型
下面我给出MYSQL类型与JAVA类型对应表,希望能够帮到您: 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) VARCHAR L+N VARCHAR java.lang.S ...
- Web框架Danjgo之session cookie及认证组件
一 Cookie 1 什么是Cookie Cookie翻译成中文是小饼干的意思.其实Cookie是key-value结构,类似于一个Python中的字典.随着服务器端的响应发送给客户端浏览器. 然后客 ...
- python 数据类型 之 字典
python 3.6.5字典的特性和定义定义:{'key_1':vlaue_1,'key_2':value_2}1.键与值用冒号 : 分开2.项与项 用 , 分开 特性1.可以存放多个值,可以不唯一, ...