摘要: Solution 这一道题的状态很好想,用f[i][j]来表示第i秒在第j个车站至少要等多久,预处理出在第i秒第j个车站是否有车,注意数据可能会超过T,要注意清零。 Code 阅读全文
posted @ 2019-08-25 22:52 Coder_cjh 阅读(195) 评论(0) 推荐(0) 编辑
摘要: Solution1 可以通过堆来实现,按照过期时间排序,优先处理过期时间短的,等到没办法塞进去的时候弹出堆顶,最后就是所有的取法 Solution2 可以通过链表+贪心实现,先把价值最高的放在最后,不浪费,之后再利用链表考虑前面的 阅读全文
posted @ 2019-08-24 22:30 Coder_cjh 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 看到这一道题其实和玉米田很类似,只不过多记录了前两行,其他大体细节差不多,注意滚动数组似乎不滚动更快??? Code 阅读全文
posted @ 2019-08-24 21:50 Coder_cjh 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 首先我们要找最小的,其实可以通过逆向思维,把所有大的都排除就可以得到小的,详细见代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=3e5+5; 4 int a[2*N],n; 5 int main(){ 6 scanf 阅读全文
posted @ 2019-08-24 13:52 Coder_cjh 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 这道题可以想到用KMP来解决,根据定义,对于每一个i,S[1-Nxt[i]+1~i]=S[1~Nxt[i]],并且不存在更大的循环节 Nxt[i]数组表示以i结尾的非前缀串与自身的前缀能匹配的最大数,可以方便更新 主要性质: 必要性:若循环元为len,当且仅S[1~i-len]=S[len+1~i] 阅读全文
posted @ 2019-08-23 21:55 Coder_cjh 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 模板题,进行异或操作后会抵消,相当于是找两个数进行异或 阅读全文
posted @ 2019-08-18 21:09 Coder_cjh 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 模板题,想象一条线从左边扫到右边,只有在矩阵边界才会产生影响,所以我们离散化缩小数据范围,再用线段树维护扫描线上的情况,得出结果 阅读全文
posted @ 2019-08-18 20:52 Coder_cjh 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 秦九韶算法+暴力枚举 因为系数是高精度,所以我们可以取模,模越多个越保险,但是一个就够了。 阅读全文
posted @ 2019-08-18 20:10 Coder_cjh 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 这道题通过隐含的条件可以发现产生的两类数是符合单调性的,就可以通过队列来维护 代码 阅读全文
posted @ 2019-08-18 19:44 Coder_cjh 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 这道题一看我们可以发现一个木桶原理,只要有一个短的,长的就没用了,我们就可以维护一个单调栈,如果碰到比前面小的,就直接进行统计和修改,最后再设n+1个矩形高度为0来统计,注意清零 阅读全文
posted @ 2019-08-17 21:34 Coder_cjh 阅读(112) 评论(0) 推荐(0) 编辑