题目: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 ;
}

最新文章

  1. mono for android Json 上传文件
  2. MLlib决策树与集成树
  3. 第二天 Linux常见命令
  4. 系统不支持curl
  5. Solaris桌面CDE
  6. Windows 键盘操作快捷方式积累
  7. html doctype 作用
  8. 【转】 Android——eclipse共享library以及导出jar包
  9. Bootstrap--全局CSS样式之概览
  10. Intellij IDEA 导入Eclipse或MyEclipse的Web项目(旧版 转载)
  11. 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiX
  12. EXTENDED LIGHTS OUT poj1222 高斯消元法
  13. 济南清北学堂游记 Day 4.
  14. 基于Cesium三维地图项目记录_通视分析功能的实现
  15. IBM Watson启示录:AI不应该仅仅是炫技
  16. Log4j2 设置控制台打印彩色日志
  17. VUE初体验篇-安装
  18. Redux 入门教程(三):React-Redux 的用法
  19. 转:arcgis api for js入门开发系列四地图查询
  20. linux 文件压缩与解压缩

热门文章

  1. (appium+python)UI自动化_08_unittest编写测试用例
  2. Support Vector Machine(1):线性可分集的决策边界
  3. mooc-IDEA 关联Spring&amp;DB --011
  4. 回调-&gt; 观察者模式-&gt;反应堆模式
  5. Parentheses Sequence微软编程笔试
  6. 高级软件工程第二次作业:随机生成N个不重复的已解答完毕的数独棋盘
  7. EasyUI:Cannot read property &#39;width&#39; of null
  8. HttpUrlConnection工具类
  9. Python入门习题6.猜数游戏和其异常处理
  10. Linux固定ip配置