首页 > TAG信息列表 > Bel

[Ynoi2019 模拟赛] Yuno loves sqrt technology III

题面 Yuno loves sqrt technology III 题解 一道很水的黑题。 做过蒲公英的同学应该都知道这和蒲公英很类似。 不同的是它维护的是区间众数的个数。 因为区间众数不具有可加性,再加上强制在线,显然是用分块来维护。 首先正常分块。 预处理块内信息时的整合就直接 \(\sqrt(n) ^ 3\)

[CF1535E]Gold Transfer

题目 传送门 to CF 思路 由于 c i > c p i

bel和QPushButton插入图片自适应label大小等比缩放

  方法一(只对QLabel有用)、 //label是QLabel的对象指针 ui->label->setScaledContents(true); 方法二(对两种都有用)、 QString imagepath = ":/images/btn.png"; QPixmap image0(imagepath); QPixmap image = image0.scaled(QSize(this->width(),image0.height())); /* 这个scal

【SDOI2008】Sandy的卡片(二分答案+后缀数组)

【SDOI2008】Sandy的卡片 SA 经典题型:后缀数组+二分答案。 本题不难,我们需要先要处理题目重新定义的这个“相等”。这个处理方式和一道 HDU 的题很像,好像叫 Musical Theme。我们只需要记录数组相邻两个数字的变化量即可。因为在数字加上同一个数后,差是不变的。 我们把每个处理后的

洛谷 P4137 Rmq Problem / mex(莫队+值域分块)

   看到这个题目后,删除 O(1) 添加 O(n),做法就是遍历区间 [now,n] 但是最后一个点会T 看到有人说值域分块可以过,虽然最后一个点过了,但是前面又过不了了,最后还是要开 O2 void add(int pos) //暴力添加代码 { int x=a[pos]; if(!vis[x] && now==x){ for(int i=

【洛谷P5906】【模板】回滚莫队&不删除莫队

题目 题目链接:https://www.luogu.com.cn/problem/P5906 给定一个序列,多次询问一段区间 \([l,r]\),求区间中相同的数的最远间隔距离。 序列中两个元素的间隔距离指的是两个元素下标差的绝对值。 思路 显然用一般的莫队处理这种问题时,要删除一个元素时并不可以做到 \(O(1)\) 删除。

ZR265 归来

链接:http://zhengruioi.com/problem/265 第一种操作使得你可以任意访问该字符串的全排列 因此可以得到\(\frac{n!}{a!*b!*c!*d!}\)种方案 然后把每一组(a,b,c,d)看成一个节点的话 第二种操作就是在这些节点中连边 最终答案就是一个最长路 tarjan缩点+dp即可 #include<bits/stdc++.h>

P2357 守墓人(分块)

传送门 算法分析 区间修改 区间查询 单点修改 单点查询 显然可以用线段树做 但是我们用另外一种神奇的暴力把这个 2e5的题碾过就会很舒服 分块是一种比较常见的思想 分块也就是分治 把一个大区间分成几个小区间计算 我们可以把每\(log_n\) 个数划分成一组 如果区间修改了整个块的

HDU 4005 The war(边双连通)

题意 ​ 给定一张 \(n\) 个点 \(m\) 条边的无向连通图,加入一条边,使得图中权值最小的桥权值最大,如果能使图中没有桥则输出 \(-1\)。 思路 ​ 先对原图边双缩点,然后变成了一棵树。在树上加一条边等价于使一条路径上的边都不是桥,那么原题转化为在树上删一条路径,使得最小的边最大。固

LG2463/BZOJ4698 「SDOI2008」Sandy的卡片 后缀数组

问题描述 LG2463 BZOJ4698 题解 \mathrm{Code} #include<bits/stdc++.h> using namespace std; template <typename Tp> void read(Tp &x){ x=0;char ch=1;int fh; while(ch!='-'&&(ch<'0'||ch>'9')) ch=g

IOI Islands

BZOJ [Ioi2008]Island 岛屿 Description 你将要游览一个有N个岛屿的公园。从每一个岛i出发,只建造一座桥。桥的长度以Li表示。公园内总共有N座桥。尽管每座桥由一个岛连到另一个岛,但每座桥均可以双向行走。同时,每一对这样的岛屿,都有一艘专用的往来两岛之间的渡船。 相对于乘

19_08_10[校内训练]割图

