URAL 1005 Stone Pile
2014-09-14 22:13
357 查看
URAL 1005 Stone Pile
题意:有最多20个石子,请分成两堆,使得两堆石子的重量差最小石子重量不超过105
划分问题是NP完全问题, 一般用暴力或者动态规划的方法解决
#include <stdlib.h> #include <stdio.h> #include <set> #include <iostream> using namespace std; int main(){ int weight[22]; int n; cin>>n; for(int i=0;i<n;i++) cin>>weight[i]; int sub = 100000; for(int msk =0;msk < (1<<n);msk++){ int sum1=0,sum2=0; for(int i=0;i<n;i++){ if(msk & (1<<i) ){ sum1 += weight[i]; } else sum2 += weight[i]; } if(abs(sum1-sum2) < sub) sub = abs(sum1 - sum2); } cout<<sub; //system("pause"); return 0; }
相关文章推荐
- ural 1005. Stone Pile
- URAL 1005 Stone Pile
- ural 1005 Stone Pile
- Ural-1005. Stone Pile(简单01背包)
- ural 1005 stone pile
- URAL 1005 Stone Pile
- ural1005 Stone Pile (枚举)
- Ural1005-Stone Pile
- URAL1005 Stone Pile
- URAL 1005 Stone Pile (DFS)
- URAL 1005 Stone Pile
- ural 1005 Stone Pile
- URAL 1005 Stone Pile
- URAL1005 - Stone Pile - 动态规划
- Timus 1005. Stone pile
- Ural 1005 Stone Pilet 解题报告
- URAL1005 Stone Pile 01背包
- URAL1005 - Stone Pile - 深度优先搜索
- ural 1005 Stone Pile 01背包或dfs
- Ural 1005 Stone Pilet 解题报告