POJ 2671 Jimmy's Bad Day ★ (区间DP)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MID(x,y) ((x+y)>>1)
using namespace std;
typedef long long LL;const int sup = 1000000000;
const int N = 310;
int l[N][N], r[N][N], w[N][N];
int clock_time[N];
int anti_clock_time[N];
int time[N], num[N];
void init(int n){clock_time[0] = 0;for (int i = 1; i < N; i ++){clock_time[i] = clock_time[i-1] + time[i-1];}anti_clock_time[n] = 0;for (int i = n - 1; i >= 0; i --){anti_clock_time[i] = anti_clock_time[i+1] + time[i];}for (int i = 0; i < n; i ++){w[i][i] = num[i];for (int j = i + 1; j < n; j ++)w[i][j] = w[i][j-1] + num[j];}for (int i = 0; i < n; i ++)for (int j = 0; j < n; j ++){if (i == j){l[i][j] = 0;r[i][j] = 0;}else{l[i][j] = sup;r[i][j] = sup;}}return ;
}
int main(){int n;while(scanf("%d", &n) == 1){if (n == 0)break;for (int i = 0; i < n; i ++)scanf("%d%d", &num[i], &time[i]);num[n] = time[n] = 0;n ++;init(n);for (int k = 1; k < n; k ++){for (int i = 0; i + k < n; i ++){int j = i + k;l[i][j] = min(l[i+1][j] + time[i] * w[i+1][j], r[i+1][j] + (clock_time[i] + anti_clock_time[j]) * w[i+1][j]);r[i][j] = min(r[i][j-1] + time[j-1] * w[i][j-1], l[i][j-1] + (clock_time[i] + anti_clock_time[j]) * w[i][j-1]);}}printf("%d\n", min(l[0][n-1], r[0][n-1]));}return 0;
}
转载于:https://www.cnblogs.com/AbandonZHANG/archive/2013/03/12/4114009.html
POJ 2671 Jimmy's Bad Day ★ (区间DP)相关推荐
- 【POJ - 1651】Multiplication Puzzle(区间dp)
题干: The multiplication puzzle is played with a row of cards, each containing a single positive integ ...
- poj 3186 Treats for the Cows (区间dp)
题意:给你一个序列,每次只能从头或为取数,然后乘以这是第几个数,最后加和,是加和最大 思路:假设长度最开始是1,然后依次枚举长度,以及起点,dp[i][j]是又里面的两端点扩出来的(ps:代码不是这么 ...
- POJ 2955 Brackets (区间DP)
题目链接:http://poj.org/problem?id=2955 Brackets Time Limit: 1000MS Memory Limit: 65536K Total Submiss ...
- POJ 3186Treats for the Cows(区间DP)
题目链接:http://poj.org/problem?id=3186 题目大意:给出的一系列的数字,可以看成一个双向队列,每次只能从队首或者队尾出队,第n个出队就拿这个数乘以n,最后将和加起来,求最 ...
- POJ 1651 Multiplication Puzzle(类似矩阵连乘 区间dp)
传送门:http://poj.org/problem?id=1651 Multiplication Puzzle Time Limit: 1000MS Memory Limit: 65536K T ...
- poj 1141(区间dp+打印路径)
题意: 定义合法的括号序列如下: 1 空序列是一个合法的序列 2 如果S是合法的序列,则(S)和[S]也是合法的序列 3 如果A和B是合法的序列,则AB也是合法的序列 例如:下面的都是合法的括号序列 ...
- poj 3280(简单区间dp)
题意:将一个字符串转换成回文串的最小花费. 解题思路:简单的区间dp,dp[i][j]表示从i到j的字符串转换成回文串的最小化费. #include<iostream> #include& ...
- POJ 1191 棋盘分割(区间DP)题解
题意:中文题面 思路:不知道直接暴力枚举所有情况行不行... 我们可以把答案转化为 所以答案就是求xi2的最小值,那么我们可以直接用区间DP来写.设dp[x1][y1][x2][y2][k]为x1 y ...
- POJ 2176 Folding(区间DP)
题意:给你一个字符串,请把字符串压缩的尽量短,并且输出最短的方案. 例如:AAAAA可压缩为5(A), NEERCYESYESYESNEERCYESYESYES可压缩为2(NEERC3(YES)). ...
最新文章
- mysql提取数据字符_如何从MySQL查询的字符串中提取数值?
- 各种语言下 static 详解
- Bootstrap File Input 真正 解决跨域问题
- python将索引升序_程序在Python中按升序删除元素后获取列表的索引
- fota mcsync洛达检测_【科普篇】华强北洛达1536U芯片下的苹果Airpods,与正品差距还有多少...
- matlab图像显示时间,请问怎么把样点数变成时间显示在图像了里
- OSGi:进入微服务架构的门户
- Bootstrap按钮的外观
- linux安装tomcat_Linux云服务器安装jdk、Tomcat、MySQL5.7 - 咸鱼落成
- 四川麻将java_四川麻将纯AI算法------最优拆牌
- Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
- Mybatis框架(一):一步步编写入门Mybatis程序(内附Mybatis各种配置文件)
- 生日祝福小程序_手边小程序新年祝福插件正式上线
- 基于数据库的企业内部邮件系统的设计
- H264视频压缩算法
- 页面自动更新(javascript)
- 蓄电池放电容量测试方法——TFN DC-E60150蓄电池放电容量测试仪
- DIV布局——化妆品商城-功能齐全(43页) HTML+CSS+JavaScript web大作业 静态网页
- 十分钟拥有你的私人博客!使用readthedocs和mkdocs完成你的文档托管。
- UMEditor配置