首页 > 其他分享 >Codeforces Round #822 (Div. 2) D

Codeforces Round #822 (Div. 2) D

时间:2022-09-24 18:58:39浏览次数:79  
标签:sR 向左走 Codeforces break sL fla Div now 822

https://codeforces.com/contest/1734/problem/D

题意

有 n 只史莱姆,每只都有一个值,其中第 k 只被你控制,你希望能走到 0 或 n + 1 这两个位置,也就是说遇到路上的史莱姆需要将他们吸收,即现有的值加上他们的值

路上任何时候值小于 0 都会导致游戏立即结束

问你是否存在胜利策略

思路

对于你当前处在的这个位置,你会选择向左走,当且仅当你能在此过程中获得增益,或者你可以活着走出去

选择向右走同理

code

设向左、向右走的最大边界为 L , R , 那么可以写出如下代码:(注意细节)

bool f = 0;   
int sL = 0, sR = 0;
ll now = a[k];
while(1){
  bool fla = 0;
  //向左走
  while(L > 1 && now + a[L - 1] + sL >= 0) {  //生命值满足还可以向左走的条件
    sL += a[L - 1];
    L--;
    if(sL > 0) {  //可以获得增益
      fla = 1;
      now += sL;
      sL = 0;
      break;
    }
  }
  //向右走
  while(R < n && now + a[R + 1] + sR >= 0) {  //生命值满足还可以向左走的条件
    sR += a[R + 1];
    R++;
    if(sR > 0) {  //可以获得增益
      fla = 1;
      now += sR;
      sR = 0;
      break;
    }
  }
  if(L == 1 || R == n) {
    f = 1;
    break;
  }
  if(!fla) break;
}
puts(f == 1 ? "YES" : "NO");

标签:sR,向左走,Codeforces,break,sL,fla,Div,now,822
From: https://www.cnblogs.com/re0acm/p/16726237.html

相关文章

  • CodeForces 比赛记录
    带星号的表示vp。\(*\)CFRound601Div.1做出A和B1。B2.SendBoxestoAlice(HardVersion)考虑\(a\)的前缀和数列\(S\),在\(a\)中移动一个数,相当于在\(S......
  • Codeforces Round #822 D,E
    E.RectangularCongruence我们考虑对ar1,c1+ar2,c2≢ar1,c2+ar2,c1(modn)(同余情况下不同也是可以同时加任意数的可以感性理解一下)ar1,c1-ar1,c2≢ar2,c1......
  • CF Round 822 Div2 题解
    比赛链接A题SelectThreeSticks(签到)给定\(n\)根木棒,第\(i\)根木棒的长度为\(a_i\)。现在我们可以进行操作,每次操作选定一根木棒,将其长度增高或减少1。问至少需......
  • Codeforces Round #822 Div.2 整场题解
    目前还有E,F没有更新。A.SelectThreeSticks直接对\(a\)排序,选出来的木棍一定是相邻三项,都往中间靠更优。B.Bright,Nice,Brilliant最优方案就是每一行第一个......
  • Codeforces Round #640 (Div. 4) D. Alice, Bob and Candies
    CodeforcesRound#640(Div.4)翻译岛田小雅D.Alice,BobandCandies出题人MikeMirzayanov\(n\)个糖果排成一排,从左到右分别被编号为\(1\)到\(n\)。第\(i\)......
  • Roadside Trees (Simplified Edition) CodeForces - 265B
    RoadsideTrees(SimplifiedEdition)CodeForces-265B松鼠Liss喜欢坚果。一条街上有n棵树(从西到东编号为1到n),每棵树的顶部都有一颗美味的坚果。树的高度我很高。......
  • Nikita and string CodeForces - 877B
    NikitaandstringCodeForces-877B有一个全由a和b组成的字符串,可以切成三部分。满足如下规则:第一部分只包含a或者是空串。第二部分只包含b或者是空串。第三部分只......
  • Barrels CodeForces - 1430B
    BarrelsCodeForces-1430B你有n个桶放在一排,从左到右开始编号分别为1~n.最初,第i桶装的水是ai升.你可以把水从一个桶倒到另一个桶。在这个过程中,你可以......
  • Fair Numbers CodeForces - 1465B
    FairNumbersCodeForces-1465B我们定义一个好数规则如下:它能够整除自己的每一个非零位。例如说,102是一个好数,因为它能整除1和2。282则不是,因为它不能整除8。......
  • Split Into Two Sets CodeForces - 1702E
    SplitIntoTwoSetsCodeForces-1702EPolycarp有一副有n张牌的(数字n为偶数)多米诺骨牌.每张多米诺骨牌上写有两个在1到n之间的数字.请问能否把骨牌分成两......