https://www.luogu.com.cn/problem/P3643

经典题

把范围离散化后转移可以做到 O ( n 3 ) O(n^3) O(n3)

方案数可以用用组合数计算

code:


#include<bits/stdc++.h>
#define mod 1000000007
#define N 2005
#define ll long long
using namespace std;
int n, a[N], b[N], c[N], gs;
ll f[N], C[N], inv[N];
int main() {scanf("%d", &n);inv[1] = 1;for(int i = 2; i <= n; i ++) inv[i] = (mod - mod / i) * inv[mod % i] % mod;for(int i = 1; i <= n; i ++) scanf("%d%d", &a[i], &b[i]), c[++ gs] = a[i], c[++ gs] = b[i] + 1;sort(c + 1, c + 1 + gs);gs = unique(c + 1, c + 1 + gs) - c - 1;for(int i = 1; i <= n; i ++) {a[i] = lower_bound(c + 1, c + 1 + gs, a[i]) - c;b[i] = lower_bound(c + 1, c + 1 + gs, b[i] + 1) - c;}C[0] = f[0] = 1;for(int j = 1; j < gs; j ++) {int len = c[j + 1] - c[j];for(int i = 1; i <= n; i ++) C[i] = C[i - 1] * (len + i - 1) % mod * inv[i] % mod;for(int i = n; i >= 1; i --) if(a[i] <= j & j + 1 <= b[i]) {int s = 1;for(int k = i - 1; k >= 0; k --) {(f[i] += f[k] * C[s] % mod) %= mod;if(a[k] <= j && j + 1 <= b[k]) s ++;}}}ll ans = 0;for(int i = 1; i <= n; i ++) ans = (ans + f[i]) % mod;printf("%lld", ans);return 0;
}

luogu P3643 [APIO2016]划艇相关推荐

  1. [APIO2016]划艇

    [APIO2016]划艇 总共只有2*n段.分段进行DP 简单的方法是: 外层枚举段数j,f[i]表示,当前枚举到j的时候,以(i,j)结尾(必须选择(i,j))的方案数,枚举一个f(p,1~j-1) ...

  2. [APIO2016] 划艇(dp + 组合数 + 前缀和优化)

    problem luogu-P3643 solution 有个显然的暴力 dpdpdp.设 dp(i,j):dp(i,j):dp(i,j): 到了第 iii 个学校,其参加且派出 jjj 个划艇的方案 ...

  3. luogu P3642 [APIO2016]烟火表演

    https://www.luogu.com.cn/problem/P3642 好毒瘤啊!!! 首先按照套路 设f(x)表示以u为根的,距离为x的最小代价设f(x)表示以u为根的,距离为x的最小代价设f ...

  4. Educational Codeforces Round 81 (Rated for Div. 2) F.Good Contest \ 洛谷 划艇 组合 计数dp

    cf传送门 P3643 [APIO2016]划艇 文章目录 题意: 思路: 题意: aia_iai​在[li,ri][l_i,r_i][li​,ri​]等概率随机选一个数,求aaa数组不增的概率. 思 ...

  5. 2020.7月做题记录

    转眼就到了2020的下半年了-前方仍是一片茫然. 长期计划 prufer 序列 2020.07.02-2020.07.04 Problem Finished P2624 [HNOI2008]明明的烦恼 ...

  6. 「APIO2016」划艇 (dp+组合数+区间离散化)(考试)

    题干: 在首尔城中,汉江横贯东西.在汉江的北岸,从西向东星星点点地分布着 N 个划艇学校,编号依次为 1 到 N.每个学校都拥有若干艘划艇.同一所学校的所有划艇颜色相同,不同的学校的划艇颜色互不相同. ...

  7. 【APIO2016】划艇

    Description 在首尔城中,汉江横贯东西.在汉江的北岸,从西向东星星点点地分布着个划艇学校,编号依次为到.每个学校都拥有若干艘划艇.同一所学校的所有划艇颜色相同,不同的学校的划艇颜色互不相同. ...

  8. [Luogu P3642] [BZOJ 4585] [APIO2016]烟火表演

    洛谷传送门 BZOJ传送门 题目描述 烟花表演是最引人注目的节日活动之一.在表演中,所有的烟花必须同时爆炸.为了确保安全,烟花被安置在远离开关的位置上,通过一些导火索与开关相连.导火索的连接方式形成一 ...

  9. luogu P1549 棋盘问题(2) 题解

    luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...

最新文章

  1. 继Facebook开源PyTorch3D后,谷歌开源TensorFlow 3D场景理解库
  2. Django_ORM数据表查询总结
  3. JavaBean网页电子时钟
  4. Python格式化字符串f-string常用用法
  5. python cocos2dx_cocos2dx 3.0 环境搭建、项目编译于运行
  6. C++静态成员总结(转)
  7. C# 如何理解如下泛型约束 class AT:where T:class{}
  8. 介绍几个能下载中英文双语字幕电影的网站
  9. PointCNN程序简介
  10. Matlab中的fspecial函数
  11. tomcat中的过滤器
  12. 机器学习中的概率分布
  13. nRF53832开发环境搭建
  14. 【牛腩新闻】——首页图片加载不出来
  15. vc调用浏览器打开指定网址页面
  16. mac 不显示 外接屏幕_苹果电脑外接显示器显示不出来 - 卡饭网
  17. 宅男福利!爬虫实战,爬取原神真人c图片并保存,谁的老婆快抱走
  18. 群聊比单聊,为什么复杂这么多?
  19. Tomcat 学习笔记
  20. yocto(五)——构建SDK及添加工具链

热门文章

  1. 【Android开发】自定义圆角button样式
  2. 全国计算机数字图形图像应用技术等级二级,全国计算机数字图形图像应用技术等级考试一级...
  3. 2022资料员-岗位技能(资料员)考试题模拟考试题库及在线模拟考试
  4. linux下wma转换mp3统一音量的方法
  5. 如何将计算机调整为英语,怎么把电脑设置为英文版的系统
  6. 利用随机方法得到一个随机验证码 #java
  7. Buyou:让你在iPad上轻松购物
  8. 想知道思维导图怎么写?手把手教你制作
  9. Locally Differential Private Frequency Estimation with Consistency: LDP的主流后处理算法
  10. android手机内存创建文件夹,Android在内存问题中创建文件夹