hdu 6044 : Limited Permutation (2017 多校第一场 1012) 【输入挂 组合数学】
参考博客:
http://blog.csdn.net/jinglinxiao/article/details/76165353
http://blog.csdn.net/qq_31759205/article/details/76146845
#include<bits/stdc++.h> using namespace std; typedef long long LL; //========================================================= namespace IO { const int MX = 4e7; //1e7占用内存11000kb char buf[MX]; int c, sz; void begin() { c = ; sz = fread(buf, , MX, stdin); } inline bool read(int &t) { ')) c++; if(c >= sz) return false; ; , c++; ; c < sz && + buf[c] - '; if(flag) t = -t; return true; } } //========================================================= ; ; LL fac[M+]; //阶乘 LL inv_of_fac[M+]; //阶乘的逆元 LL qpow(LL x,LL n) { LL ret=; ) { ) ret=ret*x%mod; x=x*x%mod; } return ret; } void init() { fac[]=; ; i<=M; i++) fac[i]=fac[i-]*i%mod; inv_of_fac[M]=qpow(fac[M],mod-); ; i>=; i--) inv_of_fac[i]=inv_of_fac[i+]*(i+)%mod; } LL C(LL a,LL b) { ||a<b) ; return fac[a]*inv_of_fac[b]%mod*inv_of_fac[a-b]%mod; } //========================================================= struct node { int l,r,id; bool operator<(const node& rhs)const { return l<rhs.l||l==rhs.l&&r>rhs.r; } }a[M]; int mark,rear,n; LL dfs(int l,int r) { ; ; if(a[rear].l!=l||a[rear].r!=r) { mark=; ; } node cur=a[rear++]; LL ret=C(cur.r-cur.l,cur.id-cur.l); ret=ret*dfs(cur.l,cur.id-)%mod; ret=ret*dfs(cur.id+,cur.r)%mod; return ret; } int main() { init(); ; IO::begin(); while(IO::read(n)) { ;i<=n;i++) IO::read(a[i].l); ;i<=n;i++) IO::read(a[i].r),a[i].id=i; sort(a+,a++n); mark=,rear=; printf(, n)); } }
hdu 6044 : Limited Permutation (2017 多校第一场 1012) 【输入挂 组合数学】的更多相关文章
- HDU 6044 - Limited Permutation | 2017 Multi-University Training Contest 1
研究一下建树 : /* HDU 6044 - Limited Permutation [ 读入优化,笛卡尔树 ] | 2017 Multi-University Training Contest 1 ...
- hdu 6035:Colorful Tree (2017 多校第一场 1003) 【树形dp】
题目链接 单独考虑每一种颜色,答案就是对于每种颜色至少经过一次这种的路径条数之和.反过来思考只需要求有多少条路径没有经过这种颜色即可. 具体实现过程比较复杂,很神奇的一个树形dp,下面给出一个含较详细 ...
- HDU 6044 Limited Permutation 读入挂+组合数学
Limited Permutation Problem Description As to a permutation p1,p2,⋯,pn from 1 to n, it is uncomplica ...
- HDU 6044 Limited Permutation(搜索+读入优化)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6044 [题目大意] 给出两个序列li,ri,现在要求构造排列p,使得对于区间[li,ri]来说, ...
- HDU 6041 I Curse Myself(点双联通加集合合并求前K大) 2017多校第一场
题意: 给出一个仙人掌图,然后求他的前K小生成树. 思路: 先给出官方题解 由于图是一个仙人掌,所以显然对于图上的每一个环都需要从环上取出一条边删掉.所以问题就变为有 M 个集合,每个集合里面都有一堆 ...
- hdu 5289 Assignment(2015多校第一场第2题)RMQ+二分(或者multiset模拟过程)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5289 题意:给你n个数和k,求有多少的区间使得区间内部任意两个数的差值小于k,输出符合要求的区间个数 ...
- hdu 6055 : Regular polygon (2017 多校第二场 1011) 【计算几何】
题目链接 有个结论: 平面坐标系上,坐标为整数的情况下,n个点组成正n边形时,只可能组成正方形. 然后根据这个结论来做. 我是先把所有点按照 x为第一关键字,y为第二关键字 排序,然后枚举向量 (p[ ...
- HDU-6035 Colorful Tree(树形DP) 2017多校第一场
题意:给出一棵树,树上的每个节点都有一个颜色,定义一种值为两点之间路径中不同颜色的个数,然后一棵树有n*(n-1)/2条 路径,求所有的路径的值加起来是多少. 思路:比赛的时候感觉是树形DP,但是脑袋 ...
- hdu 6047: Maximum Sequence (2017 多校第二场 1003)【贪心】
题目链接 可以贪心写,先把b数组按从小到大的顺序排个序,根据b[i]的值来产生a[n+i] 借助一个c数组,c[i]记录,j从i到n,a[j]-j的最大值,再加上一个实时更新的变量ma,记录从n+1到 ...
随机推荐
- ora600
4节点RAC:版本oracle11.2.0.4 22:20——23:40发生ora600 alert日志: Errors in file /u01/app/oracle/diag/rdbms/orcl ...
- C# Oledb 连接Access数据库字符串
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbFile + ";Persist ...
- springboot定时任务出错 Unexpected use of scheduler.
java.lang.IllegalStateException: Unexpected use of scheduler. 在启动类加: @Bean public ThreadPoolTaskSche ...
- Prometheus Alertmanager Grafana 监控警报
Prometheus Alertmanager Grafana 监控警报 #node-exporter, Linux系统信息采集组件 #prometheus , 抓取.储存监控数据,供查询指标 #al ...
- GMSSL学习总结1
接触GMSSL一段时间了,总结一点点想法 证书:DER格式.PEM格式 .DER = DER扩展用于二进制DER编码证书. .PEM = PEM扩展用于不同类型的X.509v3文件,是以“ - BEG ...
- java Map与Bean相互转化
import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector ...
- Mybatis-学习笔记(1)SqlSessionFactory、SqlSession、Mybatis配置文件configuration的属性标签
1.mybatis引入项目,只需要引入mybatis-x.x.x.jar包即可. (当然数据库驱动的引入必不可少) 2.SqlSessionFactory 由SqlSessionFactoryBuil ...
- 单调栈 && 洛谷 P2866 [USACO06NOV]糟糕的一天Bad Hair Day(单调栈)
传送门 这是一道典型的单调栈. 题意理解 先来理解一下题意(原文翻译得有点问题). 其实就是求对于序列中的每一个数i,求出i到它右边第一个大于i的数之间的数字个数c[i].最后求出和. 首先可以暴力求 ...
- Linux快速访问多个目录
Linux下实现多个目录之间快速切换 dirs -v # 显示栈目录dirs -c # 清空栈目录 pushd # 加入当前目录pushd director # 加入指定目录pushd +/-i ...
- JVM — 类加载机制
1. 引言 java 类被虚拟机编译之后成为一个 Class 的字节码文件,该字节码文件中包含各种描述信息,最终都需要加载到虚拟机中之后才能运行和使用.那么虚拟机是如何加载这些 Class 文件?Cl ...