题目: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的更多相关文章

  1. hdu 4412 Sky Soldiers(区间DP)

    Sky Soldiers Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  2. hdu 4745 Two Rabbits 区间DP

    http://acm.hdu.edu.cn/showproblem.php?pid=4745 题意: 有两只兔子Tom Jerry, 他们在一个用石头围城的环形的路上跳, Tom只能顺时针跳,Jerr ...

  3. HDU 1141---Brackets Sequence(区间DP)

    题目链接 http://poj.org/problem?id=1141 Description Let us define a regular brackets sequence in the fol ...

  4. HDU 5115 Dire Wolf 区间dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5115 Dire Wolf Time Limit: 5000/5000 MS (Java/Others ...

  5. HDU 5693 D Game 区间dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5693 题解: 一种朴实的想法是枚举选择可以删除的两个或三个数(其他的大于三的数都能凑成2和3的和), ...

  6. hdu 4597 Play Game 区间dp

    Play Game Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=459 ...

  7. HDU 4632 Palindrome subsequence (区间DP)

    题意 给定一个字符串,问有多少个回文子串(两个子串可以一样). 思路 注意到任意一个回文子序列收尾两个字符一定是相同的,于是可以区间dp,用dp[i][j]表示原字符串中[i,j]位置中出现的回文子序 ...

  8. hdu 4570 Multi-bit Trie 区间DP入门

    Multi-bit Trie 题意:将长度为n(n <= 64)的序列分成若干段,每段的数字个数不超过20,且每段的内存定义为段首的值乘以2^(段的长度):问这段序列总的内存最小为多少? 思路: ...

  9. HDU 2476 String painter(区间dp)

    题意: 给定两个字符串,让求最少的变化次数从第一个串变到第二个串 思路: 区间dp, 直接考虑两个串的话太困难,就只考虑第二个串,求从空白串变到第二个串的最小次数,dp[i][j] 表示i->j ...

随机推荐

  1. spring4.1.8扩展实战之七:控制bean(BeanPostProcessor接口)

    本章是<spring4.1.8扩展实战>的第七篇,我们来尝试在容器初始化的时候对bean实例做设置: 原文地址:https://blog.csdn.net/boling_cavalry/a ...

  2. SVG绘制随机的柱形图+php

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. MySQL 1130错误,无法远程连接

    错误:ERROR 1130: Host '192.168.1.3' is not allowed to connect to thisMySQL serve 错误1130:主机192.168.1.3” ...

  4. socket选项总结(setsockopt)

    功能描述:        获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选项位于的层和选项的名称必须给出.为了操作套接字层的选项, ...

  5. 爬虫(十一)—— XPath总结

    目录 XPath总结 一.何为XPath 二.XPath语法 1.语法 2.实例 三.XPath轴 1.XPath轴语法 2.XPath轴实例 四.XPath运算符 XPath总结 一.何为XPath ...

  6. python-生成式的基本使用

    生成式是python中的一种高级玩法,起码看起来显得要高级一点.它可以使用简单的一行代码实现列表.字典等数据类型的创建或数据类型的转换等任务.另外,它和生成器还有些许关联. 列表生成式 列表生成式即生 ...

  7. OAUTH2.0协议-菜鸟级

    OAUTH2.0入门必看 一.摘要 OAUTH协议为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即 ...

  8. 查询SQLSERVER执行过的SQL记录(历史查询记录)(转)

    原文链接:https://www.cnblogs.com/icycore/p/10493237.html 有的时候,需要知道近段时间SQLSERVER执行了什么语句,可以用下面的方法: SELECT ...

  9. [Linux] 019 软件包管理简介

    1. 软件包分类 源码包 脚本安装包 二进制包(RPM 包.系统默认包) 2. 源码包 (1)源码包的优点 开源,如果有足够的能力,可以修改源代码 可以自由选择所需的功能 软件是编译安装,所以更加适合 ...

  10. spring-第一篇之spring核心机制依赖注入(DI)/控制翻转(IoC)

    1.spring的核心机制:依赖注入(DI)/控制翻转(IoC) 什么是依赖:A对象需要调用B对象,所以A依赖于B. 什么是注入:A对象注入一个属性B对象. 什么是依赖注入(DI):A对象依赖于B对象 ...