面试题2015

来源:互联网 发布:珠江新闻眼回看软件 编辑:程序博客网 时间:2024/06/04 23:35

#include <iostream>#include <vector>using namespace std;int main(){    int T;//number of test    cin >> T;    for(int x = 0; x < T; x++)    {        int n, bot, top;        cin >> n >> bot >> top ;        if (n < 1 || n > 10)        {            cout << "input n error!" << endl;            break;        }        if (top < 0 || top > 10000)        {            cout << "input top error!" << endl;            break;        }        int c[10][101], v[10][101];        int m[10];        for (int s = 0; s < n; s++)        {            cin >> m[s];            for (int t = 0; t < m[s]; t++)            {                cin >> c[s][t] >> v[s][t];            }        }        int maxs = 0;        int consum;        for (int a = 0; a < n; a++)        {            vector<int> f(top, 0);            consum = 0;            for (int i = 0; i < m[a]; ++i)            {                for (int j = top - 1; j >= bot; --j)                {                    if (c[a][i] <=j)                    {                        f[j] = max(f[j], f[j - c[a][i]] + v[a][i]);                                                }                }                if (maxs < f[top - 1])                {                    maxs = f[top - 1];                    consum += c[a][i];                }            }        }        cout <<consum<<" "<< maxs << endl;    }    return 0;}

这个代码是有问题,有待调试!

0 0