首页 > 其他 > 详细

江西理工2019 摸底测试题解

时间:2019-11-29 18:14:25      阅读:68      评论:0      收藏:0      [点我收藏+]

摸底测试链接http://oj.jxust.edu.cn/contest?id=1702

A.Water

思路:题面说的是随机操作,但是实际上只是输入数据随机,操作的时候怎么操作都是可以的,只需要用数组存一下每个水瓶倒多少水,然后从第一个开始往后倒,如果有多就传给下一个瓶子,如果不够就直接全部赋给这一个瓶子就行了。

技术分享图片
#include<bits/stdc++.h>
#include<vector>
#include<map>
#include<queue>
#define LL long long
#define INF 0x3f3f3f3f
#define MOD 1000000007
using namespace std;
LL a[100005], b[100005], ans[100005];
int main()
{
    LL t, n, m, x, y;
    scanf("%lld", &t);
    while(t--)
    {
        scanf("%lld%lld", &n, &m);
        for(int i = 1;i <= n;i++)
        {
            scanf("%lld", &a[i]);
            b[i] = 0;
        }
        for(int i = 1;i <= m;i++)
        {
            scanf("%lld%lld", &x, &y);
            b[x] += y;
        }
        for(int i = 1;i <= n;i++)
        {
            if(b[i] >= a[i])
            {
                ans[i] = a[i];
                b[i] -= a[i];
                //printf("ai = %d\n", a[i]);
                //printf("ansi = %d\n", ans[i]);
                b[i+1] += b[i];
            }
            else
            {
                ans[i] = b[i];
                b[i] = 0;
            }
        }
        for(int i = 1;i <= n;i++)
        {
            if(i < n)
                printf("%lld ", ans[i]);
            else
                printf("%lld\n", ans[i]);
        }
    }
    return 0;
}
View Code

 

江西理工2019 摸底测试题解

原文:https://www.cnblogs.com/Mamba0Z/p/11959155.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!