UVaLive6435(dp)
2024-09-04 12:53:04
要点
- 题意:两个数据传输数列,每个数列里有若干个数据包并给出发出时间\(t\),每个数据包到达的时间\(T\)是\(t <= T < t + D\),问有多少种到达序列。
- 将题目转化为第二个数列插入第一个数列。用第一个数列将时间点划分为\(N+1\)个部分,对于第二数列的每个数据包,预处理它左右范围,即这\(N+1\)个空,它可以插入哪些空。
- \(i\)为第二个数列的第\(i\)个,\(j\)为第一个数列的\(j-1\)和\(j\)的中间空,\(dp[i][j]\)表示把\(i\)插到\(j\)空里的方案数,转移即是保证\(i-1\)在\(i\)的前面某一空即可。
#include <cstdio>
#include <vector>
using std::vector;
typedef long long ll;
const int maxn = 5e4 + 5;
const int mod = 1e9 + 9;
int T, N, M, D;
int a[maxn], b[maxn];
ll dp[maxn][205];
vector<int> v[maxn];
int main() {
scanf("%d", &T);
for (int kase = 1; kase <= T; kase++) {
scanf("%d %d %d", &N, &M, &D);
for (int i = 1; i <= N; i++)
scanf("%d", &a[i]);
for (int i = 1; i <= M; i++)
scanf("%d", &b[i]);
for (int p = 1, i = 1; i <= M; i++) {
v[i].clear();
for (; p <= N && a[p] + D <= b[i]; p++);
for (; p <= N && b[i] + D > a[p]; p++)
v[i].push_back(p);
v[i].push_back(p), p = v[i][0];//p:1~n+1
}
for (int j = 0; j < v[1].size(); j++)
dp[1][j] = 1;
for (int i = 2; i <= M; i++) {
int p = 0;
ll sum = 0LL;
for (int j = 0; j < v[i].size(); j++) {
for (; p < v[i - 1].size() && v[i - 1][p] <= v[i][j]; p++)
sum = (sum + dp[i - 1][p]) % mod;
dp[i][j] = sum;
}
}
ll ans = 0LL;
for (int j = 0; j < v[M].size(); j++)
ans = (ans + dp[M][j]) % mod;
printf("Case #%d: %lld\n", kase, ans);
}
return 0;
}
最新文章
- Unity3D移动平台动态读取外部文件全解析
- BZOJ3223: Tyvj 1729 文艺平衡树 [splay]
- 把cmd信息中的正常和异常输出分别输出到不同txt文件中
- c#定义全局条件编译符号
- javascript设计模式与开发实践阅读笔记(8)——观察者模式
- 深入.NET内测题
- uGUI练习(二) Animate UI
- android onclick onLongClick ontouch dispatchTouchEvent onInterceptTouchEvent
- 349. Intersection of Two Arrays
- matlab 画锥体
- Android studio SweetAlert for Android
- 怎么写jquery插件
- 贝叶斯A/B测试 - 一种计算两种概率分布差异性的方法过程
- ArcGIS Server 10.0 安装及使用完整攻略
- PGCD2 - Primes in GCD Table (Hard)
- Powermock2.0.0 详细 总结
- 异步编程之使用yield from
- Leetcode分类总结(Greedy)
- c# 图像呈现控件PictureBox
- Android系统架构及启动流程
热门文章
- JAVA- 成员变量与局部变量的区别
- tensorflow kmeans 聚类
- 一步完成MySQL向Redis迁移
- codeforces 659F F. Polycarp and Hay(并查集+bfs)
- MyEclipse异常关闭导致启动不了tomcat的解决方法
- ACM学习历程——POJ3468 A Simple Problem with Integers(线段树)
- 3170: [Tjoi 2013]松鼠聚会
- [转载]IOCP模型的总结
- poj2411铺砖——状压DP
- 洛谷P1352——动规