题目分析:
重点:要摧毁第N个井,而不是n个井,在这我纠结了好长时间
思路:可以从1->n也可以N->1选出最小的就ok了
技巧:不能暴力求最小值,会超时;巧用break;
#include<stdio.h>
int l[100001];
int r[100001];
int sum[100001];
int main()
{
    //freopen("e:1.txt","r",stdin);
    int n,T,t=0;
    scanf("%d",&T);
    
    while(T--)
    {
        int i,max;
        scanf("%d",&n); 
        for(i = 0;i < n;i++)
            scanf("%d%d%d",&l[i],&r[i],&sum[i]);
        int min=sum[n-1],msum;
        for(i=0;i<n-1;i++)
        {
            max=0;
            msum=0;
            for(int j = i;j < n;j++)
            {
                max+=l[j];
                if(max <= r[j]) msum+=sum[j];
    
                if(msum>min) break;
            }
            if(msum < min) 
                min=msum;
        }
        printf("Case %d: Need to use %d mana points.\n",++t,min);
    }
    return 0;
} 

  

相关文章:

  • 2022-12-23
  • 2021-10-17
  • 2021-09-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-20
猜你喜欢
  • 2021-11-16
  • 2021-11-11
  • 2022-12-23
  • 2022-02-12
  • 2022-12-23
  • 2022-03-02
  • 2021-04-30
相关资源
相似解决方案