洛谷
追风者_
要我自我介绍,挺秃然的
展开
-
P3384 【模板】轻重链剖分/树链剖分
模板题记录一下AC代码:#include<iostream>#include<string>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>#include<map>#include <queue>#include<sstream>#include <stack>#include原创 2021-08-08 18:40:26 · 240 阅读 · 0 评论 -
【洛谷】 P3157 动态逆序对 cdq分治 三维偏序
思路:把问题转化成插入元素,也就是整个过程倒过来看,设一开始(还没插入元素前时)的Ti=0T_i = 0Ti=0,那么即是求:Ti<=TjT_i<=T_jTi<=TjPosi>PosjPos_i > Pos_jPosi>PosjVali<ValjVal_i < Val_jVali<Valj或者Ti<=TjT_i<=T_jTi<=TjPosi<PosjPos_i < Pos_jPosi<原创 2021-05-26 22:47:55 · 135 阅读 · 0 评论 -
【洛谷】 P3810 【模板】三维偏序(陌上花开)
思路:三维偏序的模板题。思想就是:1.先对x进行排序,然后可以把区间分割成[l,mid]和[mid+1,r][l,mid]和[mid+1,r][l,mid]和[mid+1,r]的子区间。2.对于右区间,所有左区间内的元素都是“有可能”对其产生贡献的(因为固定了x左边小右边大)。那么现在考虑第二维y,对于这个[l,r][l,r][l,r]区间进行对y的排序。3.排序完后进行遍历,对于当前i,如果他是左区间的,就用树状数组单点更新他的z值;如果他是右区间的,说明i之前有的元素已经更新过的元素满足:原创 2021-05-26 14:34:07 · 295 阅读 · 0 评论 -
【洛谷】 P2717 寒假作业 cdq分治 树状数组
题意:给定一个长度为 n 的正整数序列,求出有多少个连续子序列的平均值不小于 k。思路:对于平均值的问法,先所有a[i]-k,然后问题就转化成有多少个区间,其和大于等于0。若先处理前缀和,那么就是在问,我当前如果固定了右端点是iii,那么我要知道前面有多少个数是<=sum[i]<=sum[i]<=sum[i]的,这个就转化成一个cdq分治的问题了,类似于求逆序对。AC代码:#include<iostream>#include<string>#incl原创 2021-05-25 16:45:02 · 178 阅读 · 0 评论 -
P2345 [USACO04OPEN]MooFest G cdq分治 树状数组
题意:横坐标上若干点,坐标为X[i],每个点有个权值val,问你所有两两max(val[i],val[j])∗∣X[i]−X[j]∣max(val[i],val[j])*|X[i]-X[j]|max(val[i],val[j])∗∣X[i]−X[j]∣的和思路:比较裸的cdq分治题目,我们把题意条件分成两部分:对于当前i要计数的有1.val[j]比当前val[i]小的(这样val[i]才用得上)。2.同时要知道他们的坐标来求和。对于第一点,我们只需要先按照val从小到大排序,这样对于i,满足第一原创 2021-05-23 22:54:56 · 299 阅读 · 2 评论 -
【网络流24题】P4016 负载平衡问题 最小费用最大流
题目描述GG 公司有 nn 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使 nn 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。思路:可以唯一确定最后各自都相等时的值each=sum/neach = sum/neach=sum/n。将a[i]重新赋值为a[i] -= each。建图:对于a[i]为正的部分,相当于流出量,由s连出。对于a[i]为负的部分,相当于流入量,连向t,费用都为0。然后相邻的再连边,流量为inf,费用为1(相当于每个数流动时需要消耗原创 2021-03-26 23:40:58 · 172 阅读 · 0 评论 -
【网络流24题】P4174 [NOI2006] 最大获利 最大权闭合子图
思路:将题中的点和边都看成事件。由于选边的时候要选成对的点,且边事件依赖于点事件的发生,满足闭合图的性质。建图:建立源点,连向有正贡献的边事件(也看成一个点),流量为对应贡献,这个点再向依赖的点连流量为inf的边,依赖点是负贡献,它们各自向汇点连流量为负贡献的绝对值的边。这个时候对这个二分图跑求一个最小割,即是最小损失,然后用正贡献和-最小损失即是答案。关于正确性,如果割掉用户边,就相当于减少了收益,可看成损失。若割掉了中转站的边,相当于付出了代价,看成损失。而流量为inf的边不会被割,也就解决.原创 2021-03-26 23:05:47 · 125 阅读 · 0 评论 -
【网络流24题】 P2774 方格取数问题 最小割
有一个 mm 行 nn 列的方格图,每个方格中都有一个正整数。现要从方格中取数,使任意两个数所在方格没有公共边,且取出的数的总和最大,请求出最大的和。思路:任意一个方格都和周围四个互斥,那么就构成了一个二分图,且可以用(i+j)的奇偶性区分两部。我们想要实现选or不选某个点(在二分图中),来看有没有把它的值加入贡献。考虑网络流,让源点向其中一部连流量为对应值的边,另一部向汇点连流量为对应值的边。二分图内部连流量无限。建图完后,会发现问题转化成了割掉多少边使得损失最小,这就是一个求最小割的问题了。关于原创 2021-03-26 22:17:35 · 206 阅读 · 0 评论 -
【洛谷】 P2709 小B的询问 莫队算法
题意:若干询问,每次询问输出区间内每个数出现次数的平方和思路:既然是考莫队算法,我们就像add和del函数怎么写。考虑对每个位置i,它对答案的贡献就是这个位置产生的次数贡献,cnt[a[i]]++,然后看看应该增多少。若原来的cnt[a[i]]为m-1,目前为m,那增量为m2 - (m-1)2 = 2m - 1。所以add函数就加上2*m-1即可。del则反过来。AC代码:#include<iostream>#include<string>#include<alg原创 2020-08-05 00:26:56 · 155 阅读 · 0 评论 -
【洛谷】P1903 [国家集训队]数颜色 / 维护队列 带修莫队
题目描述墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问。墨墨会向你发布如下指令:1、 Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔。2、 R P Col 把第P支画笔替换为颜色Col。为了满足墨墨的要求,你知道你需要干什么了吗?输入格式第1行两个整数N,M,分别代表初始画笔的数量以及墨墨会做的事情的个数。第2行N个整数,分别代表初始画笔排中第i支画笔的颜色。第3行到第2+M行,每行分别代表墨墨会做的一件事情,格式见题干部分。输出格原创 2020-08-04 23:43:39 · 251 阅读 · 1 评论 -
【洛谷】 SP3267 DQUERY - D-query 莫队算法模板题
题目描述English VietnameseGiven a sequence of n numbers a _{1}1 , a _{2}2 , …, a _{n}n and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to return the number of distinct elements in the subseq原创 2020-08-04 23:31:52 · 172 阅读 · 0 评论 -
【洛谷 P2740】 草地排水Drainage Ditches 网络流模板题(最大流)
题目背景在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水。这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间。因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没的烦恼(不用担心,雨水会流向附近的一条小溪)。作为一名一流的技师,农夫约翰已经在每条排水沟的一端安上了控制器,这样他可以控制流入排水沟的水流量。题目描述农夫约翰知道每一条排水沟每分钟可以流过的水量,和排水系统的准确布局(起点为水潭而终点为小溪的一张网)。需要注意的是,有些时候从一处到另一处不只有一条排水沟。原创 2020-07-09 22:48:15 · 212 阅读 · 0 评论 -
【洛谷 P3388】 【模板】割点(割顶) Tarjan 算法
题目背景割点题目描述给出一个 nn 个点,mm 条边的无向图,求图的割点。输入格式第一行输入两个正整数 n,mn,m。下面 mm 行每行输入两个正整数 x,yx,y 表示 xx 到 yy 有一条边。输出格式第一行输出割点个数。第二行按照节点编号从小到大输出节点,用空格隔开。输入输出样例输入 #1 复制6 71 21 31 42 53 54 55 6输出 #1 复制15说明/提示对于全部数据,1\leq n \le 2\times 10^41≤n≤2×104原创 2020-06-02 12:47:47 · 293 阅读 · 0 评论 -
【洛谷 4799】 世界冰球锦标赛 Meet in the Middle 折半搜索
题目描述译自 CEOI2015 Day2 T1「Ice Hockey World Championship」今年的世界冰球锦标赛在捷克举行。Bobek 已经抵达布拉格,他不是任何团队的粉丝,也没有时间观念。他只是单纯的想去看几场比赛。如果他有足够的钱,他会去看所有的比赛。不幸的是,他的财产十分有限,他决定把所有财产都用来买门票。给出 Bobek 的预算和每场比赛的票价,试求:如果总票价不超过预算,他有多少种观赛方案。如果存在以其中一种方案观看某场比赛而另一种方案不观看,则认为这两种方案不同。输入格式原创 2020-05-24 09:59:12 · 377 阅读 · 0 评论 -
【洛谷】 P1462 通往奥格瑞玛的道路 二分答案 + SPFA 超详解~
题目背景在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量有一天他醒来后发现自己居然到了联盟的主城暴风城在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛题目描述在艾泽拉斯,有n个城市。编号为1,2,3,…,n。城市之间有m条双向的公路,连接着两个城市,从某个城市到另一个城市,会遭到联盟的攻击,进而损失一定的血量。每次经过一个城市,都会被收取一定的过路费(包括起点和终...原创 2020-04-04 00:29:07 · 445 阅读 · 0 评论 -
【洛谷】 P1144 最短路计数 SPFA
题目描述给出一个NN个顶点MM条边的无向无权图,顶点编号为1-N1−N。问从顶点11开始,到其他每个点的最短路有几条。输入格式第一行包含22个正整数N,MN,M,为图的顶点数与边数。接下来MM行,每行22个正整数x,yx,y,表示有一条顶点xx连向顶点yy的边,请注意可能有自环与重边。输出格式共NN行,每行一个非负整数,第ii行输出从顶点11到顶点ii有多少条不同的最短路,由于答案有可...原创 2020-04-02 23:47:09 · 241 阅读 · 1 评论 -
【洛谷 P1629 邮递员送信】 Floyd or Dijkstra 堆优化 最短路问题
题目描述有一个邮递员要送东西,邮局在节点 11。他总共要送 n-1n−1 样东西,其目的地分别是节点 22 到节点 nn。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有 mm 条道路。这个邮递员每次只能带一样东西,并且运送每件物品过后必须返回邮局。求送完这 n-1n−1 样东西并且最终回到邮局最少需要的时间。输入格式第一行包括两个整数,nn 和 mm,表示城市的节点数量和道路数量...原创 2020-04-02 19:08:10 · 899 阅读 · 0 评论 -
【洛谷】P4779 单源最短路径(标准版+弱化版) Dijkstra堆优化
题目背景2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路。然后呢?100 \rightarrow 60100→60;\text{Ag} \rightarrow \text{Cu}Ag→Cu;最终,他因此没能与理想的大学达成契约。小 F 衷心祝愿大家不再重蹈覆辙。题目描述给定一个 nn 个点,mm 条有向边的...原创 2020-04-01 19:29:34 · 347 阅读 · 0 评论 -
【洛谷】 P1119 灾后重建 最短路floyd算法
题目背景BB地区在地震过后,所有村庄都造成了一定的损毁,而这场地震却没对公路造成什么影响。但是在村庄重建好之前,所有与未重建完成的村庄的公路均无法通车。换句话说,只有连接着两个重建完成的村庄的公路才能通车,只能到达重建完成的村庄。题目描述给出BB地区的村庄数NN,村庄编号从00到N-1N−1,和所有MM条公路的长度,公路是双向的。并给出第ii个村庄重建完成的时间t_iti ,你可以认...原创 2020-03-31 20:39:06 · 253 阅读 · 0 评论 -
【洛谷】P1972 [SDOI2009]HH的项链 离线预处理 + 树状数组
题目描述HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答…… 因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入格式一行一个正整数 nn,表示项链长...原创 2020-03-30 20:31:22 · 165 阅读 · 0 评论 -
【模板】矩阵快速幂 洛谷 P3390
题目背景矩阵快速幂题目描述给定 n\times nn×n 的矩阵 AA,求 A^kAk。输入格式第一行两个整数 n,kn,k 接下来 nn 行,每行 nn 个整数,第 ii 行的第 jj 的数表示 A_{i,j}Ai,j 。输出格式输出 A^kAk共 nn 行,每行 nn 个数,第 ii 行第 jj 个数表示 (A^k)_{i,j}(Ak)i,j ,每个元...原创 2020-03-27 00:43:36 · 398 阅读 · 0 评论 -
【洛谷 P3372】【模板】线段树 1 pushdown 操作
题目描述如题,已知一个数列,你需要进行下面两种操作:将某区间每一个数加上 kk。求出某区间每一个数的和。输入格式第一行包含两个整数 n, mn,m,分别表示该数列数字的个数和操作的总个数。第二行包含 nn 个用空格分隔的整数,其中第 ii 个数字表示数列第 ii 项的初始值。接下来 mm 行每行包含 33 或 44 个整数,表示一个操作,具体如下:1 x y k:将区间 [x, y...原创 2020-03-25 12:35:13 · 226 阅读 · 2 评论 -
【洛谷】P1217 回文质数 Prime Palindromes DFS
题目描述因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。写一个程序来找出范围 [a,b] (5≤a<b≤100,000,000)a,b( 一亿)间的所有回文质数。输入格式第 1 行: 二个整数 a 和 b .输出格式输出一个回文质数的列表,一行一个。输入输出样例输入 #1复制5 500输出 #1复制5711101...原创 2020-03-04 13:06:31 · 672 阅读 · 0 评论