随笔分类 - CF
好好加油
摘要:"C Paint the Digits" 思路:这道题就只需要利用单调栈,将整个数组扫一遍,求得的最后的栈内元素(要求全部小于非栈内元素)的颜色为1,其余为2 那么怎么实现呢?求最后的栈内元素(要求全部小于非栈内元素)的方法:用一个变量记录下最小的被交换的栈元素(这里需要将由于元素相等而交换的情况派
阅读全文
摘要:"F. Remainder Problem" 这个其实并不难,只是看看考察有没有分块的思路 思路:用一个 来记录所有 中所有 的和,在查询的时候可以达到复杂度位O(1) 当然因为数据很大,不能够分很多块,而且也没有必要分很多块,因为如果在进行 操作的时候,如果 ,那么在数据范围内只有五个数满足条件,
阅读全文
摘要:"Number Of Permutations" 思路:利用容斥,首先所有可能的排列肯定是 ,然后可能会有三种 bad 的情况: ①第一个元素的排列是非递减 ②第二种是第二个元素的排列是非递减 ③这两个可能出现的重叠情况,意思就是说同时导致①②成立 这个时候我们利用容斥的思想,用 即可 我们把所有的
阅读全文
摘要:"F1. Complete the Projects (easy version)" "F2. Complete the Projects (hard version)" 参考: "Complete the Projects" 简单说就是当 b =0 是肯定是 a 小的优先的,需要注意的就是 b 需
阅读全文
摘要:"D2. Remove the Substring (hard version)" 思路:其实就是贪心吧,先从前往后找,找到 t 可在 s 中存在的最小位置 (pre),再从后往前找,找到 t 可在 s 中存在的最大位置(last),然后 last [ i+1 ] pre [ i ] 1 表示的即是
阅读全文
摘要:"E. Compress Words" 直接套 KMP 即可(那为什么打 cf 的时候没有想到...),求出后一个单词(word)的前缀数组,然后从前面已得的字符串的末尾 word. length () 开始查询利用 "前缀数组" 进行优化即可 代码: cpp // Created by CAD o
阅读全文
摘要:"D. White Lines" 主要思路就是利用差分 对于行:如果在某一个点上,向右下角涂掉 k k 的矩形能够使得新出现一行 “B” 那么就在这个点上 +1(这里的加 +1 需要利用差分来完成) 列同理,如果有现成的空白行,记录一下即可,最后直接加上 代码: cpp // Created by
阅读全文
摘要:"C. You Are Given a WASD string..." 主要看的还是思维,分别求出在上下左右四个方向移动的最大幅度( mov_up, mov_down, mov_right, mov_left )然后对于垂直方向如果 mov_up == mov_down 那么 robot 最后的位置
阅读全文
摘要:"B. You Are Given a Decimal String..." 这个题需要求出从某一个尾数 n 变为 m 所需要的 x 和 y 的最小个数(i+j) 那么就需要预处理出一个数组来存放这个值。数组 b[ ] 中存的是所需要多添加的数的个数 (i+j 1) cpp int b[10]; f
阅读全文
摘要:"F. String Compression" 利用dp和 "前缀数组" 来写 dp[i] 所表示的东西是 字符串 s[0:i] (不包括 s[i])能够压缩的最短长度 bj[i][j] 表示的是字符串 s[i:j+1] (不包括 s[j+1])能够压缩的最短长度 代码: cpp // Create
阅读全文
摘要:"Minimal Labels" 这个题需要用到 "拓扑排序" 的思维,但是这个题还有一个条件——字典序最小,因此可以用一个递增的优先队列来维护,每找到一个入度为 0 的点就把它 push 进去因而每一次判断的点总是当前入度为 0 的字典序最小的点。 代码: cpp // Created by CA
阅读全文
摘要:"D. Suitable Replacement" 这个题统计出 s 和 t 中的各字母个数以及“?”的个数,直接暴力即可,s中不足的字母可用 “?“来替代 这个题的另一种解法是二分 s 中可以出现的 t 的次数,从而找到最大的 the suitability of string s . 代码: c
阅读全文
摘要:"C. Multi judge Solving" 写这个题的时候也是思维出了漏洞....容易漏掉的一点就是在别的 oj 上做了题之后可能不能够马上回原来的 oj 上做题,这是写循环的时候需要注意的的方,需要嵌套一个 while 进去。 代码: cpp // Created by CAD on 201
阅读全文
摘要:"B. Five In a Row" 这个题的数据范围不大只有 10 10 的棋盘,就是下五子棋,直接暴力求解即可。枚举每一个可能落子的位置,然后把棋盘扫一遍,如果出现五子连线即输出 YES,在扫描棋盘的时候可以枚举每一个点的八个方向,看是否存在有五个“X”连在一起,这样代码量会少一些。 cpp /
阅读全文
摘要:"A. Binary Protocol" 这道题要唯一注意的一点就是数字0的表示—— 0个“1”来表达 ,所以字符串“100”所表示的数字就是100 附代码: cpp // Created by CAD on 2019/8/6. include define ll long long define
阅读全文

浙公网安备 33010602011771号