BZOJ 4584 luogu P3643: [Apio2016]赛艇
4584: [Apio2016]赛艇
Time Limit: 70 Sec Memory Limit: 256 MB
[Submit][Status][Discuss]
Description
Input
第一行包括一个整数N,表示学校的数量。接下来N行,每行包括两个正整数,用来描述一所学校。其中第行包括的
Output
输出一行,一个整数,表示所有可能的派出划艇的方案数除以1,000,000,007得到的余数
Sample Input
1 2
2 3
Sample Output
HINT
Source
看dalao博客弄懂的 链接
#include<bits/stdc++.h> using namespace std; const long long INF = ; const int MAXN = ;
long long n, p, top, ans;
long long inv[MAXN];
long long a[MAXN], b[MAXN], l[MAXN], r[MAXN];
long long h[MAXN + MAXN];
long long C[MAXN], g[MAXN];
map<long long, int> k; template <typename tn> void read (tn & a) {
tn x = , f = ; char c = getchar();
while (c < '' || c > '') { if (c == '-') f = -; c = getchar(); }
while (c >= '' && c <= '') { x = x * + c - ''; c = getchar(); }
a = f == ? x : -x;
} void get_inv() {
inv[] = ;
for (int i = ; i <= n; ++i) {
inv[i] = - ( inv[INF % i] * (INF / i) ) % INF;
while (inv[i] < ) inv[i] += INF;
}
} int main() {
read(n);
get_inv();
for (int i = ; i <= n; ++i) {
read(a[i]);
read(b[i]);
++b[i];
h[i + i - ] = a[i];
h[i + i] = b[i];
}
sort(h + , h + + n + n);
top = unique(h + , h + n + n + ) - h - ;
for (int i = ; i <= top; ++i) {
k[h[i]] = i;
}
for (int i = ; i <= n; ++i) {
l[i] = k[a[i]];
r[i] = k[b[i]];
}
// cout << top << "\n";
// for (int i = 1; i <= top; ++i) cout << h[i]<<" ";
// for (int i = 1; i <= n; ++i) cout << l[i]<<" "<<r[i]<<"\n";
g[] = ;
for (int j = ; j <= top; ++j) {
int L = h[j + ] - h[j];
C[] = ;
// cerr<<"j = "<<j<<"\n";
for (int i = ; i <= n; ++i) {
C[i] = C[i - ] * (L + i - ) % INF * inv[i] % INF;
// cerr<<i<<" "<<C[i]<<"\n";
}
for (int i = n; i > ; --i) {
if (l[i] <= j && r[i] > j) {
long long f = , m = , c = L;
for (int p = i - ; p >= ; --p) {
f = (f + c * g[p]) % INF;
if (l[p] <= j && r[p] >= j + ) {
c = C[++m];
}
}
g[i] = (g[i] + f) % INF;
}
}
}
for (int i = ; i <= n; ++i) ans = (ans + g[i]) % INF;
printf("%lld\n", ans);
return ;
}
BZOJ 4584 luogu P3643: [Apio2016]赛艇的更多相关文章
- [组合][DP]luogu P3643 [APIO2016]划艇
题面 https://www.luogu.com.cn/problem/P3643 对于一个序列,第i项可取的值在{0}∪[ai,bi]之间,求使序列非零部分单调递增的方案数 分析 设 $f[i][j ...
- 【BZOJ4584】[Apio2016]赛艇 DP
[BZOJ4584][Apio2016]赛艇 Description 在首尔城中,汉江横贯东西.在汉江的北岸,从西向东星星点点地分布着个划艇学校,编号依次为到.每个学校都拥有若干艘划艇.同一所学校的所 ...
- BZOJ 3052/Luogu P4074 [wc2013]糖果公园 (树上带修莫队)
题面 中文题面,难得解释了 BZOJ传送门 Luogu传送门 分析 树上带修莫队板子题... 开始没给分块大小赋初值T了好一会... CODE #include <bits/stdc++.h&g ...
- BZOJ 3931 / Luogu P3171 [CQOI2015]网络吞吐量 (最大流板题)
题面 中文题目,不解释: BZOJ传送门 Luogu传送门 分析 这题建图是显然的,拆点后iii和i′i'i′连容量为吞吐量的边,根据题目要求,111和nnn的吞吐量看作∞\infty∞. 然后用di ...
- BZOJ 3894 / Luogu P4313 文理分科 (拆点最小割)
题面 中文题面- BZOJ 传送门 Luogu 传送门 分析 这道题类似于BZOJ 3774 最优选择,然后这里有一篇博客写的很好- Today_Blue_Rainbow's Blog 应该看懂了吧- ...
- BZOJ 2039 / Luogu P1791 [2009国家集训队]employ人员雇佣 (最小割)
题面 BZOJ传送门 Luogu传送门 分析 考虑如何最小割建图,因为这仍然是二元关系,我们可以通过解方程来确定怎么建图,具体参考论文 <<浅析一类最小割问题 湖南师大附中 彭天翼> ...
- BZOJ 2127 / Luogu P1646 [国家集训队]happiness (最小割)
题面 BZOJ传送门 Luogu传送门 分析 这道题又出现了二元关系,于是我们只需要解方程确定怎么连边就行了 假设跟SSS分在一块是选文科,跟TTT分在一块是选理科,先加上所有的收益,再来考虑如何让需 ...
- [BZOJ 1535] [Luogu 3426]SZA-Template (KMP+fail树+双向链表)
[BZOJ 1535] [Luogu 3426]SZA-Template (KMP+fail树+双向链表) 题面 Byteasar 想在墙上涂一段很长的字符,他为了做这件事从字符的前面一段中截取了一段 ...
- [BZOJ 3295] [luogu 3157] [CQOI2011]动态逆序对(树状数组套权值线段树)
[BZOJ 3295] [luogu 3157] [CQOI2011] 动态逆序对 (树状数组套权值线段树) 题面 给出一个长度为n的排列,每次操作删除一个数,求每次操作前排列逆序对的个数 分析 每次 ...
随机推荐
- leetcode python 032 识别最长合法括号
# 给定一个只包含字符'('和')'的字符串,# 找到最长的有效(格式良好)括号子字符串的长度.# 对于“(()”,最长的有效括号子串是“()”,其长度为2.# 另一个例子是“)()())”,其中最长 ...
- 使用mybatis generator插件,自动生成dao、dto、mapper等文件
mybatis generator 介绍 mybatis generator中文文档http://mbg.cndocs.tk/ MyBatis Generator (MBG) 是一个Mybatis的代 ...
- secondPage
写的第二个页面,参照着别人的代码,网上找寻自己需要的标签,每个小地方都得试许多次才能明白标签的正确使用方法,自己动手写出来一个页面虽然超级粗糙,但是挺有收获的. <!DOCTYPE html&g ...
- WebView性能、体验分析与优化
育新 徐宏 嘉洁 ·2017-06-09 20:03 在App开发中,内嵌WebView始终占有着一席之地.它能以较低的成本实现Android.iOS和Web的复用,也可以冠冕堂皇的突破苹果对热更新的 ...
- python发送邮箱的小项目
import smtplibfrom email.mime.text import MIMEText receiver = input('输入接受者邮箱\n')subject = input('输入标 ...
- 如何在Linux下添加函数库
如何为Linux增加库一. 静态库在Linux下的静态库是以.a为后缀的文件.1. 建静态库h1.c 源文件#include<stdio.h>void hello1(){printf(“t ...
- 数据持久化系列之Mysql
一.命令行操作 1.显示所有库: show databases; 2.要操作某个库,比如库名: db_book:use db_book; 3.查看表的基本结构,比如表名: t_book:desc t_ ...
- day05 字典
今日内容(dict) 1.基本格式 2.独有方法 3.公共 4.强制转换 1.基本格式 字典(可变类型,3.6之后是有序) 帮助用户去表示一个事物的信息(事物是有多个属性) 键值不能为集合,列表,字典 ...
- 会话的保持和form表单
会话的保持和form表单 cookie 设置cookie from django.shortcuts import render, HttpResponse, redirect, reverse de ...
- redis 远程连接出错的解决办法
1. 配置防火墙端口 redis系统的默认端口是6379端口. # 打开端口 $ firewall-cmd --zone=public --add-port=6379/tcp --permanent ...