自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 AT2005 [AGC003E] Sequential operations on Sequence 单调栈+二分+差分

题意:一串数,初始为 1∼n1\sim n1∼n,现在给 QQQ 个操作,每次操作把数组长度变为 qiq_iqi​,新增的数为上一个操作后的数组的重复。问 次 QQQ 操作后 1∼n1\sim n1∼n 每个数出现了多少次。范围&性质:0≤n,Q≤105,1≤qi≤10180\le n,Q\le 10^5,1\le q_i\le 10^{18}0≤n,Q≤105,1≤qi​≤1018分析:首先我们观察发现: 对于一段单调递减的 qiq_iqi​ 序列来说等价于直接进行最小的一项(即最后的一项

2020-11-10 10:02:49 112

原创 P3283 [SCOI2013]火柴棍数字 DP

题意:给定一个 nnn 位的数字,求最多移动 kkk 根火柴棒, 能形成的最大值范围&性质: 1≤n≤500,1≤k≤35001\le n \le 500,1\le k \le 35001≤n≤500,1≤k≤3500分析:首先有几个很显然的贪心性质:位数越多越好补的前几位都是 1 (最高位有可能是7)所以问题转化成对于原序列,再拿出尽可能多的火柴棒的前提下,留下的最大值是多少直接DP,设 fi,j,kf_{i,j,k}fi,j,k​ 表示从小到大第 iii 位 此时有 jjj

2020-11-10 10:01:54 237

原创 P2877 [USACO07JAN]Cow School G 斜率优化+分数规划

题意:一个人参加了 nnn 场考试,第 iii 场满分为 pip_ipi​,其得分为 tit_iti​。现在要删去其中 ddd 次考试的成绩,用剩下的总得分除以剩下的满分之和,作为其最终成绩。问对于哪些 ddd 而言,删除得分比(即 tipi\frac{t_i}{p_i}pi​ti​​ )最小的 ddd 场得到的最终成绩不是最优的范围&性质:1≤n≤5×104,1≤pi,ti≤4×1041\le n\le 5\times 10^4,1\le p_i,t_i\le 4\times 10^41≤n≤

2020-11-10 10:01:12 174

原创 P3623 [APIO2008]免费道路 WQS二分

题意:题意分析:手动给边权赋值,转化成 PP2619 [国家集训队2]Tree I代码:#include<bits/stdc++.h>using namespace std;namespace zzc { const int maxn = 2e4+5; const int maxm = 100005; const double eps = 1e-5; int fa[maxn]; int n,m,need,tot,cnt; bool vis[maxm]; str

2020-10-30 22:33:59 158

原创 CF568C New Language 2-SAT

CF568C New Language 2-SAT题意分析:我之前可能学了个假的2-SAT,我一直不知道缩完点之后还要DFS对于这个题按照要求建好图之后tips:对于 1 v 2 c1\ v\ 2\ c1 v 2 c 我们需要建两条边,1→2+n1 \to 2+n1→2+n 和 $ 2 \to 1+n $ 表示 1 选 vvv 时 2 必须选 ccc,2选 ccc 时1只能选 ccc我们暴力从后向前枚举更改一个位置使得字典序

2020-10-30 22:28:39 167

原创 P4410 [HNOI2009]无归岛 仙人掌图

P4410 [HNOI2009]无归岛 仙人掌图题意分析:我们通过分析发现,原来的图是一个环,环上每一个点可能连着一个三元环的仙人掌图由于整体也是一个环所以不用区分环内和环外,直接搜到环之后做DP求最大带权独立集就行了代码:#include<bits/stdc++.h>using namespace std;namespace zzc{ const int maxn = 1e5+5; int n,m,cnt=0,idx; int f[maxn][2],head[max

2020-10-30 22:27:05 81

原创 CF505D Mr. Kitayuta‘s Technology 并查集 拓扑排序

题意:题面分析:在上届银牌学姐的帮助下我们发现对于一个连通块若 mmm 个约束条件里共有 nnn 个点,那么答案一定是 nnn 或者 n−1n-1n−1因为最多 nnn 条有向边可以将一个连通块变成一个强连通分量,而至少 n−1n-1n−1 条边才能保证 nnn 个点是联通的,所以对于每一个连通块我们只需要判断它是否存在一个环就可以了,有环的连通块答案就是 nnn ,没有的答案就是 n−1n-1n−1 ,拓扑排序,tarjantarjantarjan ,暴搜都可以判环代码:#include

2020-10-30 22:25:08 123

原创 CF437D The Child and Zoo

题意:题面分析:一句话题意:求任意两点之间各条简单路径上最小值的最大值的平均数(我好像也没说人话)这题的 nnn 极大,所以我们没有办法优化正常的暴力,所以我们考虑将式子拆开来计算,我们考虑每一个点在什么情况下会被选,那肯定在当它是一对点各条简单路径上最小值的最大值的时候,我们发现各条简单路径的最小值这个条件过于恶心,那么思考怎么消掉这个条件我们只需要将任意两点通过它们路径上点权的最小值连接起来就可以了,由于点权无法连接两个点,那么我们将点权压到边权上去,w(u→v)=min(val[u],val

2020-10-30 22:16:15 65

原创 CF1032G Chattering ST表+倍增

题意:题面分析:第一反应是SNOI2017炸弹这个题我们一看需要对于每一个数都输出一次答案,也就是说我们需要 logloglog 或者 n\sqrt nn​ 的复杂度查询每一个点,那么我们思考一下就发现可以通过倍增处理但是由于这个题每个点能扩展的范围是不一样的,所以倍增迭代时我们需要通过区间查询,找到能向左 (向右) 扩展的最远点坐标,也就是说我们需要一个支持区间操作的数据结构,线段树或者ST表都可以,这里给出ST表的代码代码:#include<bits/stdc++.h>us

2020-10-30 21:55:40 128

原创 P3226 [HNOI2012]集合选数 状压DP

题意:题面分析:我们发现每个数 nnn 是否被选,只与 n3,n2,2n,3n\frac{n}{3},\frac{n}{2},2n,3n3n​,2n​,2n,3n 有关,那么我们考虑建一张表,表上每一行按照 ×3\times 3×3 的方式递增,每一列按照 ×2\times 2×2 的方式递增,那么对于同一张表,任意上下左右相邻的数都是不能选的,那么这样的表一共有 n−n2−n3+n2×3n-\frac{n}{2}-\frac{n}{3}+\frac{n}{2\times 3}n−2n​−3n​+2×

2020-10-30 08:54:03 76

原创 P4165 [SCOI2007]组队 推柿子+差分

题意:题意分析:推柿子 :A×h−A×minh+B×s−B×mins≤CA\times h-A\times min_h+B\times s-B\times min_s \le CA×h−A×minh​+B×s−B×mins​≤C我们发现有三个变量,所以最暴力的复杂度是O(n3)O(n^3)O(n3)的,那么我们考虑怎么优化好吧,我不看题解也不是很会优化我们将式子转化一下,然后会发现对于每一个人,minhmin_hminh​固定时,能取到的合法minsmin_smins​是连续的A×(h−

2020-10-27 21:51:33 62

原创 P1450 [HAOI2008]硬币购物 容斥原理+完全背包

题意:共有 4 种硬币。面值分别为 c1,c2,c3,c4c_1,c_2,c_3,c_4c1​,c2​,c3​,c4​。某人去商店买东西,去了 nnn 次,对于每次购买,他带了 did_idi​ 枚 iii 种硬币,想购买 sss的价值的东西。请问每次有多少种付款方法。范围&性质:1≤n≤103,1≤c,d,s≤1051\le n\le 10^3,1\le c,d,s\le 10^51≤n≤103,1≤c,d,s≤105分析:不考虑个数限制时就是个很裸的完全背包,但是加上了限制那么我们就考

2020-10-21 11:28:53 75

原创 P6275 [USACO20OPEN]Sprinklers 2: Return of the Alfalfa P 轮廓线DP

题意:戳这里查看分析:我们可以通过手调样例发现最后整张图会沿着一条线分为两个部分,所以我们利用这条分界线进行DP,我们设f[i][j][0]f[i][j][0]f[i][j][0]表示现在在第iii行第jjj列的格子右下角的点,0表示该向右延展,1表示向下扩展,每次方向变化时需要除以二,因为有一个原来可放可不放的格子不得不放,情况减少了,转移的话看代码就能看懂代码:#include<bits/stdc++.h>using namespace std;namespace zzc

2020-10-21 11:12:11 118

原创 P6009 [USACO20JAN]Non-Decreasing Subsequences P 矩阵优化DP

题意:戳这里查看分析:我们先不考虑区间的限制设出DP状态,f[i][j]f[i][j]f[i][j]表示枚举到第iii个数,单调不降序列最后一位是jjj的方案数转移方程就是:if(a[i]!=j) f[i][j]=f[i-1][j]else f[i][j]=f[i-1][k](k<=j)我们发现可以用矩阵维护,那么对于限定区间的我们考虑通过类似差分的操作ans=I∗∏i=1l−1T−1∗∏i=1rTans=I*\prod_{i=1}^{l-1}T^{-1}*\prod_{i=1}^

2020-10-21 11:02:12 118

原创 P2605 [ZJOI2010]基站选址 线段树优化DP

题意:戳这里查看分析:我们发现题目里面每一个建立的基站可能会对之前的状态有所影响,所以我们在设计DP状态时需要将这种影响消除掉我们设f[i][j]f[i][j]f[i][j]表示在第iii个村庄修建第jjj个基站且不考虑对[i+1,n][i+1,n][i+1,n]个村庄的影响时的最小费用转移方程就是 f[i][j]=min(f[k][j−1]+cost[k][i]+c[i])f[i][j]=min(f[k][j-1]+cost[k][i]+c[i])f[i][j]=min(f[k][j−1]+c

2020-10-21 10:43:55 106

原创 P5597 【XR-4】复读 思维题 +二叉树合并

题意:戳这里查看分析:由于这是一个无限大的完全二叉树,所以不合法的方案仅存在于跳到根节点的父亲这一种,且由于指令会无限重复,所以我们必须保证指令会使得离开被标记的子树的时候,所有被标记的点已经全部访问完,因为我们不会折返回去向上跳的那么我们考虑枚举它是经过哪条路径,从哪个点离开整颗子树的,只要保证在走这条路经的同时遍历完所有的点,且由于指令会无限重复,所以我们对于路径上每一个点,将所有的子树求一个形态上的并集,只要使得整个并集能被访问,那么所有的点都会被访问到,最后的答案就是(cnt−1)∗2−de

2020-10-21 10:25:02 141

原创 P5304 [GXOI/GZOI2019]旅行者 最短路+位运算优化

题意:给定一张nnn个点,mmm条有向边的图,标记其中kkk个点,求这kkk个点之间的两两最短路的最小值范围&性质:1≤k,n≤105,1≤m≤5×1051\le k, n\le 10^5,1\le m\le 5\times 10^51≤k,n≤105,1≤m≤5×105分析:暴力暴力将关键点分成A,BA,BA,B两个集合,超级源向AAA集合每一个点连一条边权为0的边,BBB集合每一个点向超级汇连一条边权为000的边,然后从超级源向超级汇跑最短路正解我们发现暴力枚举的复杂度不太

2020-10-20 22:31:10 122

原创 P4568 [JLOI2011]飞行路线 最短路+分层图

题意:给定一张无向图,起点和终点,可以选择其中kkk条边将其边权改为0,求从起点到终点的最小代价数据范围&性质:1≤n≤104,q≤m≤5×104,1≤k≤101\le n\le 10^4,q\le m\le 5\times 10^4,1\le k\le 101≤n≤104,q≤m≤5×104,1≤k≤10分析:没什么好说的,就是分层图裸题,只是我一直不知道有这么一种做法简单说就是建k+1k+1k+1张图,每个点除了和自身这张图的对应点,还和下一张图的对应点连一条边权为0的边,然后有第一张

2020-10-20 22:16:38 101

原创 虚树

虚树就是将树上我们需要的关键信息,浓缩到一颗新的树上,这棵树上除了关键点还有任意一对关键点的lcalcalca的信息建立:这里介绍利用单调栈的做法,首先我们要明确一个目的,我们要用单调栈来维护一条虚树上的链。也就是一个栈里相邻的两个节点在虚树上也是相邻的,而且栈是从底部到栈首单调递增的(指的是栈中节点 DFS 序单调递增)我们每次遇到一个新的关键点,将他和栈顶求lcalcalca,若lcalcalca不在栈顶,就弹栈,然后将lcalcalca和栈顶比较dfndfndfn,重复这个操作直到栈顶的dfnd

2020-10-20 22:07:14 64

原创 点分治

点分治点分治可以解决树上大规模路径问题过程 :每次找出重心,处理出所有跨过重心的信息,例如将一条长kkk的路径拆成两条跨过重心的链,然后递归处理,只会递归O(logn)O(log_n)O(logn​)层,总复杂度为O(nlogn)O(nlog_n)O(nlogn​)小 tricktricktrick : 将每层处理的节点放入队列里,然后弹出队列清空,直接memsetmemsetmemset复杂度不对例题:Luogu 3806没什么好说的,板子题,按照上面说的直接做就好了代码 :

2020-10-20 21:54:19 57

原创 P2157 [SDOI2009]学校食堂 状压DP

题意:有点复杂,自行浏览吧 题目链接分析:我们发现DP转移时需要记录以下几个信息:打饭队列的队首是谁,上一个打饭的是谁,队列前b[i]b[i]b[i]个人的状态然后我们根据这些信息设立DP状态,记f[i][j][k]f[i][j][k]f[i][j][k]表示该第iii个人打饭(等价于前i−1i-1i−1个人已经买完饭)此时队列前7个人的状态是jjj,上一个打饭的人是i+ki+ki+k。由于打饭的人在iii的前后都可以,所以kkk的范围就是[−8,8][-8,8][−8,8],加上偏移量就是[0

2020-10-20 21:00:27 74

原创 P2767 树的数量 DP | 组合数学

题面:给定n,mn,mn,m求nnn个节点的mmm叉树的形态有多少种范围&性质:1≤n,m≤1271\le n,m\le 1271≤n,m≤127分析:DP做法当mmm等于2时就是卡特兰数,详情见卡特兰数定义和递推式那我们考虑像Catlan数一样枚举每个儿子的大小然后组合起来,所以设f[i][j]f[i][j]f[i][j]表示表示根节点有iii个mmm叉子树,总个数为jjj的方案数,g[i]g[i]g[i]表示用iii个点构成一颗mmm叉树的方案数,转移时相当于往根节点上接一颗mm

2020-10-15 22:14:13 100

原创 P2150 【NOI2015】寿司晚宴 状压DP+数学

题意:两个人从 222 到 nnn 共n−1n-1n−1个数字中各选一些(允许不选),使得选出来的两个集合中不存在一对数满足,x∈A,y∈Bx\in A,y\in Bx∈A,y∈B 且 gcd(x,y)≠1gcd(x,y)\ne 1gcd(x,y)​=1,求合法的分配方案数数据范围:1≤n≤5001\le n\le 5001≤n≤500分析:题目可以转化为选出两个集合使得,每个集合的质因数集合没有交集30ptn≤30n \le 30n≤30 的情况下质因数集合里的数不会超过10个,采用状压

2020-10-13 10:37:14 135

原创 CF348D LGV引理

题意:给定一张图,图上存在障碍点,两个人从(1,1)(1,1)(1,1)出发,只能向上或向右走,走到(n,m)(n,m)(n,m)且路径不相交的方案数数据范围:1≤n,m≤30001\le n,m\le 30001≤n,m≤3000分析:没什么好分析的,就是个裸题前置芝士:LGV引理LGVLGVLGV引理就是求解nnn组一一对应的起点到终点,且路径不相交的方案数不会可以戳这里题目可以转化成2个起点:(1,2),(2,1)(1,2),(2,1)(1,2),(2,1) 到 两个终点: (n,m−

2020-10-13 09:48:51 321

原创 LGV引理

LGVLGVLGV引理可以用于在DAG上求解不相交路径方案数问题定义:ω(P)\omega(P)ω(P)表示PPP这条路径上的边权之积,解决路径计数问题时通常设为1,据说也可以是生成函数e(u,v)e(u,v)e(u,v)表示uuu到vvv的每一条路径上的ω\omegaω值之和,即e(u,v)=∑ω(P)[P:u→v]e(u,v)=\sum\omega(P)[P:u \to v]e(u,v)=∑ω(P)[P:u→v]起点集合记作AAA,终点集合记作BBBσ(S)\sigma(S)σ(S)表示一个排

2020-10-13 09:41:00 1381

原创 CF652F Ants on a Circle 思维+模拟

题意:在一个长度为mmm的圆环上有nnn只初始位置互不相同的蚂蚁,每只蚂蚁的速度都为1,初始方向为顺时针或逆时针。两只运动方向不同的蚂蚁相遇时会调转方向(相遇位置不一定是整数),问ttt时间后每只蚂蚁的位置。范围&性质: 2≤n≤3×105,1≤m≤109,1≤t≤10182\le n\le 3\times 10^5,1\le m\le 10^9,1\le t\le 10^{18}2≤n≤3×105,1≤m≤109,1≤t≤1018分析:前置芝士:简化版题目:UVA10881和链上的情况一

2020-10-06 09:00:56 184

原创 P3647 [APIO2014]连珠线 换根DP

题意:传送门分析:我们通过分析+手动模拟能够发现,蓝线的形态只有两种:son[u][1]−u−son[u][2]son[u][1]-u-son[u][2]son[u][1]−u−son[u][2]和son[u]−u−fa[u]son[u]-u-fa[u]son[u]−u−fa[u]对于每一个节点,要么是一个蓝线的中点,要么就是蓝线的端点,所以我们设f[u][0]f[u][0]f[u][0]表示uuu为蓝线端点时的答案,f[u][1]f[u][1]f[u][1]表示uuu作为中点时的答案转移方程如下:

2020-10-06 08:47:54 116

原创 P3624 [APIO2008]DNA 后缀和优化DP

题意:我们给定一组DNA序列(只含ACGT),其中部分位置用N表示为一个不确定的核苷酸,我们规定范式-X,表示按照字典序下降次数不超过x的DNA序列,给定一个长M的未确定DNA序列,输出将序列确定下来后范式-K中第R大的序列范围&性质:1≤M≤5×104,1≤K≤10,1≤R≤2×10121\le M\le 5\times10^4,1\le K\le 10,1\le R\le 2\times 10^{12}1≤M≤5×104,1≤K≤10,1≤R≤2×1012,保证未完成序列在范式-K形式下总

2020-09-29 11:36:55 98

原创 P3271 [JLOI2016]方 容斥+数学

题意:给定一个n∗mn*mn∗m的矩阵,从中删去kkk个顶点,求最后能形成多少个正方形范围&性质:1≤n,m≤106,1≤k≤20001\le n,m\le 10^6,1\le k\le 20001≤n,m≤106,1≤k≤2000,正方形可以是斜着的(边不一定与网格图上的边重合)分析:(下文所有图片均来源于其他julao博客)暴力做法:枚举,复杂度O(nmk)O(nmk)O(nmk),直接去世正解:通过容斥简化运算,记f(i)f(i)f(i)表示至少包含iii个被删除的点的正方形数

2020-09-26 10:19:18 150

原创 P2757 [国家集训队]等差子序列 数学+权值树状数组

题意:给定一个大小为nnn的排列,问是否存在一组序列1≤p1≤p2⋯≤plen(3≤len)1\le p_1\le p_2 \dots\le p_{len}(3\le len)1≤p1​≤p2​⋯≤plen​(3≤len),使得ap1,ap2,…,aplena_{p_1},a_{p_2},\dots,a_{p_len}ap1​​,ap2​​,…,apl​en​是等差数列,多组询问范围&性质:1≤n≤105,1≤t≤71\le n\le 10^5,1\le t\le 71≤n≤105,1≤t≤7

2020-09-26 07:26:53 99

原创 P5829 【模板】失配树 字符串模板

题面:给定一个字符串sss,定义sss的borderborderborder为满足前后缀相同的字符串集合,qqq组询问,求前缀l,rl,rl,r的最长公共borderborderborder长度范围&性质:1≤∣s∣≤106,1≤q≤1051\le |s|\le10^6,1\le q \le 10^51≤∣s∣≤106,1≤q≤105分析:没什么好说的,就是个模板题,但我之前就是不会由于borderborderborder具有类似传递性一样的性质,sss的borderborderborde

2020-09-23 17:15:25 120

原创 P3574 [POI2014]FAR-FarmCraft 树上DP

题意:给定一棵大小为nnn树,走过每条边需要花费111时间,安装软件又需要花费cic_ici​时间,需要遍历整棵树并回到起点,想让所有点中到达时间+安装时间的最大值最小,问这个值是多少范围&性质:1≤n≤5×105,1≤ci≤1091\le n\le 5\times10^5,1\le c_i\le 10^91≤n≤5×105,1≤ci​≤109分析:我们对于节点uuu的儿子,按照最优方案下安装时间排序,我们二分一个最优时间,对于这些点我们从大往小的加入队列中,若当前的点无法直接插入到队列末尾

2020-09-23 07:30:13 107

原创 P2155 [SDOI2008]沙拉公主的困惑 欧拉函数

题意:求[1,n!][1,n!][1,n!]范围内与m!m!m!互质的数的个数,多组数据,答案对RRR取模范围&性质: 1≤m≤n≤107,1≤t≤104,R1\le m\le n\le 10^7,1\le t\le 10^4,R1≤m≤n≤107,1≤t≤104,R一定是质数分析:题目要求得到的其实就是∑i=1n![gcd(i,m!)==1]\sum_{i=1}^{n!}[gcd(i,m!)==1]i=1∑n!​[gcd(i,m!)==1]由于gcd(x,y)=1gcd(x,y)=1g

2020-09-22 14:27:25 122 1

原创 P4074 [WC2013]糖果公园 树上带修莫队

题意:-> 戳这里查看题面分析:julao口中的树上带修莫队的板子题前置芝士: 欧拉序,带修莫队这个题拆开来说就是:带修莫队+树上莫队带修莫队是莫队的最基本的一种,就是将询问排序后,按时间戳将修改操作增加或减少树上莫队有两种写法,分别是按照大小分块和按照欧拉序分块,这里介绍用欧拉序分块的写法,通过欧拉序我们可以将树上问题转化为序列问题,因为欧拉序里两个相同的数之间包含ta的子树tip:对于树上莫队的欧拉序写法还需要特别注意一下lca的特判,当lca(x,y)≠x∣ylca(x,

2020-09-22 08:50:18 72

原创 P3242 [HNOI2015]接水果 树上莫队+分块

题意:有一颗大小为nnn的树,给定mmm条固定路径,再给定qqq条查询路径,求每条查询路径上第kkk大的固定路径范围&性质:1≤n,m,q≤4×1041\le n,m,q\le 4\times10^41≤n,m,q≤4×104分析:我们将问题拆成两部分,求每条询问路径上有几条固定路径,求一个固定路径集合中第kkk大的路径我们发现前一部分可以用树上莫队解决,后一部分可以用分块解决,好像这道题就能做了QED.代码:#include<bits/stdc++.h>using

2020-09-22 08:49:37 73

原创 P5566 [SDOI2008]红黑树 贪心|动态规划

题意:求一颗nnn个节点的红黑树红色节点数目最多和最少红黑树是满足如下性质的的染色二叉搜索树:每个结点被染成红色或黑色;每个前端结点为黑色结点;任一红结点的子结点均为黑结点;在从任一结点到其子孙前端结点的所有路径上具有相同的黑结点数。二叉搜索树结点中的空指针看作是指向一个空结点,则称这类空结点为二叉搜索树的前端结点。并规定所有前端结点的高度为 -1。范围&性质:1≤n≤50001\le n\le 50001≤n≤5000分析:贪心首先对于一颗nnn个点的红黑树,他必定存

2020-09-20 11:09:06 308

原创 P3778 [APIO2017]商旅 Floyd+分数规划

题意:能力有限,没有一句话题意,自己看吧−>->−>戳这里分析:求盈利效率最大,要么贪心,要么分数规划,贪心不太现实,那就只能考虑分数规划了。所以我们要处理处分数规划所需要的价值和体积,由于这道题的nnn极小,只有100,完全可以floyd处理tip:需要注意的就是,分数规划时会给ansansans乘上体积,若体积初始化为极大值会爆精度,所以体积初始化的时候手动赋值为一个较大的就可以了代码:#include<bits/stdc++.h>using namesp

2020-09-19 09:32:43 90

原创 CF772C Vulnerable Kerbals 图论+数论gcd

题意:给出m,n,再给一个m个数的集合让你构造一个序列满足以下的条件:1.这个序列的所有数都在0-m-1之间(含)2.这个数列的所有前缀积模mmm都不同3.所有的前缀积模mmm都不能出现在给你的集合中4.最大化这个序列的长度输出任意满足条件的序列。范围&性质:1≤n≤2×1051\le n \le 2\times 10^51≤n≤2×105分析:根据题意列出同余方程,我们可以发现当余数从一个点向另一个点转移时,存在gcd(i,m)∣jgcd(i,m)|jgcd(i,m)∣j ,这样

2020-09-19 08:15:26 180

原创 P2505 [HAOI2012]道路 最短路树+拓扑排序

题意:给定一张nnn个点,mmm条边的有向图,求每条边被多少最短路经过范围&性质:1≤n≤1500,1≤m≤50001\le n\le 1500,1\le m\le 50001≤n≤1500,1≤m≤5000分析:枚举起点,对于每一个起点,建一颗最短路径树(准确来说是一个DAG),然后枚举边计算贡献,由乘法原理得,一个边会被cnt1[frm]×cnt2[to]cnt1[frm]\times cnt2[to]cnt1[frm]×cnt2[to]条路径经过,其中cnt1[frm]cnt1[frm

2020-09-19 08:14:08 115

原创 P4133 [BJOI2012]最多的方案 二分+DP

题意:给定nnn,将nnn用一些斐波那契数的和表示,求有多少种表示方法,使得每种方案里不会出现相同的两个数范围&性质:1≤n≤10181\le n\le 10^{18}1≤n≤1018分析:由于每一个数只能用至多一次,所以题目就转换成了一个01背包问题,但是这个背包的物品体积和容量过大,所以我们需要考虑优化,首先由于斐波那契数增长极快,第91项时已经超过了101810^{18}1018,所以我们只要先预处理出前91项,之后为了保证方案不重复,我们每次枚举删掉nnn范围内最大的斐波那契数,然后

2020-09-19 08:09:48 107

空空如也

空空如也

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

TA关注的人

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