hdu3506Monkey Party
2016-07-17 15:27
211 查看
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3506
题意:给定n个猴子坐成环,每个猴子介绍自己需要花费a[i]分钟。每次可以选择两个相邻的两个猴子,然后让他们两个的朋友互相认识花费的时间是这两堆猴子介绍自己的总和,其实就是环形石子合并啦。
分析:很明显我们是可以区间dp的,设dp[i][j]表示i~j个猴子全部互相认识需要花费的最少时间,那么dp[i][j]=min(dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]),i<=k<j。这样是O(n^3)的,我们用四边形优化一下就能到O(n^2)啦,因为sum[j]-sum[i-1]显然是满足四边形优化的。四边形优化不会的转poj1160Post
Office
代码:
#include<map> #include<set> #include<cmath> #include<queue> #include<bitset> #include<math.h> #include<vector> #include<string> #include<stdio.h> #include<cstring> #include<iostream> #include<algorithm> #pragma comment(linker, "/STACK:102400000,102400000") using namespace std; const int N=1010; const int mod=100000000; const int MOD1=1000000007; const int MOD2=1000000009; const double EPS=0.00000001; typedef long long ll; const ll MOD=1000000007; const int INF=1000000010; const ll MAX=1000000000000; const double pi=acos(-1.0); typedef double db; typedef unsigned long long ull; ll a[2*N],sum[2*N],s[2*N] ,dp[2*N] ; int main() { int i,j,k,n; ll ans; while (scanf("%d", &n)!=EOF) { for (i=1;i<=n;i++) { scanf("%I64d", &a[i]);a[i+n]=a[i]; } for (i=1;i<=2*n;i++) sum[i]=sum[i-1]+a[i]; memset(dp,0x7f,sizeof(dp)); for (i=1;i<=2*n;i++) dp[i][i]=0,s[i][i]=i; for (i=1;i<n;i++) for (j=2*n-i;j;j--)//[j,j+i] for (k=s[j][j+i-1];k<=s[j+1][j+i];k++) if (dp[j][k]+dp[k+1][j+i]+sum[j+i]-sum[j-1]<=dp[j][j+i]) { dp[j][j+i]=dp[j][k]+dp[k+1][j+i]+sum[j+i]-sum[j-1];s[j][j+i]=k; } ans=MAX; for (i=1;i<=n;i++) ans=min(ans,dp[i][i+n-1]); printf("%I64d\n", ans); } return 0; }
相关文章推荐
- 流媒体传输协议系列之----RTP/RTCP协议解析
- jenkins2 pipeline插件的10个最佳实践
- Ubuntu 16.04 x64 Qt 5.6连接MySQL数据库笔记
- hdu 5167 Fibonacci(DFS,剪枝,斐波那契)
- 用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数
- 一些操蛋的代码
- 80. Remove Duplicates from Sorted Array II
- hdu 5673 卡特兰数,逆元
- linux pgrep
- 多处理机Cache一致性问题及解决办法
- C++中成员变量的初始化总结
- Android手机与多个BLE设备通信
- 排序算法------快速排序
- 【知识分享】VisualSVN Server 安装失败解决方法
- iOS开发——创建依赖工程Framework
- 海量数据处理面试题
- 二级指针的使用
- 有向图最小树形图
- 浅谈spring模板化处理风格操纵mongodb的使用
- 将表数据生成Insert脚本