hdoj 5399 Tpp simple
WA了一下午。。。。
1WA:T了,因为阶乘没打表所以时间超了。。
2WA,3WA:runtime error,检查的value数组开小了,应该是MAXN。。
4WA、5WA、6WA:改了改对cnt的处理,该加Mod的加Mod
7WA:complication error,调试函数忘了删。。
8WA:所有的int改成了long long
9WA、10WA:改了下最后的思路和对于 m = 1 的处理
11WA:加了两个*1LL
12WA、13WA:发现输入有问题,中间有-1的时候会跳出
14WA:n打成了m
15: AC
整体思路就是只要保持1 - n的每一条路是单射,只需要保证首和尾的数相同即可,不需要考虑中间过程,
特殊情况就是没有-1的时候,需要判断能不能够满足条件。


#include<stdio.h>
#include<cstring>
#include<set>
typedef long long LL;
using namespace std;
;
;
long long ans;
int n, m;
int cnt;
int a[MAXN][MAXN];
long long jc[MAXN];
int flag;
set<int>s;
void init(){
jc[] = ;
; i < MAXN; ++i){
jc[i] = ((jc[i-]*1LL) % MOD*i)%MOD;
}
}
bool judge(){
;
int tmp;
int value[MAXN];
){
; i <= n; ++i){
][i] != i)
fflag = ;
}
return fflag;
}
else{
memset(value,,sizeof(value));
; i <= n; ++i){
tmp = a[m][i];
; j >= ; --j){
value[i] = a[j][tmp];
tmp = a[j][tmp];
}
}
; i <= n; ++i)
if( value[i] != i )
fflag = ;
return fflag;
}
}
int main(){
freopen("in.txt","r",stdin);
init();
while(~scanf("%d%d", &n, &m)){
flag = ;
memset(a,,sizeof(a));
s.clear();
; i <= m; i++){
; j <= n; j++){
scanf("%d", &a[i][j]);
] == -)
break;
)
flag = ;
s.insert(a[i][j]);
}
] != -){
flag = ;
}
s.clear();
}
){
printf("0\n");
continue;
}
ans = ;
cnt = ;
flag = ;
; i <= m; ++i){
] == - ){
cnt++;
flag = ;
}
}
if(cnt){
; i < cnt; ++i){
ans =( ans *1LL* jc[n] )% MOD;
}
}
if(flag)
printf("%I64d\n",ans);
else{
if(judge())
printf("1\n");
else
printf("0\n");
}
}
}
hdoj 5399 Tpp simple的更多相关文章
- HDOJ 5399 Too Simple
每个函数都必须是一个排列,经过连续的一段确定函数后数字不能少. 满足上面的条件的话,仅仅要有一个-1函数特别的排列一下就能够满足要求,剩下的能够任意填 没有-1的话特判 Too Simple Time ...
- 构造 HDOJ 5399 Too Simple
题目传送门 题意:首先我是懂了的,然后我觉得很难讲清楚就懒得写了,关键理解f1(f2(fm(i)))=i,不懂的戳这里构造:如果fi(j)不是映射到(1~n),重复或者不在范围内的肯定无解.还有没有- ...
- 【HDOJ 5399】Too Simple
pid=5399">[HDOJ 5399]Too Simple 函数映射问题 给出m函数 里面有0~m个函数未知(-1) 问要求最后1~n分别相应仍映射1~n 有几种函数写法(已给定的 ...
- HDOJ 4974 A simple water problem
A simple water problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...
- HDU 5399 Too Simple(过程中略微用了一下dfs)——多校练习9
Too Simple Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Probl ...
- HDOJ 4975 A simple Gaussian elimination problem.
和HDOJ4888是一样的问题,最大流推断多解 1.把ISAP卡的根本出不来结果,仅仅能把全为0或者全为满流的给特判掉...... 2.在残量网络中找大于2的圈要用一种类似tarjian的方法从汇点開 ...
- 【HDOJ】2451 Simple Addition Expression
递推,但是要注意细节.题目的意思,就是求s(x) = i+(i+1)+(i+2),i<n.该表达中计算过程中CA恒为0(包括中间值)的情况.根据所求可推得.1-10: 31-100: 3*41- ...
- 【HDOJ】1341 Simple Computers
注意PC要与31. #include <cstdio> #include <cstring> #include <cstdlib> #define MAXN 40 ...
- 【HDOJ】1497 Simple Library Management System
链表. #include <cstdio> #include <cstring> #include <cstdlib> #define MAXM 1001 #def ...
随机推荐
- SQLServer—系统中的内存配置
前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE来限制内存.但是,在SQLServer2012以后,这个选项将被弃用,所以不能使用 ...
- (转) Python Generators(生成器)——yield关键字
http://blog.csdn.net/scelong/article/details/6969276 生成器是这样一个函数,它记住上一次返回时在函数体中的位置.对生成器函数的第二次(或第 n 次) ...
- (六)6.9 Neurons Networks softmax regression
SoftMax回归模型,是logistic回归在多分类问题的推广,即现在logistic回归数据中的标签y不止有0-1两个值,而是可以取k个值,softmax回归对诸如MNIST手写识别库等分类很有用 ...
- 【英语】Bingo口语笔记(38) - See系列
see somebody off 送别 see somebody out 看到谁从哪里出来
- 获取当前匹配元素 包括自身的html
$(".test").prop("outerHTML"); 来自为知笔记(Wiz)
- 判断https
判断https <script> if(window.location.protocol=='https:'){ window.location.href='http://e.abchin ...
- grep -A -B选项详解和mysqlbinlog
grep的-A-B-选项详解(转)[@more@] grep能找出带有关键字的行,但是工作中有时需要找出该行前后的行,下面是解释 1. grep -A1 keyword filename 找出file ...
- Linux/Unix shell 脚本监控磁盘可用空间
Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少.下面是给出的一个监控磁盘空间空间shell脚本的样本,供大家参考. 1.监控磁盘的空闲空间shell脚本 robi ...
- Android 着色器 Tint 研究
Tint 这个东西 主要用来减少apk体积的,比如说我现在有一个textview,他的背景图 有两种,一种是当获得焦点时显示的a图,另一种是 失去焦点时显示的b图. 相信大家开发的时候 这种需求做过很 ...
- 502 Bad Gateway nginx 解决
打开 /usr/local/php/etc/php-fpm.conf 调大以下两个参数(根据服务器实际情况,过大也不行) <value name=”max_children”>5120&l ...