当前位置: 首页 > news >正文

CF1295F Good Contest/[APIO2016] 划艇

挺有意思一道题。

直接暴力肯定不行,考虑把区间离散化了,拆成若干左闭右开区间,\(f_{i, j}\) 表示 \(i\) 在第 \(j\) 个区间里,转移考虑枚举上一个不和 \(i\) 在同个区间的数 \(k\), 则 \([k + 1, i]\) 在一个区间里,相当于把 \(i - k\) 分配成 \(len_j\) 组,每组可以为空,方案数为 \(\dbinom{len_j + i - k - 1}{i - k}\),前缀和优化一下就是 \(\mathcal{O}(n^3)\) 的了。

然后再看其双倍经验 [APIO2016] 划艇。

这里可以不选但是要求严格单增,相当于 \(000000123\dots len\) 里面选 \(cnt\) 个数,其中 \(0\)\(cnt\) 个,则答案也是 \(\dbinom{len_j + cnt - 1}{cnt}\),非常奇妙!

给一下后者代码:

点击查看代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
// typedef __int128 i128;
typedef pair<int, int> pii;
const int N = 5e2 + 10, mod = 1e9 + 7;
template<typename T>
void dbg(const T &t) { cout << t << endl; }
template<typename Type, typename... Types>
void dbg(const Type& arg, const Types&... args) {cout << arg << ' ';dbg(args...);
}
namespace Loop1st {
int n, tot;
ll l[N], r[N], c[N << 1], f[N], g[N], fac[N];
ll qpow(ll a, ll b) {ll res = 1;for (; b; b >>= 1, a = a * a % mod) if (b & 1) res = res * a % mod;return res;
}
void main() {cin >> n;fac[0] = 1;for (int i = 1; i <= n; i++) fac[i] = fac[i - 1] * i % mod;for (int i = 1; i <= n; i++) {cin >> l[i] >> r[i]; r[i]++;c[++tot] = l[i]; c[++tot] = r[i];}sort(c + 1, c + tot + 1); tot = unique(c + 1, c + tot + 1) - c - 1;for (int i = 1; i <= n; i++) {l[i] = lower_bound(c + 1, c + tot + 1, l[i]) - c;r[i] = lower_bound(c + 1, c + tot + 1, r[i]) - c;}f[0] = 1;for (int i = 1; i < tot; i++) {ll len = c[i + 1] - c[i];g[0] = 1;for (int j = 1; j <= n; j++) g[j] = g[j - 1] * (len + j - 1) % mod * qpow(j, mod - 2) % mod;for (int j = n; j; j--) if (l[j] <= i && i < r[j]) {for (int k = j - 1, cnt = 1; ~k; k--) {f[j] = (f[j] + f[k] * g[cnt] % mod) % mod;if (l[k] <= i && i < r[k]) cnt++; // [k + 1, i] 在这个区间里}}}ll ans = 0;for (int i = 1; i <= n; i++) ans = (ans + f[i]) % mod;cout << ans << '\n';
}}
int main() {// freopen("data.in", "r", stdin);// freopen("data.out", "w", stdout);ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);int T = 1;// cin >> T;while (T--) Loop1st::main();return 0;
}
http://www.jsqmd.com/news/144690/

相关文章:

  • 郑州家装公司五大推荐:优质装修/别墅装修/老房翻新精选,华埔装饰砸无赦承诺引领行业新风尚 - 深度智识库
  • 基于Spring Boot和Vue.js的房屋出租管理系统设计与实现
  • 2025年12月江苏徐州变压器系列,智能变电站,新能源配套,高低压配电柜,智慧电力系统厂家选择指南 - 2025年品牌推荐榜
  • 2025年门式冲洗装置直销厂家权威推荐榜单:液压水力冲洗门/水力冲洗门/智能控制拍门源头厂家精选 - 品牌推荐官
  • 2025年蠕变持久试验机生产厂家推荐:哪家公司靠谱/国内哪家性价比高/哪个厂家品质好/哪家售后好 - 品牌推荐大师1
  • 上海策划品牌全案公司推荐:4事业部+长期陪跑(案例集) - 品牌排行榜
  • ModelEngine的Aido智能体【娱乐生涯 AI 助手】升级计划——工作流编排精确制导AI应用
  • 哪家上海装修公司口碑最好?21年零投诉实力验证 - 品牌排行榜
  • 告别传统低效!AgentRun 如何用 Serverless + Agent 打造现代化的舆情分析系统?
  • 2025年图书档案标签厂家实力推荐:超高频抗金属标签/耐高温电子标签/rfid标签定制厂家精选 - 品牌推荐官
  • 学长亲荐9个AI论文工具,研究生轻松搞定开题报告!
  • 西门子模拟量处理程序块:滤波峰值,便捷调用报警功能,适用于博图V15及以上版本
  • c# 递归算法
  • 模型没挂,是我自己把系统搞死的
  • 2025升降机厂家TOP10推荐 国内靠谱品牌榜单出炉,苏州卓高9.99分登顶 - 品牌智鉴榜
  • 基于结构特征与神经网络特征融合的手写汉字评价模型研究
  • OpenCSG社区:激发城市AI主权创新引擎
  • 深耕用户体验,「呵汤」年度会员聚会举办在即 - 资讯焦点
  • 2025年亚麻油灌装机厂家实力推荐:大豆油灌装机/导热油灌装机/机油灌装机源头厂家精选 - 品牌推荐官
  • 2025年内浮盘厂家权威推荐榜:油罐内浮盘/储罐内浮盘/不锈钢内浮盘源头厂家精选 - 品牌推荐官
  • 自动化测试报告设计分享
  • 新手前端必看:5分钟搞懂IIFE的作用与实战妙用
  • 12.24模拟赛
  • 2025年脱硝喷射器厂家实力推荐:衬四氟喷射器/消石灰喷射器/酸碱喷射器源头厂家精选 - 品牌推荐官
  • 2025年12月市政管道、波纹管、骨架管、给水管、电力管厂家推荐 - 2025年品牌推荐榜
  • 【golang】goland使用多版本go sdk的方法
  • 2025年市面上头部仓库货架生产商排行榜,中型货架/仓库货架/层板货架/重型货架/自动化立体库货架,仓库货架供货厂家排名 - 品牌推荐师
  • 2025品牌咨询全案公司哪家专业:120工具+56模块防坑指南 - 品牌排行榜
  • 超时宏定义
  • 17、做中学 | 初三下期 Golang档案操作