#计数,记忆化搜索#C 连边方案

分析
设\(dp[i][j][k][l]\)表示处理到\([i-l+1,i]\)的连边,二进制状态(奇点还是偶点)为\(k\)的方案数,
最后一维是为了避免算重,那么如果第\(i-l+1\)位是偶点可以转移到\(i+1\),否则枚举连边即可
代码
#include <cstdio>
#include <cstring>
#include <algorithm>
#define rr register
using namespace std;
const int mod=1000000007; int nn,mm,k,dp[32][32][511][10];
inline signed mo(int x,int y){return x+y>=mod?x+y-mod:x+y;}
inline signed dfs(int n,int m,int S,int now){
if (~dp[n][m][S][now]) return dp[n][m][S][now];
if (n==nn+1) return m==mm;
rr int ans=0;
if (!(S&1)) ans=mo(ans,dfs(n+1,m,S>>1,1));
if (m<mm){
rr int lim=min(k,nn-n);
for (rr int i=now;i<=lim;++i)
ans=mo(ans,dfs(n,m+1,S^1^(1<<i),i));
}
return dp[n][m][S][now]=ans;
}
signed main(){
freopen("graph.in","r",stdin);
freopen("graph.out","w",stdout);
scanf("%d%d%d",&nn,&mm,&k);
memset(dp,-1,sizeof(dp));
return !printf("%d",dfs(1,0,0,1));
}
#计数,记忆化搜索#C 连边方案的更多相关文章
- bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)
1833: [ZJOI2010]count 数字计数 题目:传送门 题解: 今天是躲不开各种恶心DP了??? %爆靖大佬啊!!! 据说是数位DP裸题...emmm学吧学吧 感觉记忆化搜索特别强: 定义 ...
- BZOJ 1079: [SCOI2008]着色方案 记忆化搜索
1079: [SCOI2008]着色方案 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
- SCOI2008着色方案(记忆化搜索)
有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i 种颜色的油漆足够涂ci 个木块.所有油漆刚好足够涂满所有木块,即 c1+c2+...+ck=n.相邻两个木块涂相同色显得很难 ...
- [BJOI2012]最多的方案(记忆化搜索)
第二关和很出名的斐波那契数列有关,地球上的OIer都知道:F1=1, F2=2, Fi = Fi-1 + Fi-2,每一项都可以称为斐波那契数.现在给一个正整数N,它可以写成一些斐波那契数的和的形式. ...
- 【洛谷】3953:逛公园【反向最短路】【记忆化搜索(DP)统计方案】
P3953 逛公园 题目描述 策策同学特别喜欢逛公园.公园可以看成一张N个点M条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值, 代表策策经过这条 ...
- HDU 1208 Pascal's Travels 经典 跳格子的方案数 (dp或者记忆化搜索)
Pascal's Travels Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Su ...
- 路径方案数_mod_SPFA_记忆化搜索_C++
本文含有原创题,涉及版权利益问题,严禁转载,违者追究法律责任 本来是写个 DP 分分钟就 A 了,结果老师要我们写记忆化搜索(无奈脸) 算啦,随手一改又是一个标准的记忆化搜索(目测好像是记忆化搜索容易 ...
- 【P2476】着色方案(记忆化搜索+特殊的DP数组)
这个题代码难度几乎为0,然而思维难度对于蒟蒻来说简直是突破天际啊!首先我思考的是这个油漆的种类只有15种,是不是可以像一道叫做8数码难题的东西暴力15维数组呢..计算发现不可以....空间会直接让你学 ...
- BZOJ1079 [SCOI2008]着色方案 【dp记忆化搜索】
题目 有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块. 所有油漆刚好足够涂满所有木块,即c1+c2+-+ck=n.相邻两个木块涂相同色显得很难看 ...
- BZOJ1079: [SCOI2008]着色方案 (记忆化搜索)
题意:有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块. 所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n.相邻两个木块涂相同色显得很 ...
随机推荐
- Springboot集成Disruptor做内部消息队列
一.基本介绍 Disruptor的github主页:https://github.com/LMAX-Exchange/disruptor 1,什么是 Disruptor? (1)Disruptor 是 ...
- 第132篇:npm第一次使用自己的包(package-lock.json、package.json文件作用说明)
好家伙, 1.新建一个文件夹,命名为test 2.下载包 npm i panghu-planebattle 空白的文件夹中多了两个文件 package-lock.json和package. ...
- 第127篇:异步函数(async和await)练习题(异步,消息队列)
好家伙,本篇为做题思考 书接上文 题目如下: 1.请给出下列代码的输出结果,并配合"消息队列"写出相关解释 async function foo() { console.lo ...
- macOS通过ssh使用PEM登录
在win上面可以使用XSHELL来登录类似于亚马逊这样的安全服务器,在mac上面就可以使用系统自带的命令工具来连接 使用命令 ssh -i key.pem [server] 如下: ssh -i ke ...
- Codeforces Round 914 (Div. 2)A~C
A 反过来考虑,由皇后和国王的位置去寻找骑士的位置,当一个点既可以被皇后找到,也可以被国王找到时就说明这个点是满足条件的 #include <bits/stdc++.h> #define ...
- 3 - 任务调度算法 & 同步与互斥 &队列
之前的都是按照优先级不同允许抢占(不讲道理),不管你在做什么,轮到优先级最高的任务,直接抢占执行 怎样才能讲道理呢?稍微等等嘛,等我做完活你再做 1 支持抢占,0不支持抢占 同优先级任务是否交替 ...
- 常见字符的ASCII码值
ASCII值就是字符对应的十进制数值,字符就是可以表示的字符.
- django(ORM)
一 单表(增.删.改.查) 1 测试脚本 ''' 只想测试django中的某一个py文件内容,那么可以不用书写前后端交互的形式 而是直接写一个测试脚本即可 ''' # 脚本代码无论是写在应用下的tes ...
- YCProgress自定义百分比进度条
目录介绍 1.本库优势亮点 2.使用介绍 2.1 圆环百分比进度条 2.2 直线百分比进度条 2.3 仿杀毒类型百分比进度条 3.注意要点 4.效果展示 5.其他介绍 1.本库优势亮点 圆环百分比进度 ...
- 记录--怎么写一个可以鼠标控制旋转的div?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 说在前面 鼠标控制元素旋转在现在也是一个很常见的功能,让我们从实现div元素的旋转控制开始来了解元素旋转的具体原理和实现方法吧. 效果展示 ...