zoukankan      html  css  js  c++  java
  • 题解 Educational Codeforces Round 90 (Rated for Div. 2) (CF1373)

    我以为我是edu场没切A的唯一一人,赛后翻榜发现我不孤单……

    (A)

    我不会啊,有没有神仙教教我

    (B)

    每个(1)(0)都会相互抵消,因为总有(01)交界处(只有其中一种字符就没有)。于是统计(0,1)的个数,答案就是(min(cnt0,cnt1))的奇偶性,奇数则Alice赢,偶数则bob赢。

    (C)

    按照题意模拟即可,唯一的改变就是不用每次枚举init,简单来说就是前缀和(S_i=S_{i-1}+(s_i=='-'?-1:1),S_i lt 0)(ans+=i+1,S_i=0),最后答案记得(+n),因为最后一次(res+=n)

    (D)

    这是我全场切的最快的题(

    考虑reverse一个区间的本质是这个区间的偶数和换成奇数和,于是只要把每个奇数位置减去左边的偶数做一次最大子段和,再减去右边的偶数做一次最大子段和,两者取(max)加上原来数组偶数位置上的数的总和即可。

    (E)

    考虑枚举末尾是几,因为(0 leq k leq 9),所以每次最多只会改变末尾两个数字。然后把末尾两位数字的和统计一下,再往前面填充,尽量满足位数小那就多填充9,最开头的就是对9取模剩下的。然后把每次的答案取最小值就行了。

    (F)

    考虑A的总人数如果比B还多肯定不合法,然后每个B只能满足它相邻的两个的A的需求,所以我们可以每次让这个A左边的B尽量满足它,然后右边的B把不满足它的补上,这样依次做下去,有一个补不上了那就不能满足,否则可以满足。

    (G)

    发现对于每一个((x,y)),都存在一个格子((a,b)),使得((x,y))可以到达((a,b),(a,b+1),cdots,(a,n))却而不能到达((a,b-1)),很显然这个(b=|a-x|+y)。然后我们假设把每个(x)集中移到固定的一列,那么对于每一行它上面的棋子肯定(leq)这行上面的总行数,也就是(f(i) leq r-i)

    然后我们假设把一个棋子一直往右下移集中在固定的一列,然后移到同一个位置的棋子一共(a_i)个,肯定占据了这一列的连续(a_i)个位置,如果这一列摆不下了就往旁边的一列移。那么维护一下摆放的前缀和再移动就可以了。直接线段树。

  • 相关阅读:
    杀毒软件工作原理
    IP地址
    网络操作系统功能和基本任务
    计算机网络技术知识点总结
    对称密钥密码体制的主要特点
    无线局域网(WLAN)
    文件传输协议(FTP)
    万维网(WWW)
    简单网络管理协议(SNMP)
    防火墙技术
  • 原文地址:https://www.cnblogs.com/Kylin-xy/p/tijie-cf1373.html
Copyright © 2011-2022 走看看