hdu5399 Too Simple(推论,分类讨论)
来源:互联网 发布:气象数据查询 编辑:程序博客网 时间:2024/04/30 08:24
http://acm.hdu.edu.cn/showproblem.php?pid=5399
题解:http://blog.csdn.net/queuelovestack/article/details/47753497
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<queue>#include<math.h>#include<vector>#include<map>#include<set>#include<stdlib.h>#include<cmath>#include<string>#include<algorithm>#include<iostream>#define exp 1e-10using namespace std;const int N = 105;const int inf = 1000000000;const int mod = 1000000007;__int64 s[N];bool v[N];int w[N][N];int dfs(int t,int x){ if(t==1) return w[t][x]; return dfs(t-1,w[t][x]);}int main(){ int n,m,i,j,k,x; bool flag; __int64 ans; s[0]=1; for(i=1;i<N;i++) s[i]=(s[i-1]*i)%mod; while(~scanf("%d%d",&n,&m)) { flag=true; for(k=0,i=1;i<=m;i++) { scanf("%d",&x); if(x==-1) k++; else { memset(v,false,sizeof(v)); v[x]=true;w[i][1]=x; for(j=2;j<=n;j++) { scanf("%d",&x); v[x]=true; w[i][j]=x; } for(j=1;j<=n;j++) if(!v[j]) //因为这一层的下标是上一层的数组值,所以上一层值必然是1~n break; if(j<=n) flag=false; } } if(!flag) puts("0"); else if(!k) //没有-1的时候 { for(i=1;i<=n;i++) if(dfs(m,i)!=i) break; if(i>n) puts("1"); else puts("0"); } else { for(ans=1,i=1;i<k;i++) ans=ans*s[n]%mod; printf("%I64d\n",ans); } } return 0;}
1 0
- hdu5399 Too Simple(推论,分类讨论)
- hdu5399(2015多校9)--Too Simple
- hdu5399 Too Simple(函数映射)
- hdu5399 Too simple
- hdu5399 Too Simple
- hdu5399 Too Simple
- hdu5399
- hdu5399
- HDU5399
- too young too simple
- too young too simple
- too young too simple
- HUD-5399 Too Simple(数学)
- hdu 5399 Too Simple(计数)
- XDU-1107 Too Simple (DP)
- HDU 5399 Too Simple
- 【HDOJ 5399】Too Simple
- HDU 5399 Too Simple
- iPod_shuffle_4thgen 用户手册 节选
- C++ Primer 学习笔记_12_指针(续)
- windows基于Thrift的php客户端访问java的服务端
- Python strip()方法
- linux服务器安装大全
- hdu5399 Too Simple(推论,分类讨论)
- 超文本传输协议HTTP
- Myeclipse 控制台 乱码
- 异常:读取联系人数据库异常处理
- nginx 自定义404页面
- activiti工作流会签功能的实现
- [OpenGL游戏开发] (原)骨骼动画osgCal示例+osgCal编译(附源码)
- vector初学
- 查看mysql数据库连接数、并发数相关信息