[World Final 2017 F] Posterize (DP)
来源:互联网 发布:anaconda ubuntu 路径 编辑:程序博客网 时间:2024/06/06 13:17
菜鸡选手只能刷刷水题了,这个题O(n^3)的dp还是很显然的.
#include <bits/stdc++.h>#define ll long longusing namespace std;/*To confirm a set of k elements, dp is always the best way considering the k elements are in range [0,255]. So we can set dp[i][j],representing the minimum answer that we have used j elements, and we have get the first i initial elements done. After pre-processing f[i][j] as the minimum answer for range[i,j] in the array in O(n^3) time,we can use dp to solve the problem in O(n^3),too.*/ll f[257][257];ll dp[257][257];struct node{ll p,num;}t[257];int n,k;int main (){int i,j,l;scanf ("%d%d",&n,&k);for (i=1;i<=n;i++){scanf ("%lld%lld",&t[i].p,&t[i].num);}memset (dp,0x7f,sizeof(dp));memset (f,0x7f,sizeof(f));for (l=0;l<=255;l++){for (i=1;i<=n;i++){ll num=0;for (j=i;j<=n;j++){num+=((ll)((t[j].p-l)*(t[j].p-l)))*t[j].num;if (num<f[i][j]) {f[i][j]=num;}}}}dp[0][0]=0;for (i=1;i<=n;i++){for (j=1;j<=k;j++){for (l=0;l<i;l++){dp[i][j]=min(dp[i][j],dp[l][j-1]+f[l+1][i]);}}}printf ("%lld\n",dp[n][k]);return 0;}
阅读全文
1 0
- [World Final 2017 F] Posterize (DP)
- bzoj4953 [Wf2017]Posterize(区间dp)
- [BZOJ]4953: [Wf2017]Posterize DP
- 2016 World Final F Longest Rivers
- bzoj 4953: [Wf2017]Posterize(DP)
- 2017 World Final专题
- 2017 World Final
- 2017world final 慢慢写
- 2017World Final 签到题
- 2017 world final e Need for Speed
- 2013 World Final 排名
- [World Final 2017 E] Need For Speed (二分)
- F - Deer-Proof Fence final
- 2016 World Final 补题
- cf 76F DP
- 【Codeforces 500F】Dp
- 234F fence (DP)
- 【DP】coderforces 567F
- Kali渗透测试——HexInject
- OpenStack Newton版本部署---- 网络服务(neutron)(计算节点)
- OpenStack Newton版本部署---- 网络服务(neutron)(控制节点)
- 高级UI之PathMeasure学习
- Spark的几种运行模式及shell测试
- [World Final 2017 F] Posterize (DP)
- Axure仿微信UI
- 旋转数组的最小数字
- HDFS java操作(一)FileSystem 常用操作
- 数据库复习-5.关系数据库标准语言SQL
- 统计学习方法:支持向量机
- 简单链表
- Cacti的服务器监控
- 错题总结之赋值语句