BestCoder 2nd Anniversary/HDU 5719 姿势
2016-07-18 12:04
190 查看
Arrange
Accepts:221Submissions:1401
TimeLimit:8000/4000MS(Java/Others)
MemoryLimit:262144/262144K(Java/Others)
问题描述
Cupid一不小心将爱情之箭射到了自己,他爱上了Psyche。 这引起了他的母亲Venus的注意。Venus将Psyche带到了一堆打乱的谷堆旁。 这儿共有n堆稻谷,编号为1到n。Psyche需要将这些谷堆以某种顺序排列,设最终排在第i位的谷堆是Ai。 她得知了一些该排列的要求: 1.对于任意整数i∈[1,n]A1,A2,...,Ai的最小值为Bi 2.对于任意整数i∈[1,n]A1,A2,...,Ai的最大值为Ci 现在Psyche想知道,共有多少种合法的排列。由于答案可能很大,输出时对998244353取模。
输入描述
第一行,一个整数T(1≤T≤15)代表数据组数。 对于每组数据,第一行有一个整数n(1≤n≤105),代表排列大小。 第二行,n个整数,第i个整数为BiB_iBi(1≤Bi≤n) 第三行,n个整数,第i个整数为CiC_iCi(1≤Ci≤n)
输出描述
输出T行,对于每组数据输出答案对998244353取模的结果。
输入样例
2 3 211 223 5 54321 12345
输出样例
1 0
Hint
对于第一组数据,只有一种合法的排列(2,1,3) 对于第二组数据,没有合法的排列。 题意:中文题意长度为n的序列b[i]代表前i个数的最小值c[i]代表前i个数的最大值问有多少种合法的排列 题解:考虑只有当b[j]==b[j-1]&&c[j]==c[j-1])的时候才有贡献 但是注意1~n的数只能出现一次这就是gg的作用
#include<iostream> #include<cstring> #include<cstdio> #include<queue> #include<stack> #include<vector> #include<map> #include<algorithm> #definell__int64 #definemod1e9+7 #definePIacos(-1.0) usingnamespacestd; intt; llb[100005]; llc[100005]; intn; intmain() { while(scanf("%d",&t)!=EOF) { for(inti=1;i<=t;i++) { scanf("%d",&n); for(intj=1;j<=n;j++) scanf("%I64d",&b[j]); for(intj=1;j<=n;j++) scanf("%I64d",&c[j]); if(b[1]!=c[1]) { printf("0\n"); continue; } llans=1; llm=1; llgg=1;//注意 for(intj=2;j<=n;j++) { if(b[j]>b[j-1]||c[j]<c[j-1]) { m=0; continue; } else { if(b[j]!=b[j-1]&&c[j]!=c[j-1]) { m=0; continue; } else { if(b[j]!=b[j-1]||c[j]!=c[j-1]) gg++; else { ans*=(c[j]-gg-b[j]+1); gg++; ans%=998244353; } } } } if(m) printf("%I64d\n",ans); else printf("0\n"); } } return0; }
相关文章推荐
- 真机测试的时候出现 data parameter is nil
- .NET类库Newtonsoft.Json的各json与对之应的Model记录
- [从头读历史] 第307节 星球战争 BC2699 至 BC2600(公元前27世纪)
- java中的匿名内部类总结
- Linux的SOCKET编程详解
- Opencv图像识别从零到精通(9)----对比度亮度改变
- linux下如何查看系统和内核版本
- 2016Linux运维三期决心书
- 【杭电】[1715]大菲波数
- HDU 2063 过山车 最大二分匹配
- 机器学习中特征选择和特征提取区别
- linux内核简介
- iOS开发-提交AppStore 报错解决方案
- 仿百度登陆效果-layer弹窗插件
- Yii2使用dropdownlist实现地区三级联动功能的方法
- C# 结构体 struct
- HttpURLConnection处理post请求,返回字符串
- linux磁盘动态扩容时无法umount
- 安卓百分比布局---很好的解决屏幕适配问题
- Linux 使用 ip route , ip rule , iptables 配置策略路由