随笔分类 - 洛谷
摘要:链接:Miku hash?不不不,kmp走起 唯一的问题是最后要有一个dp来解决 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int n; const i
阅读全文
摘要:链接:Miku #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const unsigned long long k=131,imp=1e7+1; unsig
阅读全文
摘要:链接:Miku 本题的关键就在于隐藏的单调性 开三个队列,分别放没切的,切出来的大的,切出来的小的。 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> const int m
阅读全文
摘要:链接:Miku、多组数据(蓝题和紫题的区别就是多组数据) 非常显然的贪心思路就是能放就放,放满了然后把下一次使用间隔最久的拿走、 但是这样会有一个问题,如果它已经进去了怎么办, 直接continue会wa掉,因为即使已经有了,我们还是应该更新一下下一个的值(易证) 那么该怎么办呢 if(pl[p[i
阅读全文
摘要:链接:Miku 链表存图,但是要注意创造出来个0和n+1号坑,这会方便我们后续处理的 贪心的部分就是选择最高的,然后把两边的去掉 等等,我反悔了咋办,我觉得选两边的更好!(这里有一个问题,要不都选,要不都不选,这是可以证明的) 那么我们就把两边和中间拼成一颗巨树,他的价值是两边之和-中间的(这样再选
阅读全文
摘要:链接:Miku 在做这个题之前我做了1168,所以该出来了个这 #include<iostream> #include<cstdio> #include<algorithm> #include<queue> using namespace std; priority_queue <int,vecto
阅读全文
摘要:链接:Miku 对顶堆做法 #include<iostream> #include<cstdio> #include<algorithm> #include<queue> using namespace std; priority_queue <int,vector<int>,greater<int
阅读全文
摘要:链接:Miku 一道巨大的模拟,因为每次都是从第一个开始干并且有顺序,那么就该用优先队列了 顺序问题只要重载一下运算符即可 CPU的任务如果干了一部分后被踢出去了,又轮到它的时候它会接着干而不是从头开始 #include<iostream> #include<cstdio> #include<alg
阅读全文
摘要:链接:Miku 显然在x>0的时候,函数都是随x增大而增大的 所以说嘛,优先队列就能搞出来 #include<iostream> #include<cstdio> #include<algorithm> #include<queue> using namespace std; int n,m; in
阅读全文
摘要:神题啊,题面读不懂 但是难以置信的是暴力出奇迹(Ac)了 感谢大佬 链接:Miku 不等式,不存在的,我们只需要首先做出来一个价格表,统计一下从最小已知售价到最大已知售价后到销量为零后 的所有价钱--销量关系 然后从小到大暴力枚举所有可能的税收/补贴 过了??? 过了 注意,第四个点中有两个一样的最
阅读全文
摘要:链接:Miku 很水的博弈论(红的) 除了SG函数,我们可以枚举一下10以内的数奇数必败偶数必胜 那么对于10+的数,奇数只能拆成奇数(必败)+偶数(必胜),所以奇数必败 偶数同理 所以这个题就剩下判断奇偶性了 #include<iostream> #include<cstdio> using na
阅读全文
摘要:一道分治典型题 链接:我不知道 如果把一个表分成四分,就很容易观察到规律 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int ma[1025][1025]; int n; int k; in
阅读全文
摘要:链接:Miku 这道题可以用分治来做,因为显然对于每一个数,我们可以把它分成两部分,分别处理,然后求和 不过唯一的问题是,n在操作最后的序列长度是多少,但是只要画个表,还是很显然的 注意数据范围 #include<iostream> #include<cmath> #include<cstdio>
阅读全文
摘要:链接:Miku 和HDu的那道还是蛮相似的,但是数据更强 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; int xx,yy,xxx,yyy; long long
阅读全文
摘要:链接:Miku 不显然的矩阵乘法 #include<iostream> #include<cstdio> #include<cstring> using namespace std; long long n; long long m=1000000007; long long c[5][5],a[5
阅读全文
摘要:链接:Miku 我记得扫描线有一道更水的例题来 扫描线,顾名思义,我们做这道题的时候,就要是用一道线来扫描一样 这里有一堆矩阵,把每一个区间拆成上下两个线段,然后按照某一个端点排序,这道线就开始从头扫描 到了一个矩阵开始的线,我们就更新扫描线的长度,反之减少即可 两个线段之间的长度很明显就是区间距离
阅读全文
摘要:链接:Miku 一道二分+线段树 显然暴力模拟会T飞,可以用二分解决 二分啥呢?二分mid与最后在q的位置的数的大小 但是怎么知道大还是小呢,既然我们只想要知道大还是小,那么那个点原来是 多大/多小是没有意义的,只有和mid的相对大小,那么我们就把比mid大的改成1,小于等于的改为0 然后进行排序
阅读全文
摘要:链接:Miku 没有UVa账号唉 卡了蒟蒻一天,因为漏掉了懒标记的下放。 线段树的巨大码量,为bug提供了绝佳的掩护 写完后,我哭了 人间的喜悦就这么简单吧 对于一个矩阵,有两个操作,子矩阵加v或者子矩阵变为v 询问子矩阵最大值,最小值和和 最简单的想法是线段树,不过太难实现了(对于本蒟蒻),所以说
阅读全文
摘要:链接:Miku 这道题比想象的要水,虽然说标签有个离散化,但是事实上根本不用 但是这道题的空间范围很苛刻,倘若写记录每个点的左右子节点的线段树写法的话,可能会MLE 所以我写了不记录的写法,这样虽然会牺牲时间,但是节省了空间 而且这道题的空间,竟然开n*3就可以了 思路:海报之间是没有区别的,暴力的
阅读全文
摘要:链接:Miku 凡天下之事,但知其一不知其二者多矣,可据理臆断欤? 我就是但知其一呜呜呜 %%%并感谢yyq大佬 很显然可以用线段树操作 这次的lazy指的是这个区间需不需要被反转,然后显然,一个区间反转后亮的灯泡的值就是区间灯泡总量-原来亮的值 所以写出来了个这个 #include<iostrea
阅读全文

浙公网安备 33010602011771号