贪心算法求解划分最小平方和
来源:互联网 发布:linux ttf字体 编辑:程序博客网 时间:2024/04/29 11:36
#include<iostream>#include<math.h>#define max 100using namespace std;bool tag[max];void InitTag() {for(int i=0;i<max;i++) {tag[i]=false;}}int Tag(int k,int low,int high,int *s) {if(k==1) {return -1;} else {int average=(s[high]-s[low])/k;for(int i=low+1;i<=high;i++) {if((s[i]-s[low])>average) {if(abs(s[i]-s[low]-average)>abs(s[i-1]-s[low]-average)) {tag[i-1]=true;return i-1;} else {tag[i]=true;return i;}}}}}void Delete(int *a,int *s) {delete []a;delete []s;}void Print(int *a,int n) {for(int i=0;i<n;i++) {cout<<a[i]<<" ";if(tag[i+1]==true) {cout<<"|";}}}void Print1(int *s,int n) {for(int i=0;i<=n;i++) {cout<<s[i]<<" ";}}int main() {int n,k;int *s,*a;cin>>n>>k;InitTag();a=new int[n];s=new int[n+1];s[0]=0;int p=0;int m;for(int i=0;i<n;i++) {cin>>a[i];p+=a[i];s[i+1]=p;}int q=Tag(k,0,n,s);int count=k-1;while(q!=-1) {q=Tag(count,q,n,s);count--;}Print(a,n);Delete(a,s);return 0;}/*9 41 2 3 4 5 6 7 8 9*/
1 0
- 贪心算法求解划分最小平方和
- 【算法】 递归求解整数划分
- 【贪心法求解最小生成树之Kruskal算法详细分析】---Greedy Algorithm for MST
- 贪心算法求解哈弗曼编码
- hdu 2037 贪心算法求解
- 贪心算法求解背包问题
- 经典算法2:递归求解整数划分
- 用贪心算法求解背包问题
- 贪心算法实现找零问题求解
- 背包问题的贪心算法求解
- JAVA 基于贪心算法求解TSP问题
- 贪心算法求解问题的选择准则
- 贪心算法求解最优化问题
- 002-贪心算法求解“均分纸牌”
- 利用贪心算法求解tsp问题
- 对贪心法求解最小代价生成树的理解
- 普里姆(Prim)算法求解最小生成树
- Prim算法求解最小生成树
- 关于约瑟夫问题
- 题目1051:数字阶梯求和
- RecyclerView放入正方形布局
- 单次排序
- NLTK的安装/对象/词库/分词/词性标注/分块
- 贪心算法求解划分最小平方和
- Android性能优化之常见内存泄漏和优化方案
- 国务院确定的七个战略性新兴产业
- 整型数据范围总结(int,short,long等)
- JavaOOP IO 字符流
- xml中配置默认首页,欢迎页的代码
- activemq基于共享磁盘的主从搭建
- php ob缓存
- C实现C++类