BestCoder 2nd Anniversary Arrange
来源:互联网 发布:人工智能之父是 编辑:程序博客网 时间:2024/05/11 23:44
利用第一个单减函数和第二个单增函数的性质 从头到尾扫一遍设立一个维护此时最大最小值之间可以用的变量一次次累乘就行了
#include<cstdio>#include<set>#define LL long long#define mod 998244353using namespace std;int a[100005],b[100005],n;int main(){ int t; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d",&a[i]); for(int i=1;i<=n;i++)scanf("%d",&b[i]); if(a[1]==b[1]) { LL ans = 1; int se = 0; int mi = a[1],ma = b[1]; for(int i=2;i<=n;i++) { if(a[i]>b[i]||a[i]>a[i-1]||b[i]<b[i-1]) { ans = 0; break; } else{ if(a[i]==a[i-1]&&b[i]==b[i-1]) { if(se>=1) { ans*=se; ans%=mod; se--; } else ans = 0; } else { if(a[i]!=a[i-1]) { se+=mi-a[i]-1; mi = a[i]; } if(b[i]!=b[i-1]) { se+=b[i]-ma-1; ma = b[i]; } } } } printf("%I64d\n",ans); } else printf("0\n"); } return 0;}
0 0
- BestCoder 2nd Anniversary Arrange
- BestCoder 2nd Anniversary HDU5719 Arrange
- BestCoder 2nd Anniversary 1002/hdu5719 Arrange
- HDU 5719 BestCoder 2nd Anniversary Arrange (DP)
- BestCoder 2nd Anniversary
- BestCoder 2nd Anniversary
- BestCoder 2nd Anniversary
- BestCoder 2nd Anniversary
- BestCoder 2nd Anniversary
- BestCoder 2nd Anniversary-1005
- BestCoder 2nd Anniversary Oracle
- BestCoder 2nd Anniversary Palace
- BestCoder 2nd Anniversary HDU5720
- BestCoder 2nd Anniversary Oracle
- BestCoder 2nd Anniversary #1001-oracle
- BestCoder 2nd Anniversary - 1001 Oracle
- BestCoder 2nd Anniversary 1001~1003
- BestCoder 2nd Anniversary-1004 Palace题解
- 学习方法与心得
- Android-百度地图定位的使用
- Android之handler篇
- hdu5410 CRB and Birthday(背包)
- 有return的情况下try catch finally的执行顺序
- BestCoder 2nd Anniversary Arrange
- 多线程中采用锁控制并发
- 自动类型转换·强制类型转换
- POJ 3070 Fibonacci
- vs2010+qt插件,开发i环境搭建
- js定时器画一个圆
- 部署zeppelin时遇到的spark on yarn的submit方式问题
- CSS的相对定位和绝对定位
- 面向对象六大原则--迪米特原则