Educational Codeforces Round 16 A B C E

做题太久也有点累了..难题不愿做 水题不愿敲..床上一躺一下午..离下一场div2还有点时间 正好有edu的不计分场 就做了一下玩玩了

D是个数学题 F是个AC自动机 都没看明白 留待以后补

A 给出一个8x8棋盘中国王的位置 问国王有多少移动方式 判断输出就可以了

B 给出n个x轴上的数 找出一个数 使其到其他所有数的距离和最小 输出这个数的值

其实这道题是见过的 想法是 先排序 维护一个res 初始值是从最小的数到其他数的距离和 之后每次向右移动 这时候 res会减去右边点数*两点距离差 加上左边点数*两点距离差 这样 由于距离差必定是一个整数 所以res其实是一个先减后增的 所以当res开始变大的时候就可以break了 但是加break会错..去掉就对了 不过用时也比较多 800+ms擦边过

其实可以看到的是 res先减后增 它每次的变化 是(左边点数-右边点数)*距离差 所以转折的时候 应该是变化为0或突然为正 于是直接可以得出 奇数的时候 是中间的 偶数的时候 是中间偏左的 判断一下就可以了

C 给出一个n*n矩阵 n为奇数 在其中填入1-n*n的不重复的数 要求每一行每一列以及两条主对角线的和都为奇数

可以看到其实填入的数所提供的属性只有奇偶而非大小 一开始准备dfs小数据找规律 但是出了一个参数写错的bug 写了一个小时也没写出来 第二天在纸上找规律 发现一个正方形中 应该放奇数的应该是中间的偏45度n*sqrt(2)正方形 控制完奇偶之后填数就可以了

E 要求从一个空文本中得出一个长n的字符串 两种操作 1 使用x的时间插入/删除一个字符 2 使用y的时间复制当前所有文本并粘贴

比赛后做的 看到了标签中的DP 也很好想 每个点都有自己的责任 被前一个点或者后一个点优化 去优化前一个点 后一个点 *2的点

如果一个点*2之后越过n了 那么如果n以及n之前的由这个操作而受益 那么只能是通过之后不断的删减而做到 那么每次当*2越过n之后 应当尝试去优化的是n

搜索应当是不可做的 因为我们并不知道 n状态会被哪一个状态给再次优化 所以我们应当让所有的状态都渐渐消失 在n达到1e7的情况下 大概是不可以的

上一篇:spring注解支持


下一篇:Educational Codeforces Round 16