poj-openjudge 1037:City Metro 解题报告
来源:互联网 发布:淘宝黑暗之魂3 编辑:程序博客网 时间:2024/06/05 23:58
题目
2013北大校赛总结
题意:
某城公交有n个车站,每天发m趟车(单向),行走时间及顺序均固定。
有p个乘客,告诉你他们到达某个车站等车的时间,需要你安排m趟车,使得他们都能上车,并且总的等待时间最短。
解法:
将所有乘客的之间转换成假如一道车站就上车那么到终点站的时间。然后对这个时间数组进行排序,然后我们就要将数组分成m个区间,每个区间表示区间里的乘客乘同一辆车。
剩下的就简单了,一个二维dp[i][j],表示第i个乘客是第j趟车的最后一个乘客,用前缀和可以很快的转移。
注意车可能在负的时间开出。
Time:0msMemory:252kBLength:1188 B#include <iostream>#include <cstdio>#include <queue>#include <cmath>#include <cstring>#include <algorithm>#define EPS 1e-3#define MAXN 210#define INF 1000000009using namespace std;int sum[MAXN],per[MAXN];int len[MAXN];int dp[110][100];int main(){ //freopen("C:\\Documents and Settings\\k99\\My Documents\\input.txt","r",stdin); int t,n,m,p,s; scanf("%d",&t); while(t--) { scanf("%d%d%d",&n,&m,&p); for(int i=0;i<n-1;++i) scanf("%d",&len[i]); for(int i=n-2;i>=0;--i) len[i]+=len[i+1]; for(int i=1;i<=p;++i) scanf("%d%d",&s,&per[i]),per[i]+=len[s-1]; for(int i=0;i<=p;++i) for(int j=0;j<=m;++j) dp[i][j]=INF; sort(per+1,per+p+1); sum[0]=0; for(int i =1;i<=p;++i) sum[i]=sum[i-1]+per[i]; dp[0][0]=0; for(int i=1;i<=p;++i) for(int j=1;j<=m;++j) for(int ii=0;ii<i;++ii) dp[i][j]=min((long long)dp[i][j],dp[ii][j-1]+(long long)(i-ii)*per[i]-sum[i]+sum[ii]); printf("%d\n",dp[p][m]); } return 0;}
- poj-openjudge 1037:City Metro 解题报告
- poj-openjudge 1041 For Short 解题报告
- poj-openjudge 1043:Bomb! 解题报告
- poj-openjudge 1042:Moles 解题报告
- openjudge 1835 解题报告
- poj-openjudge 1039:Keine's Problem 解题报告
- poj-openjudge 1040:Bamboo Forest of the Lost 解题报告
- poj 1037解题报告
- 1119. Metro 解题报告 URAL
- 3277 City Horizon 解题报告
- 【Noi OpenJudge】 核电站 解题报告
- 【解题报告】openjudge poj 数算mooc 第八周 内排序 数组取数
- 【解题报告】poj openjudge 拼写检查 pku数算mooc 检索
- Hacker Rank: Gridland Metro解题报告
- HDU 4252 A Famous City 解题报告
- HDU 4496 D-City 解题报告
- UVALive 5862 City Travel 解题报告
- 【Jason's_ACM_解题报告】City Game
- 安卓开发中常见错误1
- spring2.5+hibernate3.3整合时,sessionFactory创建时连接数据库配制的几种方式
- fedora18下配置nginx+php
- 求素数
- oracle数据库创建备份与恢复 脚本
- poj-openjudge 1037:City Metro 解题报告
- DSP 定点与浮点的区别
- 电容、三极管 笔记
- 九度OJ 1052 找x
- oracle常用的sql命令
- 算法导论第9章(o(3n/2)时间内找出最大最小值)
- Android 个人学习笔记之--- DOM解析XML文件
- 让/etc/profile文件修改后立即生效
- 素数幻方