hdu 5181 numbers——思路+区间DP
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5181
题解:https://www.cnblogs.com/Miracevin/p/10960717.html
原来卡特兰数的这个问题还能区间DP……
XO
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
int rdn()
{
int ret=;bool fx=;char ch=getchar();
while(ch>''||ch<''){if(ch=='-')fx=;ch=getchar();}
while(ch>=''&&ch<='')ret=ret*+ch-'',ch=getchar();
return fx?ret:-ret;
}
const int N=,M=9e5+,mod=1e9+;
int n,m,hd[N],xnt,to[M],nxt[M],b[N][N],f[N][N];
bool vis[N];
void init()
{
memset(b,,sizeof b); memset(f,,sizeof f);
xnt=; memset(hd,,sizeof hd);
}
void add(int x,int y){to[++xnt]=y;nxt[xnt]=hd[x];hd[x]=xnt;}
void dfs(int cr)
{
for(int i=hd[cr],v;i;i=nxt[i])
if(!vis[v=to[i]])
{
vis[v]=; b[cr][v]=; dfs(v);
}
}
bool chk(int x1,int x2,int y1,int y2)
{
if(x2<x1||y2<y1)return true;
int tp=b[x2][y2]-b[x1-][y2]-b[x2][y1-]+b[x1-][y1-];
return !tp;
}
void solve()
{
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
b[i][j]+=b[i][j-];
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
b[i][j]+=b[i-][j];
for(int len=;len<=n;len++)
{
for(int i=;i<=n;i++)
{
int j=i+len-; if(j>n)break;
f[i][i-]=f[j+][j]=;
for(int k=i;k<=j;k++)
{
if(chk(k,j,i,k-)&&chk(k,k,k+,j))
f[i][j]=(f[i][j]+(ll)f[i][k-]*f[k+][j])%mod;
}
}
}
printf("%d\n",f[][n]);
}
int main()
{
int T=rdn();
while(T--)
{
init();
n=rdn();m=rdn();
for(int i=,u,v;i<=m;i++)
u=rdn(),v=rdn(),add(u,v);
for(int i=;i<=n;i++)
{
memset(vis,,sizeof vis);
dfs(i);
}
bool fg=;
for(int i=;i<=n&&(!fg);i++)
for(int j=;j<=i;j++)
if(b[i][j]&&b[j][i]){fg=;break;}
if(fg){puts("");continue;}
solve();
}
return ;
}
hdu 5181 numbers——思路+区间DP的更多相关文章
- hdu 4412 Sky Soldiers(区间DP)
Sky Soldiers Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- hdu 4745 Two Rabbits 区间DP
http://acm.hdu.edu.cn/showproblem.php?pid=4745 题意: 有两只兔子Tom Jerry, 他们在一个用石头围城的环形的路上跳, Tom只能顺时针跳,Jerr ...
- HDU 1141---Brackets Sequence(区间DP)
题目链接 http://poj.org/problem?id=1141 Description Let us define a regular brackets sequence in the fol ...
- HDU 5115 Dire Wolf 区间dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5115 Dire Wolf Time Limit: 5000/5000 MS (Java/Others ...
- HDU 5693 D Game 区间dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5693 题解: 一种朴实的想法是枚举选择可以删除的两个或三个数(其他的大于三的数都能凑成2和3的和), ...
- hdu 4597 Play Game 区间dp
Play Game Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=459 ...
- HDU 4632 Palindrome subsequence (区间DP)
题意 给定一个字符串,问有多少个回文子串(两个子串可以一样). 思路 注意到任意一个回文子序列收尾两个字符一定是相同的,于是可以区间dp,用dp[i][j]表示原字符串中[i,j]位置中出现的回文子序 ...
- hdu 4570 Multi-bit Trie 区间DP入门
Multi-bit Trie 题意:将长度为n(n <= 64)的序列分成若干段,每段的数字个数不超过20,且每段的内存定义为段首的值乘以2^(段的长度):问这段序列总的内存最小为多少? 思路: ...
- HDU 2476 String painter(区间dp)
题意: 给定两个字符串,让求最少的变化次数从第一个串变到第二个串 思路: 区间dp, 直接考虑两个串的话太困难,就只考虑第二个串,求从空白串变到第二个串的最小次数,dp[i][j] 表示i->j ...
随机推荐
- Drone 持续集成实践 - 基于 Gogs,以 Golang 为例
Drone 官方示例 - Example Go project 用 Docker 部署 Go 服务器 Golang 官方示例 - outyet 一个生产环境的例子 用 rsync 复制文件的方式进行部 ...
- log4j配置及异常、解决办法
配置: ### set log levels ### D只有一个E也只有一个 log4j.rootLogger = debug,stdout,D,E ### 输出到控制台 ### log4j.appe ...
- 20190815 On Java8 第五章 控制流
第五章 控制流 迭代语句 逗号操作符 在 Java 中逗号运算符(这里并非指我们平常用于分隔定义和方法参数的逗号分隔符)仅有一种用法:在 for 循环的初始化和步进控制中定义多个变量.我们可以使用逗号 ...
- 微信小程序这一块(下)
1.小程序分为两部分 :页面.组件 2.小程序中如何定义自定义组件? 凡是通过Page创建的都是页面,而通过Components创建的都是组件 当组件创建成功后,在需要使用的页面进行引入,(找到页面的 ...
- Tensorflow--Keras官方原文
Keras 是一个用于构建和训练深度学习模型的高阶 API(应用程序接口).它可用于快速设计原型.高级研究和生产,具有以下三个主要优势: 方便用户使用 Keras 具有针对常见用例做出优化的简单而一致 ...
- shell 删除项目日志
删除半年之前的日志 find 后面紧跟目录 .为当前目录 -type f 指定查找的是文件 -mtime +180 查找180天之前的 -name 文件名筛选 -exec -rm -rf 执行的 ...
- 0x3f3f3f3f 0xbfbfbfbf 等的原理及应用
原理 0x的意思其实是十六进制,后面加的数其实就是一个十六进制数. 在十六进制中,我们知道a代表10,b代表11,c代表12,d代表13,e代表14,f代表15. 所以3f3f3f3f这个数用十进制数 ...
- Emacs中的前进后退jump-tree
Emacs中的前进后退jump-tree */--> code {color: #FF0000} pre.src {background-color: #002b36; color: #8394 ...
- luoguP1311 选择客栈 题解(NOIP2011)
P1311 选择客栈 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include<c ...
- shell脚本从入门到精通(中级)之提高篇
shell 脚本入门到精通(中级) 一.shell 脚本的执行 二.输出格式化 三.数据类型 四.重定向 五.变量 一.shell 脚本的执行 1. 脚本执行的4种方法 $ ls /tmp/test. ...