题意 给一个图,对每个点求(删去一条出边)的(到一号节点的(最大的(最短路的长度))),有边权。n,m≤1E5。 方便起见,没有重边和自环。   思考 先建出最小生成树,可以发现每次一定要删去连向父亲的边。此后,会沿着它的出边走向其他或自己的祖先,再算上原先图的最短路长度。 那么对于每个节点维护一

约会 Rendezvous:基环树/倍增lca

提炼:tarjan判环,dfs建树,倍增lca,预处理环两点间距离 我犯的错误: 1.基环树不只有一棵,可以有很多 2.自环不能将其忽略,(对于我的算法)应该将其特殊考虑在算法内 3.代码一定要简洁有力,不能让自己调都恶心 Code 数组含义: que[N]队列,in_que[N]tarjan判是否入队,dfn[N],low[N],bel[N]点属

BZOJ.4144.[AMPPZ2014]Petrol(Kruskal重构树)

BZOJ 看别人代码的时候发现哪一步都很眼熟,突然想起来,就在四个月前我好像看过还给别人讲过?mmp=v= 果然不写写就是容易忘。写了好歹忘了的时候还能复习呢(虽然和看别人的好像也没多少差别?)。 首先非加油站的点是没有用的。考虑如何删掉这些点然后在加油站之间连对应的边。 搬这里的一

[luogu5048] [Ynoi2019模拟赛] Yuno loves sqrt technology III

题目链接 洛谷. Solution 思路同[BZOJ2724] [Violet 6]蒲公英,只不过由于lxl过于毒瘤,我们有一些更巧妙的操作。 首先还是预处理\(f[l][r]\)表示\(l\sim r\)块的众数数量,注意这里不要求具体是什么,我们就有一些奇技淫巧了。 当然第一步还是离散化,对于权值为\(v\)的点,我们开一个\(vecto

[HNOI2014]世界树

[Luogu3233] [LOJ2206] 题解及代码 题意 : 标记一些树上的点,每个点会被最近(编号最小)的标记点控制,问每个标记点会控制多少点 先用两遍\(dfs\)求出每个点被哪个点控制 , 第一遍找儿子的贡献 , 第二遍找父亲的贡献 然后套路建虚树 然后对于虚树上每一条边 , 如果两个点被同一个点

P2801 教主的魔法

P2801 教主的魔法 区间加法,区间查询 显然就是分块辣 维护一个按块排好序的数组。 每次修改依然是整块打标记,零散块暴力。蓝后对零散块重新排序。 询问时整块二分,零散块暴力就好辣 注意细节挺多和边界问题TAT #include<iostream>#include<cstdio>#include<cstring>#include<algorit

UVA 760 DNA Sequencing

题目大意:给两个DNA序列,求这两个序列的最长公共子串,按字典序输出,长度N<=300 可以直接用O(n^3)的暴力过。用后缀数组时间复杂度为O(nlogn)。。 先遍历height数组求出最大长度,然后再扫一遍height数组,记录最长子串的起始位置。 #include<iostream> #include<stdio.h> #include<stri

1797: [Ahoi2009]Mincut 最小割

1797: [Ahoi2009]Mincut 最小割 链接 分析:    代码: #include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<cmath>#include<cctype>#include<queue>#include<vector>#include<set>#include<ma

4515: [Sdoi2016]游戏

4515: [Sdoi2016]游戏 链接 分析:   树链剖分 + 超哥线段树。注意细节。 代码: #include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<iostream>#include<cctype>#include<set>#include<vector>#include<queue>#inc

BZOJ5415 [NOI2018] 归程

今天也要踏上归程了呢~(题外话 kruskal重构树!当时就听学长们说过是重构树辣所以做起来也很快233 就是我们按照a建最大生成树 这样话呢我们就可以通过生成树走到尽量多的点啦 然后呢就是从这个子树内走到1的最短路 提前处理出来然后就是子树最小值啦w 附代码。(些许丑陋( //Love and

UOJ 407(IOI2018 D1T3)

给定一张$n$个点,$m$条边的无向连通图以及$q$次询问,每次询问给出$S,E,L,R$,问你是否能从$S$出发,不经过编号小于$L$的点到达某个编号大于等于$L$且小于等于$R$的点,此时切换状态,不经过编号大于$R$的点到达$E$。 $$n\le200000,m\le400000,q\le200000$$ 这种有限制的连通性问题一般考虑Kr