BestCoder 2nd Anniversary/HDU 5719 姿势
Arrange
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 个整数为Bi B_i Bi (1≤Bi≤n) 第三行,n 个整数,第i 个整数为Ci C_i Ci (1≤Ci≤n)
输出T 行,对于每组数据输出答案对998244353 取模的结果。
2
3
2 1 1
2 2 3
5
5 4 3 2 1
1 2 3 4 5
1
0
对于第一组数据,只有一种合法的排列(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>
#define ll __int64
#define mod 1e9+7
#define PI acos(-1.0)
using namespace std;
int t;
ll b[];
ll c[];
int n;
int main()
{
while(scanf("%d",&t)!=EOF)
{
for(int i=; i<=t; i++)
{
scanf("%d",&n);
for(int j=; j<=n; j++)
scanf("%I64d",&b[j]);
for(int j=; j<=n; j++)
scanf("%I64d",&c[j]);
if(b[]!=c[])
{
printf("0\n");
continue;
}
ll ans=;
ll m=;
ll gg=;//注意
for(int j=; j<=n; j++)
{
if(b[j]>b[j-]||c[j]<c[j-])
{
m=;
continue;
}
else
{
if(b[j]!=b[j-]&&c[j]!=c[j-])
{
m=;
continue;
}
else
{
if(b[j]!=b[j-]||c[j]!=c[j-])
gg++;
else
{
ans*=(c[j]-gg-b[j]+);
gg++;
ans%=;
}
}
}
}
if(m)
printf("%I64d\n",ans);
else
printf("0\n");
}
}
return ;
}
BestCoder 2nd Anniversary/HDU 5719 姿势的更多相关文章
- BestCoder 2nd Anniversary/HDU 5718 高精度 模拟
Oracle Accepts: 599 Submissions: 2576 Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/26 ...
- BestCoder 2nd Anniversary的前两题
Oracle Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Su ...
- hdu 5719 BestCoder 2nd Anniversary B Arrange 简单计数问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5719 题意:一个数列为1~N的排列,给定mn[1...n]和mx[1...n],问有符合的排列数为多少 ...
- hdu 5720 BestCoder 2nd Anniversary Wool 推理+一维区间的并
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5720 题意:有n(n <= 105)个数 ,每个数小于等于 1018:问在给定的[L,R]区间中 ...
- BestCoder 2nd Anniversary
A题 Oracle http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=703&pid=1001 大数相加: ...
- BestCoder 2nd Anniversary 1001 Oracle
找到最小的非零数字拆开来相加. 高精度. #include <iostream> #include <cstdio> #include <cstring> #inc ...
- BestCoder 2nd Anniversary 1002 Arrange
排除所有不符合条件后根据当前位置上下界计算, 由于前面取的数肯定在之后的区间内,所以去掉已取的个数即可. #include <iostream> #include <cstdio&g ...
- hdu 5311 Hidden String (BestCoder 1st Anniversary ($))(深搜)
http://acm.hdu.edu.cn/showproblem.php?pid=5311 Hidden String Time Limit: 2000/1000 MS (Java/Others) ...
- 二分图点染色 BestCoder 1st Anniversary($) 1004 Bipartite Graph
题目传送门 /* 二分图点染色:这题就是将点分成两个集合就可以了,点染色用dfs做, 剩下的点放到点少的集合里去 官方解答:首先二分图可以分成两类点X和Y, 完全二分图的边数就是|X|*|Y|.我们的 ...
随机推荐
- react安装极其了解
全局安装react脚手架工具 首先全局进行安装:cnpm install create-react-app -g 查看是否安装完成:create-react-app 创建react项目:create- ...
- React报错 :browserHistory doesn't exist in react-router
由于版本问题,React中history不可用 import { hashHistory } from 'react-router' 首先应该导入react-router-dom包: import { ...
- 新装Ubuntu后的一些配置
一:Ubuntu 16.04 开启root用户和使用root用户登陆 1. 编辑/etc/lightdm/lightdm.conf autologin-guest=false autologin-us ...
- GVIM——简直美如画,有没有!
"========================================== " Author: wklken " Version: 9.1 " Em ...
- 洛谷P3371单源最短路径SPFA算法
SPFA同样是一种基于贪心的算法,看过之前一篇blog的读者应该可以发现,SPFA和堆优化版的Dijkstra如此的相似,没错,但SPFA有一优点是Dijkstra没有的,就是它可以处理负边的情况. ...
- <%%>用法初步认识
<%%>是用于向客户端插入服务器代码所使用的一种标记 例如为了在HTML页面上展示由服务器提供的当前用户的某条信息或名字等便可使用 前台 <a href="home.asp ...
- LAMP PHP 详解
目录 LAMP PHP 详解 LAMP 请求流程与原理 PHP 简介 PHP Zend Engine Opcode php 配置详解 php 加速器 部署LAMP 使用 php 连接 mysql 最基 ...
- HTTP协议原理
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP).通过使用网页浏览器.网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80).我们称这个客户 ...
- Table 分页处理
介绍两种table分页处理:PHP分页 和 js(jquery.table)分页. 一:jquery.table: 1:下载两个文件:table_jui.css 和 jquery.dataTables ...
- 模拟:HDU1034-Candy Sharing Game
解题心得: 1.直接模拟每一次分一半就行了,模拟过程,记录轮数,但是也看到有些大神使用的是链表,估计链表才是真的做法吧. 题目: Candy Sharing Game Time Limit: 2000 ...