- 博客(224)
- 收藏
- 关注
原创 fft模板+讲解
讲解:https://blog.csdn.net/qq_37136305/article/details/81184873 有点小问题,一个是代码不太对,另一个是倍增的图不太对。讲解+代码:https://www.cnblogs.com/zwfymqz/p/8244902.html。
2022-11-11 19:49:46 216 1
转载 树的重心讲解
https://www.luogu.com.cn/blog/Five-shifts-Forever/shu-di-zhong-xin性质1.树中所有点到某个点的距离和中,到重心的距离和是最小的(边长为1的情况下)。2.将树以某点进行分割后,最大子树包含的节点数为x,以重心进行分割的方案x会最小。......
2022-07-07 20:01:49 130
转载 codeforces 446A dp
题目链接:https://codeforces.ml/problemset/problem/446/A转自:https://blog.csdn.net/hongrock/article/details/37754307题意:给一个序列,求最多改变一个数的情况下最长的严格上升的序列长度。思路:第i位的答案有三种情况:1、令A[i]比A[i-1]大,然后求出从A[i-1]向左延伸的最长长度2、令A[i]比A[i+1]小,然后求出A[i+1]向右延伸的最长长度3、同时使得A[i-1]<A[i]&
2020-09-27 19:14:32 171
原创 蓝桥杯 试题 历届试题 小数第n位
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T456题意:问题描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。 如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。 本题的任务是:在上面的约定下,求整数除法小数点后的第n位开始的3位数。输入格式 一行三个整数:a b n,用空格分开。a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000)输出格式 一行3位数字,表示:
2020-09-26 10:05:34 145
原创 Codeforces 1349A Orac and LCM 数论 gcd和lcm的性质
题目链接:https://codeforces.ml/problemset/problem/1349/A转自:https://blog.csdn.net/qq_43563669/article/details/106087117https://blog.csdn.net/li_wen_zhuo/article/details/106087581题意:给一组数,把任意一对数的lcm放到集合m中,求m中数的gcd。思路:先回想一下lcm和gcd的性质。假设a[i]和a[j]都没有2这个因子,那么lcm
2020-06-27 21:42:57 363
转载 Codeforces 1344A Hilbert‘s Hotel 取模的运用
题目链接:https://codeforces.ml/problemset/problem/1344/A转自:官方题解 https://codeforces.ml/blog/entry/76819题意:给一串序列a,计算k+akmodna_ {k mod n}akmodn 对于任意一个整数(包括负数和0)是否有相同的情况。个人思路:首先对于序列a,先让它们加上0 ~ n-1变成d,这样对于后续的每一次计算,都是在这个基础上加减n-1.也就是说每一轮的序列的之间的差值是不变的。就想到可以先排序然后计算
2020-05-29 09:27:13 180
转载 Codeforces 1358D - The Best Vacation 贪心+尺取
题目链接:https://codeforces.ml/problemset/problem/1358/D转自:https://www.cnblogs.com/stelayuri/p/12971546.html题意:一年有n个月,每个月有d【i】天,每天可以获得的价值为该天是当前月份的第几天,求一段连续天数x使得总价值最大。思路:可以想到是尺取,如果把每个月份都展开是肯定不行的。注意到最优的选取方案肯定会选到某个月的最后一天,那么就可以倒序枚举,预处理每个月可获得的价值总和。如果x>0,继续向前枚
2020-05-27 16:57:14 273
转载 Codeforces 1358C - Celex Update 规律
题目链接:https://codeforces.ml/problemset/problem/1358/C转自:官方题解 https://codeforces.ml/blog/entry/77869题意:一个矩形内有多个方格,每个方格都按照顺序填写了一些数。给两个坐标,求这两个坐标间路径经过的数字和不同的条数。思路:先找到数字和最小的路径,然后依次改变其和,每次增加1,直到最大。发现路径数就是不属于数字和最小的路径的方格个数+1.#include <bits/stdc++.h>usi
2020-05-27 08:50:11 324
转载 Codeforces 1332C K-Complete Word 转变成周期回文字符串 贪心
题目链接:https://codeforces.ml/problemset/problem/1332/C转自:https://blog.csdn.net/mrcrack/article/details/105245298题意:给一个字符串,要求变成周期是k并且是个回文串。求改变字符的最小个数。思路:先把字符串划分成长度为k的子串,根据题意,每个子串一定是相同的回文串。问题变成了如何把这些子串变成相同的回文串。求最小个数,那么应该让对应位置出现个数最多的字符尽可能的不改变,因此统计每个子串中对应位置出现
2020-05-26 17:34:58 607
转载 Codeforces 1334C Circle of Monsters 前缀和+贪心
题目链接:https://codeforces.ml/problemset/problem/1334/C转自:https://blog.csdn.net/qq_45458915/article/details/105475056题意:一群怪物围成一个圈,每只怪物有a点血量和b点爆炸伤害,如果一只怪物血量为0,它会爆炸给下一只怪物造成b点伤害,如果下一只怪物已经死亡则无事发生。人每次开枪只能造成一点伤害,求杀死所有怪物所需的最小开枪数目。思路:一定是选择一只怪物作为开始然后挨个杀。先求出每只怪物如果被
2020-05-21 16:05:53 240
转载 166E - Tetrahedron 正四面体路径计数 dp
题目链接:https://codeforces.ml/problemset/problem/166/E来源:官方题解 https://codeforces.ml/blog/entry/4173题意:一个正四面体,一只蚂蚁每一时刻只能停留在顶点处,一秒只能移动1并且不能停留。求从D出发经过n秒后回到D的路径数。思路:d表示在D处的方案数,abc表示在ABC处的方案数。对于每一秒,可以到达D的方案数为前一秒在ABC时的方案数,可以到达ABC的方案数为d3(从顶点有3种方案到达)+2abc(从ABC可以有两
2020-05-19 15:51:04 253
原创 codeforces 431C - k-Tree dp
题目链接:https://codeforces.ml/problemset/problem/431/C转自:https://blog.csdn.net/qq_25955145/article/details/81261580题意:给一个无限的满k叉树,求从根节点开始经过的路径总长度为n,且其中至少一条边的长度不小于d的路径数。思路:首先假设k为无穷大, 初始状态dp【1】=1dp【2】=dp【1】+1,包括一条从路径长度为1的出来走到下一个节点p,在点p处剩余可走的长度为1,即dp【1】(dp【i】
2020-05-17 21:46:45 175
转载 Number of Ways CodeForces - 466C 分成三段相等数字和
题目链接:https://codeforces.com/problemset/problem/466/C?csrf_token=2d33d8e5911dbe22fd3b542450854920转自:https://blog.csdn.net/SakuraKarma/article/details/104376785题意:给一段序列,求能把序列分成三段连续相等的数字和的方法数。思路:求一下前缀和,从1开始,枚举前缀和,统计下从1-(当前下标-1)的可以作为分段点的个数cnt,当以当前下标为分段点时,共有
2020-05-14 18:38:11 199
原创 A Plug for UNIX UVA - 753 插头转换 floyd+匈牙利
题目链接:https://vjudge.net/problem/UVA-753题意:有n个插座 m个设备 k种转换器,转换器每种的个数是无限的,并且可以嵌套使用,求最少剩余的设备数。思路:整体思路就是建图,然后用floyd求出哪些设备可以通过一些转换器的使用进而用到插座,然后再用匈牙利算法求一个最大匹配。用一个map分配每种插头或插座的id 注意所有插头或插座的类型加起来可能会达到400种,数组要开的大一点。特别注意匈牙利算法调用时参数不能等于0#include <cstdio>
2020-05-12 16:35:44 202
原创 Mayor's posters POJ - 2528 线段树染色+特殊离散化
题目链接:https://vjudge.net/problem/POJ-2528#author=0参考:https://blog.csdn.net/weixin_44077863/article/details/98037868https://blog.csdn.net/baiyifeifei/article/details/81672170题意:给区间染色,求最后能看到多少颜色。思路:区...
2020-05-06 20:57:14 127
原创 A Simple Problem with Integers POJ - 3468 线段树区间修改+区间查询
题目链接:https://vjudge.net/problem/POJ-3468题意:区间修改和查询。思路:区间修改时一定要下传标记,这样才能更新上层节点的值,否则会出错。如 5 31 1 1 1 1C 1 2 1C 2 3 1Q 1 2如果在区间修改时不下传标记,当对执行C 2 3 1时,此时4号节点也就是1和2的父节点的lazy没有下传导致pushup操作时4号节点的sum会出...
2020-05-05 19:03:31 144
转载 Strongly connected HDU - 4635 加最多的边让其保持不强连通
题目链接:https://vjudge.net/problem/HDU-4635#author=0转自:https://xiaoxiaoh.blog.csdn.net/article/details/104441555题意:给一个有向无重边无自环的图,求最多可以添加多少边,让其仍然不连通,没有重边且没有自环。思路:一个n个点的有向完全图的边数为n* (n-1),已经有了m条边,剩余n* (n...
2020-05-04 17:52:46 202
原创 Warm up HDU - 4612 邻接表重边求桥+边双+缩点+树的直径
题目链接:https://vjudge.net/problem/HDU-4612题意:给一个连通有重边的无向图,现在添加一条边,求剩余桥的最小数量。参考:https://blog.csdn.net/babing2770/article/details/102076878思路:先求边双然后缩点,然后重新建图,其中每条边都是原图中的桥,只要在树的直径的两端连一条线,所能消除的桥的数量是最多的。...
2020-05-03 22:08:07 315
原创 Redundant Paths POJ - 3177 边双连通分量+缩点
题目链接:https://vjudge.net/problem/POJ-3177题意:给一个图,求添加最少的边的数量,让其任何两点之间都有不少于两条的不同道路。保证图是连通的。题意不是很明确重边的问题,这里默认两点间最多有一条边。思路:其实就是求添加最少的边,让其变成边双连通分量。先找出图中的桥并且标记,然后再来一次dfs保证不经过桥就可以求出边双连通分量。 定理: 使树变为边双联通图的最少加...
2020-04-28 17:39:09 216
转载 Network POJ - 3694 桥+lca
题目链接:https://vjudge.net/problem/POJ-3694#author=0转自:https://blog.csdn.net/JiangHxin/article/details/104436852题意:给一个图,初始一定是连通的。现在添加多条边,每次添加边后输出图中剩余桥的数目。思路:题目输入没有重边。如果输入有重边可能原本是桥添加了重边就不是桥了。先找出所有的桥,br...
2020-04-27 11:20:34 132
原创 Critical Links UVA - 796 无向图的桥模板
https://www.cnblogs.com/gzh-red/p/11253230.html#_label3_1_2_0
2020-04-24 20:13:31 117
原创 Network UVA - 315 无向图的割顶
题目链接:https://vjudge.net/problem/UVA-315#author=0题意:给出一个无向图,求割顶。#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <cstring>#include <...
2020-04-24 16:38:02 120
转载 How Many Answers Are Wrong HDU - 3038 带权并查集
题目链接:https://vjudge.net/problem/HDU-3038#author=jack10086转自:https://blog.csdn.net/weixin_44224825/article/details/104241108题意:给多个区间以及区间和,假设前面的推论是正确的,求有多少矛盾的推论。区间和不能为负数。例如1-10=100,1-5=200就是矛盾的。思路:pa...
2020-04-23 16:31:31 82
原创 食物链 POJ - 1182 种类并查集或带权并查集
题目链接:https://vjudge.net/problem/POJ-1182错误代码用并查集表示是同类,vector保存关系。查询时用的是根节点的关系,由于合并时没有把子节点上的关系转移到根节点导致关系缺失。#include <cstdio>#include <algorithm>#include <queue>#include <vect...
2020-04-21 17:41:54 172
原创 Wireless Network POJ - 2236 并查集判断两点是否连通
题目链接:https://vjudge.net/problem/POJ-2236题意:给多个电脑的坐标,初始电脑都是损坏的,O操作代表维修电脑,S操作查询两电脑是否可以通讯。两电脑可以通讯的前提是距离不超过d,可以由多台电脑中转。思路:一开始的bfs超时了。判断是否连通其实用不到bfs,一个并查集就好了。#include <cstdio>#include <algorit...
2020-04-20 09:36:14 271
原创 Network of Schools POJ - 1236 强连通分量+缩点法
题目链接:https://vjudge.net/problem/POJ-1236题意:给一个有向图,求1.可以遍历整个图最少所需的起点个数 2.添加最少的边让其变成强连通图思路:先用缩点法,对于1,入度为0的点的个数即为所求。对于2,max(入度为零的点的个数,出度为0的点的个数)即为答案。特判本身是强连通图的情况。错误做法 :对于1,连通块个数就是答案。但是假如1->2,3->...
2020-04-19 09:56:03 165
转载 Space Ant POJ - 1696 点的排序
题目链接:https://vjudge.net/problem/POJ-1696转自:https://blog.csdn.net/yeyun666/article/details/50061923题意:给多个点,起点是(0,给的点中最小的y),要求只能向左转并且路径不能相交,求最多可以经过的点并输出路径。思路:首先一定可以经过所有点。 先找出左下角的点,然后不断排序来寻找在它左边最靠近它的...
2020-04-16 15:46:01 135
原创 Board Wrapping UVA - 10652 凸包+向量旋转模板
题目链接:https://vjudge.net/problem/UVA-10652白书P272题意:给多个木板,每块木板用x,y,w,h,j描述。(x,y)为中心点,w,h为宽度和高度。j为顺时针旋转绕中心旋转的角度。用一个面积最小得凸多边形将所有木板包起来,求木板占多边形得面积。思路:先处理木板的顶点,先用角度计算弧度,因为是顺时针需要加负号。向量旋转时因为是绕中心旋转,因此用一个连接木板...
2020-04-15 15:04:58 140
原创 线段相交(规范+不规范)
struct point{ double x,y; point(double a=0,double b=0):x(a),y(b) { }};struct line{ point a,b; int id; line() { } line(point c,point d):a(c),b(d) { ...
2020-04-14 21:36:39 318
原创 Treasure Hunt POJ - 1066
题目链接:https://vjudge.net/problem/POJ-1066题意:给一个矩形,内有多条不重合线段,给一个宝藏所在的位置,每次穿越必须走线段的中点,求从矩形边界到宝藏最少穿越的线段条数。思路:题目说必须从中点穿越线段,但其实从线段的任何一点穿越是没有区别的。每条线段虽然可以形成多段墙,但是每条线段最多也就穿越一次。直线穿越一定是最优的。可以枚举矩形边界上的每个端点,与宝藏连线...
2020-04-13 10:19:51 211
原创 The Doors POJ - 1556 计算几何+最短路
题目链接:https://vjudge.net/problem/POJ-1556参考:https://www.cnblogs.com/kuangbin/p/3189309.html题意:一个房间内有许多障碍,让你计算从(0,5)到(10,5)的最短距离。思路:把起点和所有可以连接的点连线,判断是否有其他线段与此连线 规范相交 (在端点处相交不算阻碍),如果没有线段与其规范相交,说明没有受到阻...
2020-04-09 17:21:14 139
转载 Gourmet choice CodeForces - 1131D 差分约束(addedge函数太慢)
题目链接:https://vjudge.net/problem/CodeForces-1131D转自:https://blog.csdn.net/hao_zong_yin/article/details/88371836题意:给你多个点的大小情况,求满足条件的情况下所有点的最大值让其最小。思路:求解满足条件所有的最小值,应该跑最长路。注意addedge函数因为每次要获取长度,此题用的话会超时...
2020-04-09 11:21:23 272
转载 Segments POJ - 3304 判断直线与线段相交
题目链接:https://vjudge.net/problem/POJ-3304转自:https://blog.csdn.net/sdsy191553/article/details/83067586题意:给多条线段,问能否找到一条直线,将所有线段投影到上面后有至少一个公共交点。思路:假设存在直线,对直线做垂线,当垂线在投影的公共区域时,它会经过所有线段。 问题变成了找这样的一条可以经过所有...
2020-04-05 11:40:04 303
原创 TOYS POJ - 2318 叉乘判断直线方向
题目链接:https://vjudge.net/problem/POJ-2318#author=happen题意:一些线段把一个矩形分成若干部分,给一些点,求每个部分的点的个数。思路:两个向量oa和ob,如果oa*ob<0,说明oa在ob的左侧,如果>0,说明oa在右侧,=0,说明共线。注意两向量一定是共起点的。#include <cstdio>#include &...
2020-04-04 11:03:14 172
转载 Height Preservation Kattis - heightpreservation 贪心
题目链接:https://vjudge.net/problem/Kattis-heightpreservation转自:https://blog.csdn.net/sdut_jk17_zhangming/article/details/93207907题意:给一个矩阵,只有同一行或者同一列的高度可以比较,改变高度后不改变相对高低,求最小的高度。思路:l[x]表示x行所需的高度个数,r[y]表...
2020-04-03 09:35:04 102
转载 Path Intersection Gym - 102040F k条路径的公共点 树链剖分
题目链接:https://vjudge.net/problem/Gym-102040F转自:https://blog.csdn.net/A_Thinking_Reed_/article/details/101202837题意:一棵树,给k个路径,求其k条路径的公共点。思路:问题在于如何寻找出现了k次的点。可以用线段树维护出现次数最大值最小值,当一段区间的最大值等于最小值等于k的时候说明这段区...
2020-04-01 15:41:25 346
原创 洛谷P3384 【模板】轻重链剖分 树链剖分的子树操作
题目链接:https://www.luogu.com.cn/problem/P3384建树时是按照dfs序来的。需要对子树进行操作,因为一颗子树的dfs序一定是连续的,因此也可以用线段树维护。链的更新和子树的更新是不同的。 链的更新需要查找路径上经过的节点,让uv不断的往上搜索。子树的更新只需要计算当前根节点的dfs序和子树内最大的dfs序即tid[b]+sz[b]-1,然后直接用线段树...
2020-04-01 13:46:08 227
原创 Subway Lines Gym - 101908L 树链剖分
讲解:https://www.luogu.com.cn/blog/P-Wang/query-on-a-tree-explaination代码:https://blog.csdn.net/Cymbals/article/details/83212059题意:给一颗树,输入abcd,求a与b的路径连线和c与d的路径连线公共点个数。因为初始值都是0,省去了建树操作。#include <cs...
2020-03-31 18:37:46 133
转载 树上差分
转自:https://blog.csdn.net/a_forever_dream/article/details/83505521对点的差分d 是差分数组 a是节点 fa是父节点d[x]+1相当于a[root]~a[x]+1给树上一条链x~y的节点全部+1当 x 是 y 的祖先时d[y]+1,d[fa[x]]-1即可。d[y]+1是给y~root的节点全部+1,d[fa[x]]-1...
2020-03-31 10:33:41 137 1
原创 How far away ? HDU - 2586 lca求树上两点间最短距离
题目链接:https://vjudge.net/problem/HDU-2586#author=zzuli_practice题意:给一颗树,求树上两点间最短距离。思路:dist【i】表示根到i的距离。设z为xy的lca,xy的最短距离为dist【x】+dist【y】-2*dist【z】。#include <iostream>#include <cstdio>#in...
2020-03-31 09:41:15 196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人