poj 1180 斜率优化DP
来源:互联网 发布:淘宝客云建站怎么样 编辑:程序博客网 时间:2024/05/17 09:28
AC代码如下:
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;int dp[11000];int sumt[11000], sumf[11000];int S, N;int q[11000], head, last;int main(){while( scanf( "%d", &N ) != EOF ){cin >> S;for( int i = 1; i <= N; i++ ){scanf( "%d%d", &sumt[i], &sumf[i] );}sumt[N+1] = sumf[N+1] = 0;for( int i = N; i >= 1; i-- ){sumt[i] += sumt[i+1];sumf[i] += sumf[i+1];}dp[N+1] = 0;q[0] = N + 1;head = last = 0;//dp[N] = ( S + sumt[N] ) * sumf[N];for( int i = N; i >= 1; i-- ){while( head < last && ( dp[q[head+1]] - dp[q[head]] ) <= ( sumt[q[head+1]] - sumt[q[head]] ) * sumf[i] ){head++;}dp[i] = dp[q[head]] + ( S + sumt[i] - sumt[q[head]] ) * sumf[i];while( last > head ){double temp1 = (double)( dp[i] - dp[q[last]] ) / (double)( sumt[i] - sumt[q[last]] );double temp2 = (double)( dp[q[last]] - dp[q[last-1]] ) / (double)( sumt[q[last]] - sumt[q[last-1]] );if( temp1 <= temp2 ){last--;}else{break;}}q[++last] = i;}cout << dp[1] << endl;}return 0;}
0 0
- poj 1180 dp 斜率优化
- poj 1180 斜率优化dp
- poj 1180 斜率优化DP
- poj 1180 Batch Scheduling 斜率优化dp
- poj 1180 Batch Scheduling ( 斜率优化DP )
- poj 1180 Batch Scheduling 斜率优化dp
- poj 1180 dp的斜率优化
- POJ 1180 Batch Scheduling (斜率优化DP)
- POJ - 1180 Batch Scheduling(斜率优化DP)
- poj 1180 Batch Scheduling dp斜率优化
- POJ 2018 斜率优化DP
- POJ 1180 斜率DP
- poj 1180 Batch Scheduling(斜率优化dp或决策单调)
- POJ-1180 Batch Scheduling 【逆向DP+斜率优化】
- poj 1260 Pearls 斜率优化dp
- poj 1260 Pearls 斜率优化dp
- 【斜率优化dp】poj 1260 Pearls
- DP(斜率优化)
- Eclipse快捷键大全
- 积累(一)
- UIScrollView 滚动视图—IOS开发
- 关于PHP开发HTTP服务器的小小经验
- 菜单
- poj 1180 斜率优化DP
- ORACLE字符型函数(二)
- 如何使用开源的Android组件
- 搜狗诗词
- Servlet生命周期详解
- LA3713--Astronauts(2-sat)
- Java虚拟机(JVM)内存参数调优
- Best Time to Buy and Sell Stock III
- 杭电1302 The Snail