POJ 1160 Post Office
生活随笔
收集整理的這篇文章主要介紹了
POJ 1160 Post Office
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
WA
1. 寫出了 dist[][] 數組和 minDist() 函數, 實現了 minDist 函數但最終卻是使用了 dist 數組
不一致
?
代碼
#include <iostream> #include <stdio.h> #include <memory.h> #include <algorithm> #include <vector> #include <map> #include <set> #include <string> #include <deque> #include <cstring> #define MIN(x,y) (x)<(y)?(x):(y) using namespace std;int pos[10010]; int dp[10010][40];int minDist(int i, int j) {if(i >= j)return 0;int mid = (i+j)/2;int sum = 0;for(int k = i; k <= j; k ++) {sum += abs(pos[k]-pos[mid]);}return sum; }int solve_dp(int v, int p) {memset(dp, 0x3f, sizeof(dp));// initfor(int i = 0; i <= p; i ++)dp[0][i] = 0;for(int i = 1; i <= v; i ++) {for(int j = 1; j <= p; j ++) {for(int k = 0; k < i; k ++) {dp[i][j] = min(dp[i][j], dp[k][j-1] + minDist(k+1,i));}}}return dp[v][p]; }int main() {freopen("C:\\Users\\vincent\\Dropbox\\workplacce\\joj\\test.txt", "r", stdin);int V, P;while(scanf("%d%d", &V, &P) != EOF) {for(int i = 0; i < V; i ++) {scanf("%d", pos+i+1);}int res = solve_dp(V, P);printf("%d\n", res);}return 0; }
轉載于:https://www.cnblogs.com/zhouzhuo/p/3678525.html
總結
以上是生活随笔為你收集整理的POJ 1160 Post Office的全部內容,希望文章能夠幫你解決所遇到的問題。

- 上一篇: 如何构建高性能web站点之:分布式缓存
- 下一篇: LigerUI编辑表格组件单元格校验问题