Rigid Frameworks (画图二分图规律 + DP + 数学组合容斥)
题意:方格n*m,然后对于每一个格子有3种画法1左对角线2右对角线3不画,求让图形稳定的画法有多少种?
思路:通过手画二分图可以发现当二分图联通时改图满足条件,然后我们对于一个dp[n][m]可以利用容器原理先得到所有情况,然后减去不满足情况,那么以一点为中心,假设该点所在的连通块为dp[i][j]那么这时候我们把这些点先用组合数学求出所在连通块对应的组合方式有多少种,然后再是剩下的其余个点随便连都无所谓只要不连接进我原所在连通块就好了。那么我们可以推出式子

#include<bits/stdc++.h>
using namespace std; const int mod = 1e9 + ;
long long dp[][];
long long Th[];
long long in[]; long long C(int n,int m){
if(m > n) return ;
if(m == || n == ) return ;
return in[n] / in[m] / in[n - m];
} void init(){
in[] = in[] = Th[] = ;
for(int i = ; i < ; i ++) Th[i] = Th[i - ] * % mod;
for(int i = ; i < ; i ++) in[i] = in[i - ] * i; for(int I = ; I < ; I ++)
for(int J = ; J < ; J ++){
dp[I][J] = Th[I * J];
for(int i = ; i <= I; i ++)
for(int j = ; j <= J; j ++){
if(I == i && J == j) continue;
dp[I][J] -= C(I - , i - ) * C(J, j) * dp[i][j] % mod * Th[(I - i)*(J - j)] % mod;
((dp[I][J] %= mod) += mod) %= mod;
}
}dp[][] = ;
} int main(){
init();
int n,m;
while(~scanf("%d%d",&n,&m)){
printf("%lld\n",dp[n][m]);
}
return ;
}
Rigid Frameworks (画图二分图规律 + DP + 数学组合容斥)的更多相关文章
- # E. Mahmoud and Ehab and the xor-MST dp/数学+找规律+xor
E. Mahmoud and Ehab and the xor-MST dp/数学/找规律 题意 给出一个完全图的阶数n(1e18),点由0---n-1编号,边的权则为编号间的异或,问最小生成树是多少 ...
- 2016 Multi-University Training Contest 1 G. Rigid Frameworks
Rigid Frameworks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- HDU 5729 Rigid Frameworks(连通性DP)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5729 [题目大意] 给出一个n*m的方格框,可以在单位矩形中添加两种对角线的线,使得其变得稳定,问 ...
- POJ 2663 Tri Tiling dp 画图找规律
状态:d[i]代表n=i时的方案数. 状态转移方程:d[i]=d[i-2]+2*(d[i-2]+d[i-4]+-+d[0]) i只会为偶数,奇数情况不存在,d[0]=1 找状态转移方程的时候画图更好理 ...
- 【POJ 1112】Team Them Up!(二分图染色+DP)
Description Your task is to divide a number of persons into two teams, in such a way, that: everyone ...
- ZOJ3872 Beauty of Array---规律 | DP| 数学能力
传送门ZOJ 3872 Beauty of Array Time Limit: 2 Seconds Memory Limit: 65536 KB Edward has an array A ...
- HDU 5729 Rigid Frameworks (联通块计数问题)
题目传送门 通过看题解画图可以发现: 不论怎么转,一列里的横边/一行里的竖边始终平行 当我们加固一个格子时,会让它所在的这一行的竖边和这一列的横边保证垂直 而我们的目标是求所有竖边和横边都保证垂直的方 ...
- [CSP-S模拟测试]:B(DP+数学)
题目传送门(内部题45) 输入格式 第一行$3$个整数$n,m,P$.第二行$m$个整数,表示$m$次询问. 输出格式 一行$m$个整数表示答案. 样例 样例输入1: 2 4 40 1 2 3 样例输 ...
- [CSP-S模拟测试]:小奇的矩阵(matrix)(DP+数学)
题目背景 小奇总是在数学课上思考奇怪的问题. 题目描述 给定一个$n\times m$的矩阵,矩阵中的每个元素$a_{i,j}$为正整数.接下来规定: $1.$合法的路径初始从矩阵左上角出发,每 ...
随机推荐
- spring+shiro+springmvc+maven权限卡控示例
项目结构 UserController , 主要负责用户登入和注销. LinewellController, 主要负责请求受权限卡控的数据. MyRealm,自定义realm. Authorizati ...
- xxx污水厂监控网络定点图
- 不看好运维竖井产品模式,优云打造融合化运维PaaS平台
2018年1月13号中国双态运维用户大会上,优云软件总裁刘东海接受了36Kr记者的专访,期间谈到了新时代下的企业运维模式,新兴技术和传统运维的融合以及优云未来的发展方向等问题.以下为访谈实录: 优云软 ...
- AT2567 RGB Sequence dp
正解:计数dp 解题报告: 传送门! umm其实我jio得dp的题目的话就难在思想昂,,,知道状态知道转移就不难辣QAQ 所以就不说别的了直接写下思路放下代码就over辣QAQ 最基础的思想就是f[i ...
- js对json格式对象进行增加,修改,删除
// 假设数据为data var data=[ { "ID":"83d349de-eca4-4974-a8a7-f9b44b48c6f2", "IsL ...
- JavaScript substr() 字符串截取函数使用详解
substr 定义和用法 substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符. 语法 stringObject.substr(start,length) 如果 length ...
- gitlab:开发+测试+发布的全流程图
- (4.25)格式化T-SQL工具
写代码的一个重要方面是格式化.没有人喜欢格式错误的代码.对于继承它的人,甚至是作者,他/她在一周左右后检查它是很难理解/维护的 我确实理解开发人员在严格的交付准则下工作,没有人会想要延迟交付,而不是格 ...
- 20170803 Airflow自带的API进行GET 和POST动作部分内容
--1 首先你要有安装好的Airflow 环境并且在配置文件中有启用API 属性 --2 就是GET 和POST 方法的调用了 这里说一下,由于Airflow在网络上的资料比较少,可以从GETHUB中 ...
- 开发uniapp必备
开发工具http://quickapp.dcloud.io/ 开发手册 http://uniapp.dcloud.io/api/README(2018-7-27 发布) 调试环境http://ask. ...