UVa 624: CD

2014-11-23 21:38:17 · 作者: · 浏览: 8
这道题由于每组数据最多只有20个,其可能组成的时间总长度最多有2^20大约10^6中,一个数组可以放下,我使用了vector。
选出vector中存有的总时间长度的最大者(且不超过N),根据其序号计算出该最大时间总长度包含了哪些数据即可。
我的解题代码如下:
 
#include   
#include   
#include   
#include   
#include   
#include   
using namespace std;  
  
#define maxm 20  
int Duration[maxm];  
  
int main()  
{  
    int N,M;  
    int Size,Max,Maxk;  
    int tmp;  
    vector v;  
    while(cin >> N >> M)  
    {  
        for(int i=0; i> Duration[i];  
        Max = 0;  
        v.clear(); v.push_back(0);  
  
        for(int i=0; i
= div/2) cout << Duration[i] << ' '; div *= 2; } cout << "sum:" << Max << endl; } return 0; }