自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDU多校4 - 6813 Last Problem(构造)

题目链接:点击查看题目大意:给出一个无限大的二维平面,需要在平面内进行染色,每次可以选择一个点 ( x , y ) 将其染色为 n 的前提是,相邻四个格子必须分别已经染了 n - 1 , n - 2 , n - 3 , n - 4 四种颜色,染色可以覆盖,构造出一种合理的染色方案,使得可以在平面上出现颜色 n题目分析:参考博客:https://www.cnblogs.com/graytido/p/13406750.html本来看题解觉得好难的一道构造题,搜到了上面大佬的博客,构造题嘛,就别问那.

2020-07-31 02:27:49 583

原创 HDU多校4 - 6808 Go Running(最小点覆盖+网络流优化)

题目链接:点击查看题目大意:将数轴视为跑道,现在有数个学生正在跑步,每个学生都有四个相关属性:起始时间 停止时间 起始位置 方向(正向,反向)现在给出 n 处监控,每处监控在第 t 秒第 x 个位置拍到了至少一个学生,问最少需要多少个学生进行跑步,才能满足 n 处监控的条件题目分析:因为跑道的范围是 1 ~ 1e9 ,所以贪心可以得出,因为需要让尽量少的学生进行跑步,所以每个学生尽量跑更多的路,可以使得被更多的监控拍到,这样我们不妨直接设所有跑步的学生为两类,一类是从点 0 出发正向跑,

2020-07-31 01:56:34 310

原创 HDU多校3 - 6798 Triangle Collision(几何+旋转坐标系)

题目链接:点击查看题目大意:给出一个等边三角形的区域,再给出初始时一个质点的位置 ( x , y) 和初始速度 ( vx , vy ) ,现在质点会不断运动,当碰到三角形的内壁时会根据角度反弹,问小球第 k 次碰到三角形的内壁的时间题目分析:k 非常大,肯定不能暴力去模拟每一次小球的运动,借用题解的一句话更好理解:灵感来自用激光笔往镜子中射入激光被多次反射。人眼从激光笔的视角来看,光束并没有被 “反射”,而是穿入了 “镜子中的世界”。将二维平面视为无穷大,大概就是这样互相拼接而成.

2020-07-31 01:34:19 550

原创 HDU多校3 - 6797 Tokitsukaze and Rescue(dfs+最短路)

题目链接:点击查看题目大意:给出一张无向完全图,现在要求删除 k 条边,问删除后的最短路的最大值是多少,k 最大是 5题目分析:很玄学的一道题,数据范围非常小且时间给了 8 秒,比赛时我直接暴力贪心,每次 tarjan 直接找最短路的必经边然后删除,但过了样例却返回了 WA ,然后就自闭了,看了题解之后真的感觉非常奇妙读完题后就注意到题目中说了所有的边权均是随机数,题解说因为随机数的期望都是一样的,最短路求出后每次只有一条,且涉及到的边数非常少,其他的反例的几率非常非常小,这样可以对每一层进行爆

2020-07-29 01:16:13 391

原创 牛客多校6 - Binary Vector(组合数学+推公式)

题目链接:点击查看题目大意:给出一个 n * n 的 01 矩阵,求满秩的概率题目分析:首先公式是:稍微解释一下吧,将 n * n 的矩阵视为 n 个长度为 n 的向量,对于每一个长度为 n 的向量,都有 2^n 种情况,因为要求 n 个向量线性独立,所以我们依次讨论:对于第一个向量来说,只需要至少有一个位置为 1 即可,即全部为 0 的情况不满足条件,此时满足条件的情况为 对于第二个向量来说,需要满足的条件是,不能全部为 0 ,且不能被第一个向量所表示,此时满足条件的情况为 对于第三个

2020-07-28 02:03:59 689 4

原创 牛客多校6 - Josephus Transform(线段树求k-约瑟夫环+置换群的幂)

题目链接:点击查看题目大意:给出一个长度为 n 的排列,初始时为 1 , 2 , 3 ... n - 1 , n,现在有 m 次操作,每次操作表示为 ( k , x ) ,即进行 x 次 k-约瑟夫变换,问最终排列题目分析:对于每一次的 k-约瑟夫变换,都可以视为一次置换群的结合操作,所以我们首先需要求出这个置换群是什么,假设上一次被取出来的数字是第 pos 个( 初始时为 1 ),此时环内还剩下 cnt 个数字,则下一次需要被选出的数字是剩下数字的第 ( pos - 1 + k - 1 ) % c

