bzoj4584
escription
Input
第一行包括一个整数N,表示学校的数量。接下来N行,每行包括两个正整数,用来描述一所学校。其中第行包括的
Output
输出一行,一个整数,表示所有可能的派出划艇的方案数除以1,000,000,007得到的余数
Sample Input
1 2
2 3
Sample Output
#include<bits/stdc++.h>
using namespace std;
const int mod=;
#define ll long long
#ifdef ONLINE_JUDGE
char *TT,*mo,but[(<<)+];
#define getchar() ((TT==mo&&(mo=(TT=but)+fread(but,1,1<<15,stdin)),TT==mo)?0:*TT++)
#endif
inline int read(){
int x=,c=,f=;
for(;c<''||c>'';c=getchar())f=c!='-';
for(;c>=''&&c<='';c=getchar())x=x*+c-'';
return f?x:-x;
}
int dp[][];
int p[];
int len[];
int inv[];
int a[],b[];
int d[];
int cnt;
int ct[];
int n;
int main(){
n=read();
register int i,j,k;
for(i=;i<=n;i++)a[i]=read()-,b[i]=read();
for(i=;i<=n;i++){
d[++cnt]=a[i];
d[++cnt]=b[i];
}
sort(d+,d+cnt+);
cnt=unique(d+,d+cnt+)-d-;
for(i=;i<=cnt;i++){
len[i-]=d[i]-d[i-];
}
inv[]=;
for(i=;i<=n;i++)inv[i]=1ll*inv[mod%i]*(mod-mod/i)%mod;
for(i=;i<=n;i++)a[i]=lower_bound(d+,d+cnt+,a[i])-d,b[i]=lower_bound(d+,d+cnt+,b[i])-d;
for(i=;i<cnt;i++)p[i]=; for(i=;i<=n;++i){
for(j=a[i];j<b[i];++j){
ct[j]++;
for(k=ct[j];k>=;--k){
dp[j][k]=(dp[j][k]+1ll*dp[j][k-]*(len[j]+-k)%mod*inv[k]%mod)%mod;
}
dp[j][]=(dp[j][]+1ll*p[j-]*len[j])%mod;
}
for(j=a[i];j<cnt;++j){
p[j]=p[j-];
for(k=;k<=ct[j];k++)
p[j]=(p[j]+dp[j][k])%mod;
}
}
cout<<p[cnt-]-;
return ;
}
bzoj4584的更多相关文章
- 【BZOJ4584】[Apio2016]赛艇 DP
[BZOJ4584][Apio2016]赛艇 Description 在首尔城中,汉江横贯东西.在汉江的北岸,从西向东星星点点地分布着个划艇学校,编号依次为到.每个学校都拥有若干艘划艇.同一所学校的所 ...
- BZOJ4584 APIO2016赛艇(动态规划+组合数学)
如果值域不大,容易想到设f[i][j]为第i个学校选了j的方案数,枚举上一个学校是哪个选了啥即可,可以前缀和优化.于是考虑离散化,由于离散化后相同的数可能可以取不同的值,所以枚举第一个和其所选数(离散 ...
- BZOJ4584 : [Apio2016]赛艇
首先将值域离散化成$O(n)$个连续段. 设$f[i][j][k]$表示第$i$个学校派出的数量在第$j$个连续段,在第$j$个连续段一共有$k$个学校的方案数.用组合数以及前缀和转移即可. 时间复杂 ...
- BZOJ4584 & 洛谷3643 & UOJ204:[APIO2016]划艇——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4584 https://www.luogu.org/problemnew/show/P3643 ht ...
- 编写html页面时常见的问题(一)
说到写页面,肯定有很多人在刚接触编写页面这一块时遇到很多细节和兼容性的问题,那么在这里我总结一些经常遇到的小问题.希望能够帮助学习页面搭建的初学者! 虽然说ie6很多公司都已经抛弃,但是个人认为,初学 ...
随机推荐
- Python接口测试实战4(上) - 接口测试框架实战
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- 杂谈微服务架构下SSO&OpenAPI访问的方案。
本篇杂谈下微服务架构下WEB应用的浏览器与OpenAPI访问架构与方案.读者可对比传统架构下应用的此话话题的区别.或者有其它方案的欢迎交流
- openstack golang sdk使用
1. go get github.com/gophercloud/gophercloud import ( "github.com/gophercloud/gophercloud" ...
- MySQL 中的数据类型介绍
1.MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 2.数值类型(12) 2.1. ...
- PHP autoload与spl_autoload自动加载机制的深入理解
PHP autoload与spl_autoload自动加载机制的深入理解 作者: 字体:[增加 减小] 类型:转载 时间:2013-06-05我要评论 本篇文章是对PHP中的autoload与spl_ ...
- 《我是一只IT小小鸟》 读书笔记
<我是一只IT小小鸟>讲述了IT人员的成长经历,邀请了许多名IT行业的职员,学生,研究生写了自己的亲身经历和人生感悟,以书中可以看到我国IT行业的快速进步,以及看到IT员在这条道路上的坎坷 ...
- C++ Primer Plus学习:第十章
过程性编程和面向对象编程 面向对象编程(OOP)的特性: 抽象 封装和数据隐藏 多态 继承 代码的可重用性 抽象和类 类是一种将抽象转化为用户定义类型的C++工具,它将数据表示和操纵数据的方法合成一个 ...
- iOS- 全方位解析.crash文件崩溃报告
1.前言 想来每个iOS攻城狮,都免不了要接触.crash文件 那么什么是.crash文件? iOS app的所有崩溃记录都会记录在设备上,所以对于和我一样没有集成让用户发送崩溃报告功能的iOS开发者 ...
- 使用Python 、 go 语言测试rabbitmq的工作机制
1:在haproxy 和 rabbitmq上安装Python.python2-pip,默认是Python2 yum install -y python python2-pip 2:在haproxy ...
- QCryptographicHash实现哈希值计算,支持多种算法
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QCryptographicHash实现哈希值计算,支持多种算法 本文地址:http: ...