
【SSL_1383】车II
发布日期:2021-05-06 16:00:35
浏览次数:24
分类:精选文章
本文共 741 字,大约阅读时间需要 2 分钟。
车II
Description
有一个nm的棋盘(n、m≤80,nm≤80)要在棋盘上放k(k≤20)个棋子,使得任意两个棋子不相邻。求合法的方案总数。
Input
n,m,k
Output
方案总数
Sample Input
3 3 2
Sample Output
24
解题思路
我们用 DFS 枚举每一种情况,然后枚举冲突,动态转移即可
#include#include using namespace std;int n,m,k,s[10010],tot,c[10010],f[82][1<<9][21];void dfs(int ss,int p,int l){ if(p>n) { s[++tot]=ss; c[tot]=l; return; } dfs(ss,p+1,l); dfs(ss+(1< >n>>m>>k; if(n>m) swap(n,m); dfs(0,1,0); for(int i=1;i<=tot;i++) f[1][s[i]][c[i]]=1; for(int i=2;i<=m;i++) for(int j=1;j<=tot;j++) for(int l=1;l<=tot;l++) if(!(s[j]&s[l])) for(int o=0;o<=k;o++) if(o>=c[j]) f[i][s[j]][o]+=f[i-1][s[l]][o-c[j]]; long long ans=0; for(int i=1;i<=tot;i++) ans+=f[m][s[i]][k]; cout< <
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月26日 21时03分31秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【△重点△】LeetCode - 4. 寻找两个正序数组的中位数——二分查找
2021-05-07
LeetCode - 5. 最长回文子串——字符串、动态规划
2021-05-07
全局锁和表锁 :给表加个字段怎么有这么多阻碍?
2021-05-07
二分查找与插入排序的结合使用
2021-05-07
892 三维形体的表面积(分析)
2021-05-07
16 最接近的三数之和(排序、双指针)
2021-05-07
279 完全平方数(bfs)
2021-05-07
875 爱吃香蕉的珂珂(二分查找)
2021-05-07
桌面图标的自动排列图标
2021-05-07
第十一届蓝桥杯python组第二场省赛-数字三角形
2021-05-07
BST中某一层的所有节点(宽度优先搜索)
2021-05-07
广度优先搜索
2021-05-07
Dijkstra算法的总结
2021-05-07
C语言的运算符和表达式
2021-05-07
Vue实现选项卡功能
2021-05-07
uni-app请求头中携带token
2021-05-07
vue中接收后台的图片验证码并显示
2021-05-07
Vue入门学习笔记(1)
2021-05-07
趣谈win10常用快捷键
2021-05-07