2020-07-28 01:05:26 490

原创 牛客多校6 - Harmony Pairs(数位dp)

题目链接:点击查看题目大意:给出一个数字 n ,规定 S( x ) 为数字 x 的数位和,现在问有多少对 ( A , B ) ,满足 A <= B 且 S( A ) > S( B )题目分析:数位dp,比赛时没有来的及开这个题,或许开了这个题也做不出来。。dp[ pos ][ delt ][ flag1 ][ flag2 ] :pos:第 pos 位 delt:S( A ) 和 S( B ) 的差值 flag1:B <= N? flag2:A <= B?剩下的

2020-07-28 00:15:10 327

原创 牛客多校6 - K-Bag(哈希+滑动窗口)

题目链接:点击查看题目大意:k-bag 序列的定义是由多个 1 ~ k 的排列顺序连接起来的序列,现在问给定的序列是不是 k-bag 的连续子串题目分析:读完题目后,如果给定的序列是 k-bag 的连续子串的话,那么可以将所有情况都分为以下三种类型:一个部分k-bag的前缀 + 数个(至少一个)完整的k-bag + 一个部分k-bag的后缀 一个部分k-bag的前缀 + 一个部分k-bag的后缀 一个部分k-bag判断部分k-bag和完整的k-bag需要用到两种不同的方法,判断部分k-ba

2020-07-28 00:03:37 1571 3

原创 牛客多校5 - Graph(字典树+分治求最小生成树)

题目链接:点击查看题目大意:给出一棵树,每条边都有一个权值,每次操作可以删除任意一条边或者增加任意权值的一条边,现在可以执行数次操作,不过任何时间都要满足以下两个条件:n 个点互相连通 所有环的权值异或和为 0求数次操作后图上边权之和的最小值题目分析:将题意转换一下就可以转换为经典问题:完全图上的最小生成树,给出 n 个点,每个点都有权值 a[ i ] ,每条边的权值为 a[ i ] ^ a[ j ] 现在需要求最小生成树这个题目只需要 dfs 跑一遍就可以转换为上述问题了,这里不多赘述

2020-07-27 02:53:28 860

原创 牛客多校4 - Ancient Distance(树上倍增+dfs序+线段树)

题目链接:点击查看题目大意:给出一棵 n 个节点且以点 1 为根节点的的树,现在给出一个 k ,需要在树上选择 k 个关键点,使得 n 个点到达根节点的路径上,出现的最近的关键点的距离的最大值最小,现在需要输出 k 分别为 1 ~ n 时的答案之和题目分析:首先理解题意,这个题目中有且仅由一个思维点需要转换过来,那就是直接计算 k 值下的答案是很难计算的,但是我们可以在某个答案下,贪心去计算 k 的值怎么理解上面这段话呢?对于某个答案 x 来说,因为 x 是题目中所有距离最大值的最小值,换句话说

2020-07-26 02:40:52 315

原创 HDU多校2 - 6763 Total Eclipse(贪心+并查集)

题目链接:点击查看题目大意:给出一张 n 个点和 m 条边组成的无向图,现在每个点都有一个点权,对于每次操作,可以选择一个点以及其周围能够连接的所有点,令其点权减一,当某个点的点权减到 0 时,就相当于将该点以及相应的连边从图中删除,问删除掉 n 个点最少需要进行多少次操作题目分析:比赛时题意出锅了,自闭了一下午回到这个题目,贪心去想每次选择点权最小的点然后将与其相连的连通块内的所有点点权减一一定是最优的(靠感觉猜的),但是如果暴力去实现的话,时间复杂度将是 n * n 的,考虑正难则反,正着删

2020-07-25 02:35:54 335

原创 HDU多校2 - 6774 String Distance(序列自动机优化lcs)

题目链接:点击查看题目大意:给出两个字符串 A 和 B,规定两个字符串的距离 dis( s , t ) 为,可以在字符串 s 或 t 的任意位置添加或删除字符,使得两个字符串相等的最小操作次数,现在给出 q 次询问,每次询问给出字符串 A 的一个子串,问 dis( A[ l : r ] , B ) 是多少题目分析:首先简化题目中的 dis 函数,假设 | s | < | t | ,再设lcs 为其最长公共子序列的长度,我们可以将字符串 s 和 t 都变为 lcs,这样显然就相等了,将其转换为.

2020-07-25 02:25:12 367

原创 HDU多校2 - 6767 New Equipments(最小费用最大流)

