自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

繁凡さん的博客

「无他,唯手熟尔」人生亦繁亦不凡!

  • 博客(64)
  • 收藏
  • 关注

原创 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛 题解(除了C、G之后补)

这次比赛好多原题呀…A、Easy Equation前缀和差分。首先一看数据范围是1e6就不可能O(n2)O(n^2)O(n2)做,只能O(n)O(n)O(n)。之前做过一道简化版的题,是求x+y=zx+y=zx+y=z的方案数,用的是前缀和。这里是三个,所以把那个方法拓展一下即可。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include&lt

2020-10-31 17:58:22 2977 14

原创 Java知识大全

待更…目录1. 数据类型2. 输入输出3. 数组4. 选择语句1. 数据类型boolean flag;byte a;short b;int c;long d;float e;double f;char g;2. 输入输出import java.util.*;import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;public class Main{

2020-10-30 11:06:05 114

原创 luogu P2613 【模板】有理数取余(费马小定理,乘法逆元)

整理的算法模板合集: ACM模板目录题目传送门题目传送门相当于是一个高精的费马小定理求乘法逆元。虽然数据达到了101000110^{10001}1010001,但是我们可以使用快读然后一直模mod即可。然后就是直接求一下乘法逆元即可。#include<cstdio>#include<cmath>#include<algorithm>#include<iostream>#include<cstring>#include<

2020-10-30 08:45:46 45

原创 luogu P1341 无序字母对(欧拉回路应用、模板)

整理的算法模板合集: ACM模板目录输出n+1个字母,使得n个字母对都在这个字符串中出现,因为是n+1个字母,所以我们可以看出来其实就是一个欧拉路径,因为字母对可以替换顺序,所以我们将每个字母对都连一个无向边,建图,求欧拉回路,这样求出来的就是n+1个字母的字符串,因为是欧拉路径,所以会经过每条边,也就是每一个字母对都会在里面出现。我们要先判断图是否连通(可以直接用并查集判断,或者看欧拉路径是否包含了n+1个点),如果不连通那么我们求出来的欧拉回路也不会包含所有的字母对。然后再判断是否有欧拉路径,

2020-10-29 19:48:01 52

原创 luogu P2865 [USACO06NOV]Roadblocks G(次短路模板)

…题没读清楚,双向边害的我找了半天bug然后就是一个次短路模板题了。#include<cstdio>#include<cmath>#include<algorithm>#include<iostream>#include<cstring>#include<vector>#include<queue>using namespace std;typedef long long ll;const int N.

2020-10-29 17:29:39 51

原创 0x33.数学 - 同余

目录一、模运算的一些性质二、费马小定理三、欧拉定理AcWing 202. 最幸运的数字四、拓展欧几里得算法翡蜀定理拓展欧几里得算法五、乘法逆元求乘法逆元的三种方法1.费马小定理2.扩展欧几里得3.线性递推AcWing 97. 约数之和六、线性同余方程中国剩余定理七、高次同余方程Baby step, Giant Step算法(大步小步算法)声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书

2020-10-28 22:10:36 193 1

原创 2020ICPC·小米 网络选拔赛第一场 全部题解

题目情况A 题:数论 + 动态规划B 题:计算几何 + 最短路C 题:模拟D 题:图论(连通块个数)E 题:略F 题:二分答案G 题:图论H 题:略I 题:搜索(BFS)/ 并查集J 题:二维前缀和 + 二维差分K 题:数学(难)A、 Intelligent Warehouse题目大意:给你一个序列,让你选出最多的数,使得选中的数之间互为倍数(aia_iai​是aja_jaj​的倍数或者aja_jaj​是aia_iai​的倍数)

2020-10-27 21:39:23 832

原创 UVA1364 Knights of the Round Table(双连通分量、二分图染色,超详细解释)

UVA1364 Knights of the Round Table#include<cstdio>#include<cmath>#include<algorithm>#include<iostream>#include<cstring>#include<vector>using namespace std;typedef long long ll;const int N = 5007, M = 500007, IN

2020-10-25 22:36:17 59 1

原创 2020年ACM团队新生第一次周赛题解

A、王学姐去上学啦二分法的模板题,大家先点下面的链接学习一下二分法。https://www.cnblogs.com/cs-whut/p/11212022.html这是我一年前(整整一年,2019年的10月24号hhh)在周赛打完这道题之后写的学习笔记,有点丑。https://fanfansann.blog.csdn.net/article/details/102726708#include<iostream>#include<algorithm>using namesp

2020-10-24 22:16:01 397

原创 luogu P3455 [POI2007]ZAP-Queries (莫比乌斯反演 + 整除分块)

题目传送门本题中数据为5e4,我们只需要筛一次5e4就行了。双倍经验的P4450 双亲数中数据达到了1e6,我们直接筛1e6的莫比乌斯函数有点不可取,因为只有一组数据,所以我们直接筛一次min(a,b)min(a, b)min(a,b)即可。设f(n)f(n)f(n)表示规定范围内gcd(x,y)=ngcd(x,y)=ngcd(x,y)=n的数对个数F(n)F(n)F(n)表示规定范围内公约数包括 nnn 的数对个数(即 n∣gcdn|gcdn∣gcd的数对个数),也可以写成F(t)=F(t

2020-10-24 11:43:12 70

原创 【算法笔记】整除分块

整除分块整除分块,就是把 nnn 除以每一个 iii 的商相同的分成一块枚举(l,r)(l,r)(l,r)区间即对于该分块区间任何一个数来说,n/r=n/ln/r = n/ln/r=n/l。移项得到r=n/n/lr = n/n/lr=n/n/l。∑i=1n⌊ni⌋\sum_{i=1}^{n}\lfloor\frac{n}{i}\rfloori=1∑n​⌊in​⌋模板代码:for(ll l = 1, r;l <= n; l = r + 1){ r = n / (n / l)

2020-10-23 22:13:32 83 1

原创 【算法笔记】莫比乌斯反演(包含定理,两种形式的证明及入门经典模板)

一、莫比乌斯反演学习笔记,我是看这个博客入门的,讲的非常好,传送门,关键是给出了非常多的定理,好多是数论书上的权威概念。我自己证明的照片在文末,有点乱首先,莫比乌斯反演是什么?第一种形式:F(n)=∑d∣nf(d)=>f(n)=∑d∣nμ(d)F(nd)F(n)=\sum_{d|n}f(d)=>f(n)=\sum_{d|n}\mu(d)F(\frac{n}{d})F(n)=d∣n∑​f(d)=>f(n)=d∣n∑​μ(d)F(dn​)第二种形式:F(n)=∑n∣df(d)=&

2020-10-23 20:43:34 177 1

原创 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )

①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn​))②求[1,n]之间每个数的质因数的个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nlogn)O(nlogn)O(nlogn))③线性筛欧拉函数求[1,n]之间每个数的质因数的个数(求[1,n]中所有数的欧拉函数时间复杂度:O(n)O(n)O(n))第三种方法的证明三种方法求欧拉函数#include<cstdio>#include<cmath&

