您的位置:首页
HDU 5399 Too Simple (2015年多校比赛第9场)
2017-05-30 21:01
281 查看
1.题目描写叙述:点击打开链接
2.解题思路:本题分情况讨论。比赛时候真是想的太简单了。以为就是(n!)^(cnt-1)。
终于无限WA。
本题有几个特殊情况须要额外推断。
首先,假设输入的时候。有某一行不是-1且有两个数映射到同一个数,那么必定无解,ans=0。其次。假设不存在-1,须要从第m个函数一步步映射到第1个函数,检查一下最后是否真的变成了自身映射。最easy想到的情况就是有至少一个-1,那么最后答案就是(n!)^(cnt-1)。
3.代码:
2.解题思路:本题分情况讨论。比赛时候真是想的太简单了。以为就是(n!)^(cnt-1)。
终于无限WA。
本题有几个特殊情况须要额外推断。
首先,假设输入的时候。有某一行不是-1且有两个数映射到同一个数,那么必定无解,ans=0。其次。假设不存在-1,须要从第m个函数一步步映射到第1个函数,检查一下最后是否真的变成了自身映射。最easy想到的情况就是有至少一个-1,那么最后答案就是(n!)^(cnt-1)。
3.代码:
//#pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream> #include<algorithm> #include<cassert> #include<string> #include<sstream> #include<set> #include<bitset> #include<vector> #include<stack> #include<map> #include<queue> #include<deque> #include<cstdlib> #include<cstdio> #include<cstring> #include<cmath> #include<ctime> #include<cctype> #include<functional> using namespace std; #define me(s) memset(s,0,sizeof(s)) typedef long long ll; typedef unsigned int uint; typedef unsigned long long ull; typedef pair <int, int> P; const int N=100+10; const int MOD=1e9+7; ll f ,a ; int main() { int n,m; f[0]=1; for(int i=1;i<N;i++) f[i]=(f[i-1]*i)%MOD; while(~scanf("%d%d",&n,&m)) { ll ans=1,tot=0; for(int i=0;i<m;i++) { scanf("%I64d",&a[i][1]); if(a[i][1]==-1)tot++; else for(int j=2;j<=n;j++) { scanf("%I64d",&a[i][j]); for(int k=j-1;k>=1;k--) if(a[i][k]==a[i][j])ans=0; //假设某一行存在两个数都映射到同一个数,无解 } } for(int i=1;i<tot;i++)ans=(ans*f )%MOD; if(!tot) { ll x ; for(int i=1;i<=n;i++)x[i]=i; for(int i=m-1;i>=0;i--) for(int j=1;j<=n;j++) { x[j]=a[i][x[j]]; } for(int i=1;i<=n;i++) if(x[i]!=i)ans=0; //不是自身映射,无解 } printf("%I64d\n",ans); } }
相关文章推荐
- HDU 5399 Too Simple (2015年多校比赛第9场)
- HDU 5400 Arithmetic Sequence (2015年多校比赛第9场)
- HDU 5384 Danganronpa (2015年多校比赛第8场)
- HDU 5410 CRB and His Birthday (2015年多校比赛第10场)
- HDU 5353 Average (2015年多校比赛第6场)
- HDU 5411 CRB and Puzzle (2015年多校比赛第10场)
- HDU 5407 CRB and Candies (2015年多校比赛第10场)
- HDU 5374 Tetris (2015年多校比赛第7场)
- HDU 5386 Cover (2015年多校比赛第8场)
- hdu 5399 Too Simple 2015多校联合训练赛#9 模拟
- HDU 5414 CRB and String (2015年多校比赛第10场)
- HDU 5411 CRB and Puzzle (2015年多校比赛第10场)
- HDU 5399 Too Simple(数学 + 找规律)——2015 Multi-University Training Contest 9
- HDU 5384 Danganronpa (2015年多校比赛第8场)
- 2015多校第九场 HDU 5399 Too Simple
- HDU 5381 The sum of gcd (2015年多校比赛第8场)
- HDU 5360 Hiking (2015年多校比赛第6场)
- hdu 5379 Mahjong tree DFS 心塞,比赛时没取模 2015 Multi-University Training Contest 7
- 多校第九场 1004 hdu 5399 Too Simple(贪心)
- HDU 5399 Too Simple