题目链接:点击查看题目大意:给出 n 个工人,再给出 m 台机器,第 i 个工人和第 j 台机器匹配的代价是 a[ i ] * j * j + b[ i ] * j + c[ i ] ,问如何进行匹配,可以使得代价和最小题目分析:代价可以视为二次函数,且数据范围限制了系数 a 是大于 0 的,换句话说,二次函数的开口向上,这样函数就存在着最小值考虑 n 最大只有 50 ,所以我们可以对于每个工人的二次函数,求出与其匹配所花费代价的前 n 小的位置,求出这些位置之后,直接将工人与机器连边求解就好了

2020-07-24 03:12:32 471

原创 HDU多校1 - 6759 Leading Robots(单调栈)

题目链接:点击查看题目大意:n 个机器人在数轴上赛跑,给出每个机器人的起点和加速度,初始速度都为 0 ,问有多少个机器人在赛跑的过程中可以成为最前面的一个题目分析:又是被zx学长秒掉的一道题,感谢zx学长的耐心讲解首先根据高中物理知识,根据已知条件,可以得到位移与时间的方程,y 代表位移,x 代表时间,b 代表初始位置,k 代表加速度因为都是抛物线,求交点非常的麻烦,因为我们只需要求交点的相对位置,所以可以将方程转换为位移与时间的平方的方程:,这样并不会影响交点的相对位置,同时将每一个位移.

2020-07-23 02:31:59 361

原创 HDU多校1 - 6756 Finding a MEX(分块+二分+树状数组)

