POJ 1160 Post Office
来源:互联网 发布:数据库设计原则是什么 编辑:程序博客网 时间:2024/06/11 10:23
在一条路上N个村庄中建立M个邮局,怎样建立邮局会使所有的村庄距离邮局的距离最短。
子问题:
S(K,Y) 在前K个村庄中建立Y个邮局
Source Code
Problem: 1160 User: jluliuxyMemory: 740K Time: 438MSLanguage: G++ Result: Accepted- Source Code
//做完之后看看编程之美电梯问题#include <iostream>using namespace std;int ditok(int i,int k, int** arr){if( i >= k )return 0;int t = i + k;int flag = k-i+1;int index;int sum = 0;int start = k;if( flag%2 == 0 ){index = t/2;while( start != (index+1) ){sum += arr[0][start--];}sum += arr[0][index+1] - arr[0][index];start = i;while( start != index ){sum -= arr[0][start++];}}else{index = (t+1)/2;while( start != index ){sum += arr[0][start--];}start = i;while( start != index ){sum -= arr[0][start++];}}return sum;}int main(){int n,m;cin>>n>>m;int ** arr = new int*[m+1];int i,j,k;for( i = 0; i <= m; i++ )arr[i] = new int[n];for( i = 0; i < m+1; i++ )for( j = 0; j < n; j++ )arr[i][j] = 0;for( i = 0; i < n; i++ )cin>>arr[0][i];for( i = 1; i < m+1; i++ )arr[i][0] = 0;int min;int temp;/////////////////////////////////////*for( k = 0 ; k <= m; k++ ){for( i = 0 ; i < n; i++ )cout<<arr[k][i]<<" ";cout<<endl;}*//////////////////////////////////计算s(k,1)值for( k = 1; k < n-m+1; k++ ){min = ditok(0,k,arr);arr[1][k] = min;}int x;int ii;for( k = 1; k <= n; k++ ){for( x = 2; x <= m; x++ ){if( x == (k+1) ){arr[x][k] = 0;break;}min = 3000000;for( i = k-1; i > 0; i-- ){if( min < arr[x-1][i] )continue;temp = ditok(i+1,k,arr) ;//cout<<" k = "<<k<<" i = "<<i<<" temp =ditok "<<temp;temp += arr[x-1][i];min = min < temp ? min : temp ;//cout<<"// k = "<<k<<" i = "<<i<<" arr["<<(x-1)<<"]["<<i<<"]="<<arr[x-1][i]<<" min= "<<min;}arr[x][k] = min;}}/*for( k = 0 ; k <= m; k++ ){for( i = 0 ; i < n; i++ )cout<<arr[k][i]<<" ";cout<<endl;}*/cout<<arr[m][n-1]<<endl;return 0;}
0 0
- POJ 1160 Post Office
- poj 1160 Post Office
- POJ 1160 Post Office
- poj 1160 Post Office
- POJ 1160 Post Office
- POJ 1160 Post Office
- poj 1160 post office
- poj 1160Post Office
- POJ--1160--Post Office
- poj 1160 Post Office
- POJ 1160 Post Office
- POJ 1160 Post Office
- POJ-1160-Post Office
- poj 1160 Post Office
- POJ 1160 Post Office
- poj 1160 Post Office
- POJ 1160 Post Office
- POJ 1160 Post Office
- 将一个只有字母和空格的字符串,转换为字符串数组.
- android sdk 不能更新
- 插入排序
- python正则表达式惯用法
- 偷窥iPhone Push Notification的幕后
- POJ 1160 Post Office
- hadoop小文件存储优化
- Linked List Cycle
- leetcode解题笔记-Palindrome Partitioning
- iOS - 非ARC中EXC_BAD_ACCESS异常分析
- 管理中的笑话,笑话中的管理(犹太人的智慧)
- CFBundleVersion in the Info.plist file must contain a higher version than that of the previously upl
- MyEclipse快捷键
- 1029 旧键盘