K - Downgrade(思维题+英语阅读)

在这里插入图片描述在这里插入图片描述
这道题真的…我读了半个小时都没读懂啥意思,结果队友一来说就是降级,我说啥?怎么降的?
我感觉是我游戏玩少了吗?
题意:给你初始的A,B和N分别表示刚开始的主等级,副等级,N次操作;然后问你经过N次操作他的A-B为多少?
看到这里我相信,你肯定有点懵逼,QAQ;
比如第一个案例:
在这里插入图片描述
就是这个意思;
不断的把B=A,A=1;然后中间一个while来变形1步骤,但问题在于怎么结束循环呢?因为N很大1e9,其实题上有一个1-1时候结束,还有一个就是第二个案例的1-3====3-1所以有了这两个结束条件,就可以搞定了,我去呢,什么题,读题都很消耗时间了。。。。。。。。。(:
注意这里经验值Li必须<B才能升级哈,所以while循环哪里容易出问题!!这个有点反常规,我感觉,平常打游戏不是到了经验值就升级了吗????…
AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
  ll T;
    ll A,B,N;
    ll L[100050];
  scanf("%lld",&T);
  ll g=1;
  while(T--){
  	memset(L,0,sizeof(L));
  scanf("%lld %lld %lld",&A,&B,&N);
    for(int i=1;i<=A;i++){
  	      scanf("%lld",L+i);
    }
    ll tA=1,tB=A;
    while(N--){
    	  B=A;A=1;//这里就是根据题意把A变成1,B变成A,然后看看会不会在A的等级上继续升级
    	  while(L[A]<B){
    	  	  B-=L[A];
    	  	  A++;
    	  	   //cout<<A<<"  "<<B<<endl;
		  }
		  if(A==1&&B==1)break;///如果一直为1--1就没有必要进行下去了
		  if(tA==B&&tB==A)break;//如果来回相等就没有必要进行下去了
		  tA=B;tB=A;//记录这次的值,一遍后面看看变来变去是不是  循环的比如1--3 变成3--1,所以就没必要下去了
	}
	printf("Case #%lld: %lld-%lld\n",g++,A,B);
  }
  return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值