题目链接:点击查看题目大意:给出一个 n 个点和 m 条边的无向图,每个点都有一个权值,现在需要执行q 次操作,每次操作分为两种类型:1 pos val :将第 pos 个点的权值修改为 val 2 pos :询问第 pos 个点相邻的所有点的权值组成的集合的 mex题目分析:只能说数据水了,如果数据拉满 std 的复杂度应该是会 TLE 的很显然的几个结论是:设点 u 的度数为 du[ u ] ,则 mex( u ) 的答案一定小于等于 du[ u ] 度数大于等于 sqrt( n.

2020-07-23 02:02:13 429

原创 牛客多校4 - Harder Gcd Problem(构造+贪心)

题目链接:点击查看题目大意:给出一个 n ,表示 1 ~ n 的 n 个数字,现在要求选出尽可能多的两两匹配,使得每组匹配的 gcd 都大于 1,输出最多能有多少组匹配,以及方案题目分析:代码:#include<iostream>#include<cstdio>#include<string>#include<ctime>#include<cmath>#include<cstring>#include&.

2020-07-21 17:47:29 302

原创 牛客多校4 - Count New String(序列自动机+广义后缀自动机)

题目链接:点击查看题目大意:题目分析:首先观察到集集合 A 中那个套娃的表示,外层的范围是 [ x1 , y1 ] ,内层是 [ x2 , y2 ] ,而内层的定义域实际上是包含在外层的定义域内的,这样外层的函数 f 其实是不起作用的,因为内层的函数 f 已经按照规则将区间集合 A 中 [ x1 , y1 ] 内的每个元素按照规则转换完毕了,再进行一次相同的转换,则就变的可有可无了,换句话说,每一个 f( S , x1 , y1 ) 实质上表示为字符串 s 的每个子串经过 f 函数转换后的字符串

2020-07-21 01:03:05 563

原创 牛客多校4 - Basic Gcd Problem(预处理质因子的个数)

题目链接:点击查看题目大意:给出一个函数,有 t 次询问,每次询问给出相应的参数,要求计算函数值题目分析:打个表不难将函数化简为:,x 为 n 中的质因子个数,而质因子的个数可以 n * sqrt( n ) 暴力去找,当然也可以利用埃氏筛 + dp nlogn 预处理,对于每次询问配合快速幂就能快速求解了代码:#include<iostream>#include<cstdio>#include<string>#include<ctime..

2020-07-20 20:06:40 360

原创 牛客多校3 - Two Matchings(dp)

题目链接:点击查看题目大意:给出 n 个点( n 为偶数 ),题目需要求出两个完全没有交集的匹配 q 和 p ,一方面使得 n 个点两两互相匹配,另一方面使得匹配的权值和最小题目分析:一道 dp 题,比赛时贪心WA了一下午,就比较自闭了因为 n 是偶数,所以可以考虑将 n 个数分配到不同的长度为偶数的环中,对于排列 q 和排列 p,只需要在偶环中交换一下位置就好了但这个偶环的长度必须要大于 2 ,因为如果长度为 2 的话,那么无法保证两个匹配 q 和 p 不存在交集还有一个需要观察或者猜

2020-07-20 02:59:42 386

原创 HDU - 6749 Mosquito(二分+状态压缩+最大流)

题目链接:点击查看题目大意:给出一个 n * m 的房间,再给出 k 个蚊子窝(保证蚊子窝在边界上),每个蚊子窝内有数只蚊子,单位时间内蚊子可以移动一个单位的曼哈顿距离,蚊子们都是非常聪明的,问最少需要多少时间,蚊子可以将整个房间都占领,即每个格子上至少存在一个蚊子题目分析:看了题解之后发现非常巧妙的一道网络流代码:#include<iostream>#include<cstdio>#include<string>#include<.

2020-07-20 02:42:42 309

原创 HDU - 6746 Civilization(贪心+模拟)

题目链接:点击查看题目大意:中文题面题目分析:一道比赛时写崩了的模拟,赛后参考别人的代码,发现原来这个题目可以写的如此简单说会题目,n 只有 500 ,可以 n * n 枚举每个位置作为起点,对于每个位置而言,可以 6 * 6去枚举周围曼哈顿距离为 3 的点,将其都压入一个 vector 中然后排序,显然在城市分配完毕后,选择权值较大的点作为接下来的工作地点是最优的,接下来模拟每个回合的过程就好了,注意,不需要枚举回合,因为大量相邻的回合所提供的贡献都是相同的,可以将其划分一下,就能快速计算了.

2020-07-20 02:12:35 256

原创 牛客多校3 - Operating on a Graph(并查集+链表合并)

题目链接:点击查看题目大意:给出一个由 n 个点和 m 条边组成的无向图,每个点初始时都有颜色 i ,i ∈ [ 0 , n - 1 ] ,接下来有 q 次操作,每次操作会给出一种颜色 x ,分两种情况讨论:如果颜色为 x 的点不存在,则跳过此次操作 如果颜色为 x 的点存在,则将颜色为 x 的点的相邻的所有颜色块,都染成 x 的颜色问最后每个点的颜色是什么题目分析:合并问题不难想到并查集,对于每个点的颜色可以用并查集来维护,不过如果暴力更新的话肯定会 T ,有一个比较显然且比较重要的结论就

2020-07-19 18:04:24 319 2

原创 牛客多校3 - Fraction Construction Problem(扩展欧几里得)

题目链接:点击查看题目大意:给出 a 和 b ,求解满足条件的 c,d,e,f ,使得: d < b f < b c,e 均为小于等于 4e12 的正整数题目分析:分情况讨论一下,首先如果 a 和 b 可以约分的话,那么直接约分后,输出 a+1 , b , 1 , b 显然就是答案了,如果不能约分的话,且 b 的相异质因子的个数不超过 1 个的话,那么是无解的,证明如下:(来自官方题解)最后一种情况就是 b 的相异质因子个数超过一个,对于这种情况可以将条件 1 的公式转换

2020-07-19 13:55:33 361

转载 扩展欧几里得求解ax+by=c的特殊解(模板)

转自:https://www.cnblogs.com/033000-/p/10040183.htmltemplate<class T> void exgcd(T a,T b,T &d,T &x,T &y){ if(!b) {d=a;x=1;y=0;} else {exgcd(b,a%b,d,y,x);y-=x*(a/b);}}//求解二元一次方程 a*x+b*y=c,一组解为x,y,无解则返回falsetemplate<class T&g

2020-07-19 13:46:37 772

原创 牛客多校3 - Operation Love(几何+叉积确定三点顺逆)

题目链接:点击查看题目大意:在平面直角坐标系中给出一只手的轮廓,需要判断是左手还是右手题目分析:因为这些点在给出时不能确定时顺时针还是逆时针给出,所以我们需要自己来判断,这里存一下给出三点判断顺时针还是逆时针的板子(其实就是个叉积计算三角形面积的应用),当判断出给出的图形是顺时针还是逆时针输入的时候,无非只有四种情况,分类讨论一下就好了,这里我选择的是最底下的长度为 9 的边和两侧长度分别为 6 和 8 的边讨论因为题目给出的数据误差较大,所以在比较大小的时候,要么eps设的大一点,或者可以

2020-07-19 13:44:17 815

原创 牛客多校2 - Interval(网格图最大流转换为对偶图最短路)

题目链接:点击查看题目大意:给出一个区间,初始时为 [ 1 , n ] ,每次操作可以将 [ l , r ] 变为下面的其中之一:[ l + 1 , r ] [ l , r - 1 ] [ l - 1 , r ] [ l , r + 1 ]现在给出 m 次限制,表示可以花费一定的代价,使得上述的前两种或者后两种变化无效,问是否可以通过一些限制,使得永远无法达到 l == r 的状态题目分析:设源点为点 ( 1 , n ) ,所有的 l == r 的点与汇点相连,不难看出,对于此图求最大流

2020-07-17 14:26:46 441 2

原创 洛谷 - P4001 [ICPC-Beijing 2006]狼抓兔子(网格图最大流转换为对偶图最短路)

题目链接:点击查看题目大意:给出一张 n * m 的稠密图,求以点 ( 1 , 1 ) 为起点,点 ( n , m ) 为终点的最小割题目分析:n 和 m 都是 1e3 级别的,最多可能有 1e6 个点,3e6 条边,跑最大流显然是正确的,但是时间复杂度肯定是顶不住的,正确做法应该是将其转换为对偶图然后跑最短路,注意建边是无向边讲解博客:https://www.cnblogs.com/jinkun113/p/9495308.html我的建图方法是先将每个点预处理标号,下面图中红色是原来的点,

2020-07-17 00:52:51 424

原创 牛客多校2 - Keyboard Free(几何)

题目链接:点击查看题目大意:给出三个同心圆,从三个同心圆上分别选择三个顶点组成一个非退化的三角形,求三角形面积的期望题目分析:参考博客:http://www.koule2333.top:3000/s/HJn9liYyw借图:如图所示,在利用向量表示出三角形的面积后,会带有两个以角度为变量的参数,且积分时带有绝对值,因为题目对精度的要求不高,所以我们可以将角度做等分,因为时间给的充足,所以我做的是 500 等分另外向量叉积的运算公式如下:因为只是第三维都为零,所以答案就是了

2020-07-16 19:51:30 383

原创 牛客多校2 - Greater and Greater(bitset优化暴力)

题目链接:点击查看题目大意:给出一个长度为 n 的数组 a ,再给出一个长度最大为 m 的数组 b,现在问在 a 中所有长度为 m 的子数组中,有多少个子数组满足每个相应的元素都大于数组 b题目分析:很显然的一个暴力时间复杂度是 n * m 级别的,高达 6e9 ,但是除以 32 后,时间复杂度好像就在可行范围内了,所以需要利用 bitset 优化一下参考博客:https://www.cnblogs.com/whitelily/p/13311327.html首先对于数组 b 的每个元素维护一

2020-07-16 01:49:34 313

原创 牛客多校2 - All with Pairs(字符串哈希+next数组)

题目链接:点击查看题目大意:给出 n 个字符串,定义函数 f( s , t ) 为字符串 s 的前缀和字符串 t 的后缀所能匹配的最大长度,现在求题目分析:因为总的前缀和后缀的个数都为个,所以我们可以预处理时将所有的后缀的哈希扔到 map 里计数,然后遍历每个前缀,记录和当前前缀相等的后缀有多少个,不过会出现重复计算的问题,例如对于字符串 s = "aba"来说,f ( s, s) 应该是 3 才对,但是当长度为 1 时,s[ 1 ] = s[ 3 ] = ' a ' 因为也满足前缀和后...

2020-07-16 01:07:50 351

原创 POJ - 1026 Cipher(置换群的幂)

题目链接:点击查看题目大意:给出一个置换群,再给出数个字符串,每个字符串需要输出执行 k 次置换群后的答案题目分析:置换群的 k 次幂,直接写就行了代码:#include<iostream>#include<cstdio>#include<string>#include<ctime>#include<cmath>#include<cstring>#include<algorithm>#in.

2020-07-14 03:10:15 325

原创 牛客多校2 - Just Shuffle(置换群的幂)

题目链接:点击查看题目大意:给出一个置换 B,求出一个置换 A ,使得,k 是一个大质数题目分析:等式两边同时乘以 t 次幂,变为,显然当 t 为 k 的逆元时,有式子,所以求一下 B 的 t 次幂就好了代码:#include<iostream>#include<cstdio>#include<string>#include<ctime>#include<cmath>#include<cstring&gt...

2020-07-14 02:49:56 896 2

原创 牛客多校2 - Fake Maxpooling(线性递推gcd+单调队列)

题目链接:点击查看题目大意:给出一个矩阵 A 的大小,规定其元素 A[ i ][ j ] = lcm( i , j ) ,再给出一个 k ,求所有大小为 k * k 的子矩阵中的最大值之和题目分析:题目时限给了三秒,可以直接 n * m * logn 去求出矩阵 A ,但题解提供了一种可以线性求解 gcd 的方法,所以可以优化掉一层 log,在求出矩阵 A 后,可以对于每一行,利用单调队列维护区间最大值,mmax[ i ][ j ] 记录 A[ i ][ j - k ] : A[ i ][ j ]

2020-07-14 01:29:11 605

原创 牛客多校2 - Cover the Tree(dfs序)

题目链接:点击查看题目大意:给出一棵无根树,问能否选择数量最少的链,使得所有的路径都被覆盖到题目分析:读完题后不难看出,假设叶子结点的个数为 x,那么答案就是 x / 2 向上取整然后说结论,dfs序依次拿出叶子结点后,第 i 个叶子结点和第 i + x/2 个匹配就可以了,证明如下:代码:#include<iostream>#include<cstdio>#include<string>#include<ctime>#i.

2020-07-14 01:18:39 347

原创 牛客多校2 - Boundary(几何)

题目链接:点击查看题目大意:给出 n 个点,需要我们选择一个经过原点的圆,使得这个圆经过尽可能多的点,输出最多可以经过多少个点题目分析:n 的大小是 2000 ,显然支持 n * n 最多再加一个 log 的写法,因为三个不共线的点确定一个圆,圆上的一个点(原点)已经确定了,所以我们可以 O( n ) 枚举一下另一个定点 P,此时大概是这个样子最后 O( n ) 枚举点 A 时,此时不共线的三点已经可以确定一个圆了,换句话说,三个点就可以确定下来圆心的位置了,当点 P 和点 O 都确定下来后

2020-07-14 00:58:47 399

原创 牛客多校 - B-Suffix Array(后缀数组)

题目链接:点击查看题目大意:给出一个只含有 ' a ' 和 ' b ' 的字符串,再给出 B 数组的构造方法如下:对于每个位置 i 来说如果存在一个位置 j ,使得 j < i 且 s[ j ] == s[ i ] ,则 b[ i ] = i - j 否则 s[ i ] = 0现在需要对字符串的每个后缀构造 B 数组,并按照字典序排序题目分析:参考博客:https://blog.csdn.net/weixin_43965698/article/details/107304525一个

2020-07-13 00:51:03 838

原创 牛客多校 - 1 or 2(一般图最大匹配)

题目链接:点击查看题目大意:给出一张无向图,问能否删除任意数量的边,使得每个点的度数都达到指定的数值,度数的取值范围为 [ 1 , 2 ]题目分析:hdu的原题的弱化版https://mp.csdn.net/console/editor/html/107305865代码:#include<iostream>#include<cstdio>#include<string>#include<ctime>#include<cmat.

2020-07-12 22:07:27 548 2

原创 HDU - 3551 Hard Problem(一般图最大匹配)

题目链接:点击查看题目大意:给出一张无向图,问能否删除任意数量的边,使得每个点的度数都达到指定的数值题目分析:参考博客:https://www.cnblogs.com/xiongtao/p/11189452.html很巧妙的建图,需要拆度+拆边建图,如第一个样例而言:4 41 23 42 31 41 2 1 0建图为:点 1 代表节点 1 的一个度,点 2 和点 3 代表节点 2 的一个度,点 4 代表节点 3 的一个度剩下的结点 5 ~ 节点 12.

2020-07-12 22:01:39 423

原创 牛客多校 - Minimum-cost Flow(最小费用最大流+贪心)

题目链接:点击查看题目大意:给出一张有向图,每条边都有单独的花费,现在给出 q 次询问,每次询问给出一个 u 和 v 需要回答:将所有边的流量都设置为 u / v 后,从点 1 到点 n 流量为 1 时的最小花费为多少题目分析:因为询问非常多,肯定不能对于每次询问重新建边,但因为总的边数非常小,所以我们利用等比例的特性,初始时先将每条边的流量都设置为 1 ,在求最小费用最大流的时候,记录一下每个流量下的最小花费,这样对于每次询问,就可以贪心求解了因为初始时每条边的流量为 1 ,每次询问时每条边的

2020-07-12 18:14:33 822

空空如也

空空如也

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

TA关注的人

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