2020-10-23 11:02:02 104 1

原创 luogu P3398 仓鼠找sugar(树链剖分、求树上两条路径有没有交点,爽!)

舒服,一次敲160行代码一次编译通过一次AC是真的爽!虽然这道题可以当作简单版的树链剖分板子题了hhh要求的是两条路径有没有交点,正解是LCA玄学证明,看的我有点懵,但是这道题可以用树链剖分呀,1e5的数据我们nlognnlognnlogn的树链剖分随便做。问两条路径有没有交点,实际上我们可以直接用树链剖分直接暴力跑还不会超时,真的爽!我们只需要每次暴力将两条路径权值+1,然后线段树维护一个最大值,看 tr[1].maxv 是不是等于2,如果等于2说明一定有一个点被赋值两次,所以一定是交点!(就算要.

2020-10-22 22:04:49 68 1

原创 UVA1626 括号序列 Brackets sequence(区间DP匹配括号,输出匹配方案)

UVA1626 括号序列 Brackets sequence简单的区间DP,但是要输出方案,所以我们按照转移的方法再重新来一遍即可。输出时考虑四种情况:i>j不存在这种子串,返回0i==j子串长度为1说明是一个孤立点,所以要消耗1,返回1s=(s')或s=[s']那么返回的是f(i+1,j-1)其他情况,枚举断点#include<cstdio>#include<cmath>#include<algorithm>#include<ios

2020-10-22 21:19:20 65

原创 UVA10003 切木棍 Cutting Sticks(区间DP、细节)

本题其实就是一个区间DP 的模板题,总长度为len,有n个切割点,也就是说能被切割成n+1段,所以左边界是0,有边界是n + 1,所以答案就是f[0][n + 1]。总时间复杂度为

2020-10-22 19:49:29 54

原创 【动态规划、计算几何】最优三角剖分

最优三角剖分问题描述:给一个有n个顶点的凸多边形,有很多方法进行三角剖分(polygon triangulation) 。给每个三角形规定一个权函数w(i,j,k)w(i,j,k)w(i,j,k)(比如三角形的周长或者三顶点的权和或者三角形的面积等等),求让所有三角形权和最大的方案。 这个问题的关键在于状态的定义,因为如果允许随意切割,显然任意“半成品” 多边形的各个顶点可以是原多边形中随意选取的,很难简洁的定义成状态。但我们又可以发现,对于同一种切割方法,我们可以有多种切割顺序,但切割方法就已经决

2020-10-22 17:59:15 185

原创 【动态规划】区间DP - 最优矩阵链乘(另附POJ1651Multiplication Puzzle)

最优矩阵链乘(动态规划)一个n∗mn*mn∗m的矩阵由 nnn 行 mmm 列共 n∗mn*mn∗m 排列而成。两个矩阵A和B可以相乘当且仅当A的列数等于B的行数。一个nm的矩阵乘mp的矩阵,运算量为nmp。矩阵乘法不满足分配律,但满足结合律。因此A∗B∗CA*B*CA∗B∗C既可以按顺序 (A∗B)∗C(A*B)*C(A∗B)∗C 也可以按 A∗(B∗C)A*(B*C)A∗(B∗C) 来进行。假设A、B、CA、B、CA、B、C 分别是 2∗3、3∗4、4∗52*3、3*4、4*52∗3、3∗4、4∗5

2020-10-22 16:26:20 70

原创 【算法笔记】树链剖分

树链剖分

2020-10-21 21:33:41 94

原创 0x32.数学知识 - 约数

目录一、约数定义算术基本定理的推论求NNN的正约数集合 - 试除法求1~N每个数的正约数集合 - 倍数法AcWing198. 反素数二、最大公约数最大公约数与最大公倍数更相减损术luogu P1072 (NOIP2009)Hankson的趣味题三、互质与欧拉函数声明: 本系列博客是《算法竞赛进阶指南》+《算法竞赛入门经典》+《挑战程序设计竞赛》的学习笔记,主要是因为我三本都买了 按照《算法竞赛进阶指南》的目录顺序学习,包含书中的少部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用

2020-10-20 22:13:04 178

原创 P1024 一元三次方程求解(递归式二分)

我们判断两点(x)之间是否有根的依据是是否存在f(x)∗f(y)<0f(x) * f(y)<0f(x)∗f(y)<0然后由于题目中说根于根之间的差的绝对值大于等于1,以及范围只有-100到100所以我们可以直接枚举,每次+1,缩小范围,然后二分答案精确到0.001即可。需要注意的是由于我们枚举的时候是从-100到100挨个枚举的所以我们在输出的时候l和r我们只能输出一个,因为一个输出以后另一个由于循环一定会再次到达这个点。所以我们枚举到99,只输出r(l = i, r = i + 1.

2020-10-20 20:14:04 100

原创 欧几里得算法与唯一分解定理

整理的算法模板合集: ACM模板目录最大公约数与最大公倍数唯一分解定理最大公约数与最大公倍数最多O(logn)O(logn)O(logn)int gcd(int a, int b){ return b == 0 ? a : gcd(b, a % b);}int lcm(int a,int b){ return a / gcd(a,b) * b;//先除后乘,以免溢出}唯一分解定理每一个大于1的正整数n都可以唯一地写成素数的乘积,在乘积中的素因子按照非降序排列,正整数n的分解

2020-10-18 20:30:41 146

原创 SWPU ACM2020年预备赛 题解

补题场地址:http://118.89.134.177/contest/38A#include<stdio.h>double x[10000],y[10000],ans;int n;int main(){ scanf("%d",&n); for(auto i=0;i<n;i++)scanf("%lf",&x[i]); for(auto i=0;i<n;i++)scanf("%lf",&y[i]); for(auto i=0;i<n-

2020-10-18 10:53:34 215

原创 UVA11584 划分成回文串 Partitioning by Palindromes(线性DP划分+DP判断回文串)

依旧是线性DP我们使用闫氏DP分析法总体DP转移的时间复杂度为O(n2)O(n^2)O(n2)。但是这里牵扯到判断 i\tt ii 到 j\tt jj 是否为回文串,普通的判断为O(n)O(n)O(n),那么组合到一块循环的话总体的时间复杂度就变成了O(n3)O(n^3)O(n3),这是我们不能接受的,所以考虑使用DP预处理字符串S中任意两点i到j之间是否为回文串,可以用一个 bool\tt boolbool 型的数组f[i][j]表示 i\tt ii 到 j\tt jj 之间是否为回文串。最.

2020-10-15 17:48:11 86

原创 Codeforces 1408 D. Searchlights(优化DP、思维)

传送门DP的思想,因为题目中有两个维度,数据达到了1e6,所以我们直接开二维数组显然不太恰当,而且我们的答案不好选取,我们可以使用一个技巧,开一维数组,用DP的下标表示一个维度(x),循环一个维度(x)的大小,取 max\tt maxmax 维护另一个维度(y)的权值。定义 f[i]\tt f[i]f[i] 表示的是,若x\tt xx 轴坐标移动 ≤i≤i≤i的距离, 则 y\tt yy 坐标至少需要移动 f[i]\tt f[i]f[i] 大小。才能使得所有的海盗都不会被探照灯所照射到(他们全部都在探

2020-10-15 16:50:13 73

原创 UVA11400 照明系统设计 Lighting System Design(线性DP)

因为只能被电压更高的灯泡替换,所以我们按照电压排序,相当于是一个上升子序列,或者说找一个上升子序列每一种灯泡都有一个需求量,相当于用这个灯泡就需要买这么全部的相同的灯泡。f[j] + (s[i] - s[j]) * a[i].c + a[i].k实际上就相等于购买了s[i] - s[j]个第i种的灯泡,跟前面的s[i] - s[j]个灯泡替换。让我们求最少的花费。#include<cstdio>#include<cstring>#include<algorithm&g.

2020-10-14 22:22:49 112

原创 UVA12563 劲歌金曲 Jin Ge Jin Qu hao(01背包)

(如果当你看到这个标题的时候笑了,那么这个问题是为你准备的ヽ( ̄▽ ̄)ノ)如果问一个麦霸:“你在KTV里必唱的曲目有哪些?”得到的答案通常都会包含一首“神曲”:古巨基的《劲歌金曲》。为什么呢?一般来说,KTV不会在“时间到”的时候鲁莽地把正在唱的歌切掉,而是会等它放完。例如:在还有15秒时再唱一首2分钟的歌,则实际上多唱了105秒。但是融合了37首歌曲的《劲歌金曲》长达11分18秒,如果唱这首,则相当于多长了663秒!假设你正在唱KTV,还剩t秒时间。你决定接下来只唱你最爱的n首歌(不含《劲歌金曲》).

2020-10-14 20:26:31 58

原创 UVA116 单向TSP Unidirectional TSP(多阶段决策问题、输出字典序最小的方案、DAG上DP)

题目传送门简单的多阶段决策问题。多段图DAG,其节点可以划分为若干个阶段,每一个阶段只由上一个阶段所决定。因为本题要求输出从前到后的方案,所以我们转移方程的时候必须从后往前转移,并且保存每次的最优最小决策,放到nex数组里,这样我们转移完成之后就可以直接从前往后遍历一遍输出方案。如果我们依然正着往后推,那么我们只能记录每一个节点的前驱pre,最后还需要倒序输出方案,比较麻烦。因为要将字典序最小方案输出,所以我们右,右上,右下,三个因为是一个环状所以我们需要每次一个排序。每次取相同结果的编号字典序最

2020-10-14 19:38:17 94

原创 UVA437 巴比伦塔 The Tower of Babylon(矩形嵌套进阶版、DAG上DP、记忆化搜索)

本题和基础的矩形覆盖差不多,只不过变成了三维的长方形。因为每次转移的时候只有顶面的x和y会影响决策的进行,所以我们只需要用一个二元组(a,b)(a, b)(a,b)来表示顶面即可。但是因为长方体的长宽高可能会很大,所以如果我们直接用一个数组表示数值的话是存不下的,因此我们令开一个数组存下所有点的信息,用x表示每一个点的标号即可。至于如何表示高是谁(高实际上就是我们放置这个长方体时获得的权值)因为一共有三个边的长度,我们可以将他们标号为0,1,2,放到一个数组里,我们用k表示这个高的标号,我们每次找答案.

2020-10-13 22:42:41 64

原创 UVA1025 城市里的间谍 A Spy in the Metro(2003 ICPC world final)(DAG上DP)

输入比较麻烦因为时间是单向流逝的,所以是一个天然的“序”,我们可以用一维用来循环枚举时间,我们规定 f[i][j]表示当前时刻为i,你的位置为车站j的最少的车站里的等待时间。初始位置设置为f[0][1] = 0其余的为INF,用于使用min取最小值。我们根据题意,一共有三种可能的决策:在站台上等候一分钟搭乘地铁向右走(如果有的话)搭乘地铁向左走(如果有的话)我们这三种情况(决策)对应了三种转移方程:4. f[i][j] = min(f[i][j], f[i - 1][j] + 1);(.

2020-10-13 21:30:27 58

原创 【动态规划】硬币问题

问题描述有n种硬币,面值分别为V1,V2,V3,.....VnV _1,V_2,V_3,.....V_nV1​,V2​,V3​,.....Vn​,每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值。1<=n>=100, 0<=S<=10000,1<=Vi<=S.硬币问题,实际上就是一个完全背包问题,但是要记录最优子结构并输出路径。1.DFS输出方案一个小trick就是我们使用记忆化搜索的时候可以用引用变量表示

2020-10-13 19:39:43 175

原创 【动态规划】矩阵嵌套问题

题意:有n个矩阵,每个矩阵可以用两个整数a、b描述,表示它的长和宽。矩阵X(a,b)可以嵌套在矩形Y(c,d)中,当且仅当a<c,b<d,或者b<c,a<d。输出最多嵌套的矩阵个数。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define x first#define y secondusing namespace std;

2020-10-13 10:30:22 104

原创 迟到的预备赛前练习赛题解

比赛地址今年的SWPU预备队员选拔赛将于10月17号上午8点开始一直持续到下午6点(主要是考虑到17号周六有运动会),请大家自行选择时间参加比赛,预备队员预计选拔6~8人,取前排直接成为预备队员,来到团队参加学习和培训,请大家一定加油!迟来的比赛题解,那这次的题解就加一些题目解释吧本次比赛大多采用多组数据,请保证学会多组数据输入的方法。A、ASCII码排序三个字符直接用>比较既是比较字符的ASCII码,三个变量交换法交换位置即可#include <stdio.h>int ma

2020-10-12 16:01:24 146

原创 2019 ICPC Asia Nanjing Regional J.Spy(KM算法O(n^3)板子题)

整理的算法模板合集: ACM模板前面好几段又在讲故事…题目大意:  a[i]表示对手的每个队伍战斗力  p[i]表示打败对手后获得的分数  b[i]表示我方第一种人的战斗力  c[i]表示我方第二种人的战斗力  定义我方一组选手的战斗力为b[i]+c[j],第一种选手与第二种选手某种顺序两两组队后,与对方进行pk,共有 n!n!n! 种pk顺序,求最大期望×n期望就是加权平均,期望*n实际上就是所有方案中的最大权值,也就是二分图最大加权匹配所以这是一个板子题,但是数据卡O(n4)O(n

2020-10-09 17:39:44 173

原创 【算法笔记】竞赛图(有向完全图)(相关题型总结)

竞赛图(有向完全图)竞赛图也叫有向完全图。每对顶点之间都有一条边相连的有向图称为竞赛图竞赛图的一些简单的性质:竞赛图没有自环,没有二元环;若竞赛图存在环,则一定存在三元环。(如果存在一个环大于三元,那么一定存在另一个三元的小环。)任意竞赛图都有哈密顿路径(经过每个点一次的路径,不要求回到出发点)。图存在哈密顿回路的充要条件是强联通。哈密顿问题中,对于 n 阶竞赛图,当 n 大于等于 2 时一定存在哈密顿通路设 D 为 n 阶有向简单图,若 D 的基图为 n 阶无向完全图,则 D 为 n 阶

2020-10-09 17:08:22 609 1

转载 【算法笔记】哈密顿问题

哈密顿问题基本概念哈密尔顿通路:经过图中每个结点且仅经过一次的通路。哈密尔顿回路:经过图中每个结点且仅经过一次的回路。哈密尔顿图:存在哈密尔顿回路的图。竞赛图:每对顶点之间都有一条边相连的有向图,n 个顶点的竞赛图称为 n 阶竞赛图。与欧拉回路的对比:欧拉回路是指不重复地走过所有路径的回路;哈密尔顿回路是指不重复地走过所有点并且最后回到起点的回路。1.哈密尔顿通路的判定设一无向图有 n 个顶点,u、v 为图中任意不相邻的两点,deg(x) 代表 x 的度数若 成立,则图中存在哈密尔顿通

2020-10-09 17:06:18 538

原创 【算法笔记】二分图最大权匹配 - KM算法(dfs版O(n4) + bfs版O(n3))

匈牙利算法又称为 KM 算法,可以在 O(n3)O(n^3)O(n3) 时间内求出二分图的 最大权完美匹配 。考虑到二分图中两个集合中的点并不总是相同,为了能应用 KM 算法解决二分图的最大权匹配,需要先作如下处理:将两个集合中点数比较少的补点,使得两边点数相同,再将不存在的边权重设为 0,这种情况下,问题就转换成求最大权完美匹配问题 ,从而能应用 KM\tt KMKM 算法求解。其实就是普通的匈牙利算法求二分图最大匹配的拓展版本顶标:两边点都有的标记(左 aia_iai​右 bjb_jbj​)满

2020-10-09 12:28:49 291 1

原创 2019 ICPC Asia Nanjing Regional C.Digital Path(拓扑排序递推DP)

三段题面,只有第三段是有用的…前两段又长单词又难懂,就是在讲故事。。。不过针对四种情况给出四个图帮助我们理解题意是真的赞,可能出题人怕我们看不懂吧(第一句话有好几个生词没见过让我怀疑这是不是英语 )题目大意就是一个n*m的矩阵,每一个格子上都有一个数字,我们可以从任意的点出发,每次向上下左右四个方向走,只能到有公共边的格子上去,求一共有多少条完整路径。其中完整路径的定义是整条路上数字从1连续地走到n,其中如果到n了以后他的四个方向都没有n+1也就是不能继续往下走了才算到终点。(还有一个要求就是路径的长.

2020-10-08 21:55:44 90

原创 2019 ICPC Asia Nanjing Regional K.Triangle(求一个能将三角形分成两个面积相同的线段、计算几何)

整理的算法模板合集: ACM模板K.Triangle用板子判断点是否在线段上即可。紫书的板子有点问题,判断是否在线段上的时候应该是<=才能A,书上是 < …对于第二问我们先特判一下特殊的情况,也就是p点在三角形端点的时候答案就是端点对边的中点。然后我们用一个直线玩一下三角形就发现,从特殊的情况(端点到对边中点)出发,我们假设端点是A,当p点在线段AB上的时候,若P点靠近A点,那么我们的直线就会转到靠近B点,当P点靠近B点的时候,我们的直线就会转到靠近C点,因为情况不定,所以我们可以将

2020-10-08 20:28:38 101

原创 P6134 [JSOI2015]最小表示(拓扑排序递推 + bitset优化,可达性统计变种)

P6134 [JSOI2015]题目要求删除一条边整个图的连通性是不受影响的,也就是说如果我们要删除边(x,y)(x,y)(x,y),删除以后整个图的连通性不受影响的条件很明显就是x到y之间至少还有一条边可以到达。所以我们要统计每对点之间的路径条数,对于每一条边(x,y)(x, y)(x,y)来说,如果xy之间至少有两条路径,那么这一条边就可以删除,ans++ 。由于这是一个有向无环图,所以保证正确性。我们直接拓扑排序,类似可达性统计的那一道题,我们可以用bitset存,先处理出每对点路径条数大于等于

2020-10-08 16:09:49 80

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除