送花 南邮NOJ网络选拔赛2084

解法有逻辑错误,正确解法请转到http://www.cnblogs.com/njczy2010/p/4378596.html

送花

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 112            测试通过 : 37 

题目描述

萌妹纸一般都比较喜欢漂亮的鲜花。每逢各种节日,她们都想收到鲜花作为礼物。如果你是有妹纸滴人,经常不送妹纸花的话,结果可想而知了。

当然咯,妹纸都是通情达理的,不会因为某几次你木有送花,就发你好人卡了。王童鞋作为一个比较节俭(抠门)的人便知道这一道理,因此他想在妹纸不给他发好人卡的前提下,送尽量少的花。

为了简单起见,我们定义一个妹纸的幸福指数H(初始为)。如果某天幸福指数H小于0,那就。。。

如果某天妹纸收到了花,幸福指数H会增加ai,如果没收到,会下降bi。不同的日子送花对幸福指数的增加可能会有所不同,比如在214号送花就会比215号效果好~

即告诉你总天数n(1<=n<=365),每天收到花幸福指数的增加值ai(1<=ai<=10),没收到花幸福指数的降低值bi,求为了让妹纸的幸福指数H一直>=0,王童鞋至少要送妹纸多少朵花。



输入

第一行为一个正整数T,表示有T组数据。

每组数据第一行有1个整数: n表示总天数1<=n<=365

第二行为n个整数ai表示第i天收到花幸福指数的增加值,1<=ai<=10第三行为n个整数bi表示第i天没收到花幸福指数的下降值,1<=bi<=10

输出

一个整数表示最少需要送多少朵花。

样例输入

2
1
3
4
5
5 2 10 1 1
1 1 1 5 5

样例输出

1
2

#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<algorithm>
#include<cstdio>
using namespace std;
int T;
int main()
{
    scanf("%d",&T);
    while(T--)
    {
        int a[366],b[366];
        int n,H=0;
        int sum=1;
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        for(int i=0;i<n;i++)
        {
            scanf("%d",&b[i]);
        }
        H=a[0];
        {
            for(int i=1;i<n;i++)
            {
                if(H-b[i]<=0)
                {
                    H+=a[i-1];
                    sum++;
                }
                else
                {
                    H-=b[i];
                }
            }
        }
        printf("%d
",sum);
    }
}

最轻松的一道题,虽然是最后才做的~不然好可惜了


版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/Tobyuyu/p/4965678.html