摘要:
设切割的区间为(j, i), 注意两边都是开区间。然后可以预处理出以i为起点的最长连续递增的长度和以j为终点的最长连续递增的长度。大致思路就是枚举i,右边这一侧的最优值就知道了, 然后这道题的关键就是就是j取哪里。(1)去掉干扰元素, 这一步非常的关键, 设题目给的数... 阅读全文
摘要:
滑动窗口这个方法名字非常形象, 先是窗口的右指针尽量往右滑, 滑不动了就滑窗口的左指针, 滑到右指针又可以开始滑动为止。这道题是要记录滑的过程中最大的窗口长度, 限制条件是窗口中不能出现重复的值。重复的值有两种判断方法。一种是set, 其实就是开个vis数组, 但是数... 阅读全文
摘要:
这道题目用扫描法扫描法:在枚举的过程中维护一些重要的量, 从而简化计算这道题用到了极角, 叉积, 高一的我表示一脸懵逼不过自己去百度了一下好像大概看得懂。这道题我还有一些疑问, 先这样吧#include#include #include#define REP(i, a... 阅读全文
摘要:
这道题用到了等价转换的思想所有要运到a1的酒, 都要经过a2, 所以不如把a2的值改成a1+a2,然后依次以此类推。#include#include #define REP(i, a, b) for(int i = (a); i < (b); i++)using na... 阅读全文
摘要:
这道题目可以把问题分解, 因为x坐标和y坐标的答案之间没有联系, 所以可以单独求两个坐标的答案 我一开始想的是按照左区间从小到大, 相同的时候从右区间从小到大排序, 然后WA 去uDebug找了数据, 发现这组数据过不了 3 1 1 3 3 1 1 3 3 2 2 ... 阅读全文
摘要:
这道题要逆向思维, 就是求出答案的一部分, 然后反过去去寻找答案存不存在。 其实很多其他题都用了这道题目的方法, 自己以前都没有发现, 这道题专门考这个方法。这个方法可以没有一直往下求, 可以省去很多时间。紫书里面把这叫做中途相遇法,双向广搜有点这个方法的味道。这里用... 阅读全文
摘要:
这道题方法非常的巧妙, 两层的n*n, 第一层第I行全是第I个国家, 第二层的第j列全是第j个国家。这样能符合题目的条件。比如说第1个国家, 在第一层的第一行全是A, 然后在第二层的第一行就有ABCDE……这样A就和所有的国家都连接了,其他国家也是一样的。只能说这种方... 阅读全文