经常有点小迷糊 2021-08-28 11:11 采纳率: 96.7%
浏览 77
已结题

这道题错哪里了?(C++)


编号:1995

2030年夏天的一个下午,天气非常炎热,一名伐木工正在喝着3块钱的绿茶,给自己降温。他一边喝,一边回想起了当年。

10年前,他是OICoder的一名集训队员。但是因为上课经常开小差,且经常打断老师讲课,屡教不改,结果被老师劝退了。

这个劝退,导致他当时没学好算法,使他错过了CSPJ一等奖,错过了省集训队,错过了国家集训队,错过了NOI,更错过了北京大学。

由于其他方面也没尽心尽力学好,导致现在当了一个伐木工。

现在回想,可能这就是“皮”的后果吧,不禁流下了懊悔的眼泪~



此时此刻,他面临着一个很现实的问题。他需要你帮他求解一下。(如果10年前,他认真听课,按时完成作业,现在的他肯定是会做的。只是……)

现在一共有n棵树,每棵树有初始重量ai(单位kg),每天可以增长重量bi(单位kg)。现在他要在m天内每天砍一棵树(砍下即得到一棵完整的树)

求,经过m天后得到的最大重量总值。



输入格式
有多个测试用例。

第一行输入测试用例数量TT <= 200)。

第2行输入第1个测试案例的2个正整数n和m(0 <m <= n <= 250),用空格分隔。

第3行输入 第1个测试案例的n个正整数,表示ai。 (0 <ai <= 100,i = 1,2,3 ... n)

第4行输入 第1个测试案例的n个正整数,表示bi。 (0 <bi <= 100,i = 1,2,3 ...... n)

依次类推。



输出格式
对于每个测试样例,输出经过m天后得到的最大重量总值。



样例输入
2
2 1
10 10
1 1
2 2
8 10
2 3

样例输出
10
21

#include <iostream>
using namespace std;
int main() {
    //freopen("1.in", "r", stdin);
    //freopen("1.out", "w", stdout);
    int T;
    int n, m;
    int ai[255], bi[255];
    cin >> T;
    int sum = 0;
    for (int i = 1; i <= T; i++) {
        cin >> n >> m;
        for (int j = 1; j <= n; j++) {
            cin >> ai[i];
        }
        for (int j = 1; j <= n; j++) {
            cin >> bi[j];
        }
        if (m == 1) {
            cout << ai[1] << endl;
            continue ;
        }
        int j = 1;
        while (n > 0 && m > 0) {
            sum += ai[j];
            for (int k = j + 1; k <= n; k++) {
                ai[k] += bi[k];
            }
            n--;
            m--;
        }
        cout << sum << endl;
        sum = 0;
    }
    return 0;
}

  • 写回答

2条回答 默认 最新

  • 有问必答小助手 2021-08-30 10:33
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月12日
  • 已采纳回答 9月4日
  • 创建了问题 8月28日