
单调队列
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
codeforces1353E K-periodic Garland
https://codeforces.com/problemset/problem/1353/E首先下标对k取模,模数一样的吧i/k放进vector数组a[i%k]中我们最后的答案肯定是只选择某一个i(0<=i<k)这个相位,然后取中间的一段,使得答案最小由于存入的数字是i/k,那么最后的状态需要间隔为k,意思就是最后取的这段坐标的i/k是连续的我们现在开始枚举一个相位 d,然后他中间为点亮的灯的坐标所在的块数为b[1],b[2],b[len]那么,1的总数为sum,如果我们原创 2020-05-15 00:54:53 · 341 阅读 · 0 评论 -
洛谷P1776 宝物筛选
https://www.luogu.com.cn/problem/P1776当年在TB桌前跪着听懂了单调队列优化多重背包然后那天下午codevs上的多重背包一直过不去今天突然发现这题,补掉了真爽。#include<bits/stdc++.h>using namespace std;const int maxl=4e4+10;int n,m;int v[ma...原创 2020-02-12 21:11:12 · 263 阅读 · 0 评论 -
HDU 6319 Problem A. Ascending Rating
这题队友秒想正解,然后看错题,自己举个假反例吧自己的正解×掉了,赛后看到题解开始自闭。然后另一个队友脑补了一个想法丢给我写,倒着单调栈预处理,然后正着开很多个单调队列不停地维护当前数字开头的单调队列,然后如果当前第一个不是枚举位置的数字,就要单调队列合并一蛤,很麻烦很麻烦,然而还是写出来了,然而挂着对拍半小时没查出和暴力的错误,然而3000+msWA,很难受,一直到最后。其实我一开始有个想法也是可...原创 2018-07-30 23:12:03 · 207 阅读 · 0 评论 -
cf 940E Cashback
考场上能想出这道题挺爽得,还剩4分钟的时候A了,copyhls 的B的代码只改了一点点变量头文件和return 0竟然没被判重,结果是long long+=int*int,后面的会变成负数的问题。思考过程:看到数据范围是1e5 要么nlogn要么On,nlogn一般是dp+二分维护/线段树等数据结构维护,On一般是贪心或者dp(单调队列,单调栈优化)首先想贪心的想法,这题就是要找一种划...原创 2018-02-25 12:41:46 · 382 阅读 · 0 评论 -
HDU6406 Taotao Picks Apples
题意:给你一个序列,n个点m个询问,问你如果把第p个数字变成q,第一个元素为开头,遇到大的必选的严格上升子序列的长度考场上很久才A掉,太菜了QAQ,突然想起这种必取的之前在claris的多校中做过,倒着单调队列就能预处理出以每个元素开头,遇到大的必选的严格上升子序列的长度upnum[i],于是我们就想到了吧询问离线倒着处理,先预处理出原本应该在队列中的是哪些元素,然后我们看当前询问的最近的原队...原创 2018-08-16 10:11:29 · 481 阅读 · 0 评论 -
codeforces 1195E
传送门:http://codeforces.com/problemset/problem/1195/E题意是对于一个n*m矩阵,把所有a*b的子矩阵中的最小值加起来,问和是多少?考场上想得是从小到大枚举数字,然后就知道这个数字{i,j}能统治的区域为{max{1,i-a+1},max{1,j-b+1}}到{min{n,i+a-1},min{m,j+b-1}}这个矩形,然后二维线段树平面覆盖...原创 2019-07-18 10:13:12 · 403 阅读 · 0 评论 -
2019牛客第三场 F Planting Trees
上次cf做了一道二维单调队列,于是在这里也枚举右下角的点用二维单调队列,结果好像不行,,,最后题解是直接枚举上下边界,然后从左到右单调队列扫过去记录,记录当前右边界下最远的左边界可以在哪中间超时,加了很多优化,结果是最后在mi[i]赋初值的地方出了问题,以前一直做1e5的题目,用maxl作最大值,结果这里数值大小是1e5,maxl只有500。。。#include<bits/st...原创 2019-07-26 11:14:40 · 281 阅读 · 0 评论