以前不会做的题目现在也会了。英语题目,就是给你一些井的信息,井中原有的水,当井中的水满足一定量后会被破坏并且这些水全部流入下一个井中,用多少能量能直接破坏这个井。然后问要想破坏第n口井至少要多少能量。
思路:如果想破坏这口井要从哪个井开始破坏呢?好了,思路就是枚举从哪口井开始破坏。代码中的break要特别注意。
#include<iostream>
using namespace std;
int w[100005],L[100005],p[100005];
int main()
{
int T,i,N,j,max,k,sum,carry;
cin>>T;
for(i=1;i<=T;i++)
{
cin>>N;
for(j=1;j<=N;j++)
cin>>w[j]>>L[j]>>p[j];
max=p[N];
for(j=1;j<N;j++)
{
sum=0;
carry=0;
for(k=j;k<=N;k++)
{
carry=carry+w[k];
if(carry<=L[k])
sum=sum+p[k];
if(sum>max)
break;
}
if(sum<max)
{
max=sum;
}
}
cout<<"Case "<<i<<": Need to use "<<max<<" mana points."<<endl;
}
return 0;
}