自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CF 659 D - Sum of Paths dp E Tree树上差分

D - Sum of Paths题目链接D题题意是给一个数组,刚开始随便在一个点,之后随机向左向右走。只能在1−n1 - n1−n中走(不能越界),每走到一个点就加上这个位置的值,问走的所有路径的权值总和是多少。有m次查询,每次修改一个位置上的权值。这题很显眼,就是统计每个点总过走多少次。(在所有的路径中出现的次数)于是可以想到dp[i][j]dp[i][j]dp[i][j]表示走jjj步后到iii点的种类数,转移方程:dp[i][j]=dp[i−1][j−1]+dp[i+1][j−1]dp[i]

2021-01-28 14:24:11 190

原创 Codeforces Round #685 (Div. 2) E Bitwise Queries 位运算 妙啊

E Bitwise Queries题目链接easy和hard交互题题意:给一个长度为nnn的数组,元素为从[0,n−1][0,n - 1][0,n−1]。刚开始给你长度nnn,n是2的次幂,让猜这个数组,每次询问有可以是三种中的一种:XOR i j //返回a[i] ^ a[j]AND i j // 返回a[i] & a[j]OR i j // 返回a[i] | a[j]easy让询问不超过n+2n + 2n+2次、hard让询问不超过n+1n + 1n+1次。让猜出这

2020-11-25 10:33:10 236 1

原创 洛谷 P6186 [NOI Online #1 提高组]冒泡排序 树状数组

P6186 [NOI Online #1 提高组]冒泡排序题目链接(题解里的大佬写的真好!连我都能看懂 )这道题是给一个排列,有两种操作:1 x 把x 与 x + 1交换2 x 问执行x次以后冒泡以后,有多少个逆序对。很显然x >= n - 1时 答案 == 0先来看看执行一次冒泡排序后是什么样子?原数组:3 2 1 6 5 4 7 9 8执行一次:2 1 3 5 4 6 7 8 9因为冒泡嘛,就是选当前最大的往后移,然后把最大值移到后面,所以对于一个数再执行一次冒泡操作时,如果他前

2020-11-22 09:57:17 263

原创 CF Div.2 E - Greedy Shopping 线段树

Greedy Shopping题目链接题目开始给出一个非递增的序列,表示商品的价钱;有两种操作:1 x y 对于每个 i 属于1~x a[i] = max(a[i], y);2 x y 表示一个人买东西从x开始,有y块钱,碰到能买下的就买下,问能买几个。啊这这怎么做取最大值的操作想到了吉老师线段树。于是比赛的时候就忽略了他是一个非递增序列。。。 虽然后来想起来了,可还是不会。首先这个序列是递增的,对一个值取完最大值后他肯定还是递增的。然后取最大值的操作:设第一个比y小的值在下标为k的地方,

2020-11-18 12:10:22 233

原创 CCPC 长春 J - Abstract Painting

J - Abstract Painting链接题解区间dpdp[l][r][0] 表示 l ~ r 左端点在 l 右端点在 r 没有圆的种类数dp[l][r][1] 表示 l ~ r 左端点在 l 右端点在 r 有圆的种类数为什么要区分呢?因为初始的时候就有一些圆,这些圆是必须存在的。所以这些点的dp[l][r][0] == 0.因为圆的半径最多是5,所以区间dp 转移的时候 枚举中间点最多只用枚举5个就好。转移方程:l 的地方没有圆经过的情况:dp[l][r][0] = dp[l +

2020-11-10 13:10:09 764 2

原创 CodeForces 682 div1 C. Graph Transpositions 最短路

题目题意大概是:给一个有向图。每次可以执行两个操作中的任意一个:1、 沿着边走一步 花费1s2、 把图翻转,第一次翻转花费0秒第二次翻花费2秒第三次花费4秒……问从1 到 n花费的最短时间。题解他翻转不了几次,然后就不翻转了。但是这要怎么写呢?一、次数少的话可以建分层图, 很简单。20层以后肯定是能不翻转就不翻转。所以先建20层图,跑个最短路。如果能走到那就是最短路了。二、但是有那种翻转的少走不过去的样例。怎么办?这种情况因为要取模,不能直接用距离表示。况且建不出来图。。建两层

2020-11-07 11:12:37 123

原创 CCPC 绵阳 7-5 Escape from the Island 拆点解法

继上篇博客,有个拆点的写法。众所周知:dp是有向图上最短路。拆点怎么拆?把一个点拆成k + 1个点表示之前已经走了x步的最短距离。然后像dp的那样建图就好了,两者实质上是一样的。拆点只不过是把每个状态都表示成了一个点,然后bfs 跑最短路。记得特判自己没有出边的情况。#include<stdio.h>#include <algorithm>#include <vector>#include <string>#include <queu

2020-11-04 09:00:19 340

原创 CCPC 绵阳站 7-5 Escape from the Island 图 + dp

Escape from the Island链接题目意思,好绕:给一个图,n个点,m个边。有向。一个人要从起点 S 开始走,要去 n 点。把有向图看成无向图自己选路走,最多走k次,可以不走。走完后,在停的那个点的地方,随机走一个有向边。如果没有出边,就不走了。这个人要尽快的走到 n 这个点。问走的时间最长是多少?(也就是每次随机都走最不合适的路)如果走不到输出 -1。题解我好菜啊,, 每次写题解都想抒发一遍 我好菜啊dp[i][j] 表示第i个点前面已经走了j条边 。 0 <

2020-11-03 20:20:13 598

原创 CF 1436 E 线段树+思维

啊啊啊啊啊 ~~ 我好菜这道题题意大概是:求这个序列 任意连续子序列的mex 的mex。怎么求呢?还好,, 有一点点想法。从小到大枚举答案是谁,判断它成不成立,如何判断呢?假设枚举的是 x ,如果随便一个区间中没有 x ,并且包含 1 ~ x - 1。那么这个值肯定可以当答案。然后 问题就是 怎么判断 随便一个区间中没有 x ,并且包含 1 ~ x - 1 是否成立。刚开始想的 把x 不在的区间放到vector中,然后 遍历一下,在主席树上找这个区间中包不包含1~x - 1.然后突然

2020-10-29 09:22:33 244 1

原创 2019 徐州 icpc 树状数组套线段树 H - Yuuki and a problem

H - Yuuki and a problem题目题意大概是 :给一个数组,有两种操作:1 x y 把x位置上的值替换为y2 l r 求 l ~ r 区间内元素任意子集的和都不能构成的最小值。这个题刚开始看到,没有一点想法,, 后来也没一点想法。。如果只有查询怎么办?只有查询的话,我只能想到背包。再次感慨我好菜对,就是背包的想法。如果把1 ~ x 内的数都能由他的子集表示出来,那么x + 1满足什么条件才能表示出来?在1 ~ x 的数都能表示出来的前提下,1 ~ x + 1 内

2020-10-21 19:47:55 213

原创 P2824 [HEOI2016/TJOI2016]排序 妙啊 思维 二分 线段树

P2824 [HEOI2016/TJOI2016]排序贴个链接题意是给一个长度为n的序列,有m次操作;每次操作是:0 l r 把 l ~ r 区间按递增排序1 l r 把 l ~ r 区间按递减排序最后为pos 位置上的值是多少。这个怎么做?按他的操作没法完成排序,(是我不会)但是,可以考虑二分一个答案。现在问题相当于是给一个值问经过上次操作后的值比这个值大还是比这个值小。来确定二分边界的变化。?把比mid小的变为0,把mid大的变为1.这样一来,排序操作就是查询这个区间有多少

2020-10-17 20:41:15 171

原创 Arithmetic Progressions 牛客国庆训练 4 B dp

Arithmetic Progressions贴个链接题意给一个数字的集合,让从集合中选出一些数让他们构成等差数列,问做多能选的数有多少个集合大小:5000题解这题都不会?我是好菜了,,我好菜,自闭ingdp[i][j] 表示第 i 个数字是最后一项,第 j 个数字是倒数第二项的最长长度。所以转移怎么转移? 肯定是枚举 i 、j 然后枚举i之前的一个位置pos,从dp[pos][i] 转移过来。pos 得满足:a[j] - a[i] == a[i] - a[pos]; 并且pos 得是

2020-10-04 17:02:16 98

原创 洛谷 P4438 [HNOI/AHOI2018]道路 树 dp

P4438 [HNOI/AHOI2018]道路贴个链接我是sb,wtmd是猪题目意思题意特别绕。。大概就是给一个二叉树,(我没注意到他是颗二叉树,一直以为农村的出边不止一个。。) 每个节点,只能让跟他的左儿子或者右儿子中的一个标记,每个叶子节点的值是设一个非叶子节点的两个边为0,1 。也就是对每个节点只能标记0 或 1x表示这个节点走到跟节点经过的没有标记的0的个数,y是走到根节点经过的没有标记的1的个数。问所有叶子结点的答案的和最小是多少。对了,,他题上说树的深度最多是40.。。 这个条件

2020-09-24 22:18:03 363

原创 cf div.3 F. Yet Another Segments Subset

F. Yet Another Segments Subset题目地址题意给n个区间,让选出一些区间,选出的这些区间要么不相交,要么包含。问选出的最大的数量是多少。n <= 3000bb区间dp,dp[i][j] 表示 i ~ j 区间能选出的最多的数量。但是普通的区间dp是n^3 .所以 可以优化一下:区间dp 一般就是:枚举长度,枚举起点,枚举 l ~ r 中间状态转移的位置.可以发现 l ~ r 中间状态转移的位置可以优化,不用从 l ~ r 枚举一遍。只用从在这个区间里的转

2020-09-17 10:47:26 132

原创 edu div.2 D. Infinite Path 置换,什么的

D. Infinite Path题目地址看的神仙题解绕口的题意给一个排列P,和一个颜色C数组定义两个排列的乘积,a * b = c 那么 c[i] = b[a[i]] ,p的k次方就是 p * p * p * p * p问k 最小是多少的时候可以有一个环上面的颜色一样。看不懂?来个样例7 4 5 6 1 8 3 2 p的一次方3 6 1 8 7 2 5 4 p的二次方5 8 7 2 3 4 1 6 p的三次方颜色是:5 3 6 4 7 5 8 4可以看出p的二

2020-09-15 21:18:46 100

原创 codeforces div.1 C. Fixed Point Removal

C. Fixed Point Removal题目链接题目大意给一个数组,如果ai == i 那就可以删除ai , 之后后面的就可以并上来,也就是后面的下标都-1.问最多可以删除多少个。有m组询问 每次询问输入 x,y 就是 把前x个和后y个变成n + 1, 后,答案是多少。瞎bb单纯理一下思路。。如果没有查询可以注意到删掉后面的,对前面的没有影响。如果当前的 ai > i 那必不可能删除这个值了。所以应该从后往前删,如果当前的 ai <= i 并且 前面删除的个数大于等于i -

2020-09-15 13:27:36 134

原创 HDU - 4010 link/cut tree

HDU - 4010题目链接题意给一棵树,四个操作1 x y x~y连一条边2 x y 把x变成根,断开y跟他的父节点3 w x y 把 x 到 y 路径上的点权加w4 x y 查询 x ~ y 路径上的点权的最大值我的zz问题做这个题真的是脑抽题要看对,2操作不是断开x跟y的边。题看错wa死了2操作void cut(int x,int y){ makeroot(x); if(findroot(y) != x || node[y].fa != x || node[

2020-09-12 11:15:02 158

原创 cf div 2 E 最短路 思维 Egor in the Republic of Dagestan

Egor in the Republic of Dagestan题目链接题目大意给一张有向图,边的边权只有0和1,让给点染色,点是0的点只能走边权是0 的边,点是1的点只能走边权是1的边,有一个人要从1走到n,让给点染色,使这个人走不到n,如果不能让他走不到n,那就让他走的最短路距离最大。输出最短路的距离和点权。题解目的是要把每个点走到n的最短路给封住,建反向图,从n开始走,如果这是第一次走到点x,就把x的颜色变成跟这个边的颜色不同的颜色,因为第一次走到是最短距离,把这个最短距离封住就好。然

2020-09-11 15:31:18 97

原创 CF 补题 E. Boboniu Walks on Graph

E. Boboniu Walks on Graph题目链接题目意思给一个有向图,在图上走的时候,出度为 i 的边,只能走到边权大小为第 ci 小的边上面,问c数组有多少种,要每个点都满足:从这个点开始走都可以回到这个点。每个点的入度都小于等于9题解都可以回到这个点,,但是每个点的出边只能有一条,所以n个点,入度都为1。因为入度都是小于10的所以可以暴力枚举一下c数组,然后check。怎么check? 只要按照枚举出来的 c 数组走,每个点的入度等于1就可以。所以可以预处理一下,预处理入读为

2020-08-30 20:51:02 160

原创 P2042 [NOI2005]维护数列 fhq treap

P2042 [NOI2005]维护数列题目的链接众多平衡树独爱fhq题目有好多种操作:1、添加一堆数2、删除一个区间里的数3、把一个区间里的数全变成同一个数4、反转一个区间5、求区间和6、求最大的连续子序列的和。因为要求连续的子序列的和,就想到了线段树区间合并。这个,,应该可以想到。所以就维护 lnum,rnum,num做的时候的zz问题崩溃了~~ 做的时候 我tmd 崩溃了,, 快神经了啊 我一、添加一堆数我刚开始一个一个添加,, 因为方便(tle)二、反转一个区间的时候

2020-08-28 00:45:58 190

原创 杭电第十场 Coin Game

Coin Game题目链接题目大意有n台机器可以产生硬币,每一台机器按第一次产生a[i] 个硬币,按第二次产生b[i] 个硬币,按第三次又产生a[i] 个硬币, 之后再按就不会产生硬币了。设按x次可以得到的最多的硬币数量是 f(x) ,问f(1) ^ f(2) ^ f(3) ^ …… ^ f(m);n范围:5e6m:1.5 * 1e7题解把一个机器分成两个,a[i] 和 b[i] + a[i],为什么可以这样分呢?按一次: a[i]按两次:a[i] + b[i]按三次:a[i] +

2020-08-24 12:03:20 132

原创 杭电第十场 Mine Sweeper 构造

Mine Sweeper题目链接题目大意扫雷,一个数字代表周围一圈里有多少个雷。给出一个数N,代表所有数字的和。让构造一个所有数字和是N的棋盘。(雷的地方没有数字)要求大小行、列都小于等于25题解艹,没有看数据范围是1000,还在想怎么能装下最多的,最多装多少。。x代表炸弹.代表没有炸弹由于 . 太小了,看不见,我们用@代替n是1的情况:X@n是2的情况:X@Xn是3的情况:X@X@一次类推,可以得到n小于等于24的情况。(因为这个只是一行)在一个九个格子的中间放一个,可以贡

2020-08-20 22:13:16 246

原创 杭电第十场 Permutation Counting dp

Permutation Counting题目链接题目大意给一个只包含0、1,长度维n - 1的数组b,b[i] = 1 表示a[i] > a[i + 1]b[i] = 0 表示a[i] < a[i + 1]a数组是1~n的一个排列,问有多少种a数组。题解lg过的,我不会,我是真的菜,好难想啊怎么根据这个01数组构造出来a数组?先给数组加入一个1,从 2~n 如果第 i 位是0,就在前一个后面某一个位置加入 i ,如果第 i 位是1,就在前一个加入的位置前面某一个地方加入 i

2020-08-20 21:06:12 244

原创 杭电第九场补题 Game 平衡树维护

Game题目链接题目大意初始有n列木块,第 i 列有 a[i] 个。有两种操作:1 x y : 向左推第x列的从下到上第y个,(如上图所示)2 x :查询第x列有多少个木块题解用平衡树维护,我用的是fhq treap (因为我只会这个,我好菜hhhh)操作二就是找第x个值是多少,很简单。。我这里是把树按大小分裂。第一个树L有x - 1个数,剩下的在另一棵树R里,然后把R再分裂,按1分裂,分裂成Y,Z。然后Y就只有x这个节点了。返回x的权值就好了。看操作一:往左推一下,然后设可以推动

2020-08-19 22:52:47 156

原创 洛谷 P2633 Count on a tree 主席树、lca、前缀

P2633 Count on a tree题目链接题目大意给一棵树,有点权,每次询问,x到y路径上点点权的第k小是多少?强制在线,题解第k小,肯定会想到主席树。但是怎么处理呢?数组中求区间第k小的方法是 把数组的每个前缀建个权值线段树,然后要查询 l~r 区间的值,就用r的权值线段树中的数量减去l - 1中的就好了。也就是T® - T(l - 1)现在是在树里面。方法是:根节点到每个点都建个权值线段树。(当然是主席树那样的,)然后现在知道了根到每个点,怎么求一个路径上的?当然是 T(

2020-08-17 22:18:27 141

原创 Codeforces Global Round 10 E Omkar and Duck

Omkar and Duck题目链接题目大意这是一个交互题,你先给出一个矩阵,然后输入权值,这个权值是矩阵中(1,1)点到(n,n)点的路径上的权值和。让你输出这个路径。所以要保证每种走法的路径权值和都不一样。题解做的时候想到了,可能的权值是0~x (x是走法的数量)。但是不会构造,,画了好多,没构造出来。。其实只要让x步后所能到达每个点的权值范围都不一样即可。x步能到达的点就是左下到右上对角线上的点。,所以只要让从1,1点到每个对角线上的每个点的权值范围不同即可。这样的话,就可以一

2020-08-17 14:21:43 150

原创 杭电多校第三场 Tokitsukaze and Colorful Tree 树

Tokitsukaze and Colorful Tree题目链接题目大意给一颗树,每个点有颜色、权值。求的值。这个式子就是颜色相同的,并且u不是v的祖先,并且v不是u的祖先的权值异或完的和。两种操作:1 x v 把x点的权值变成v2 x c 把x点的颜色变成c每次操作完输出上面公式的值。题解离线操作,把修改一个点的权值或颜色,变成删除一个点,增加一个点。考虑每种颜色对答案的贡献。为什么每种颜色每种颜色的统计呢?因为空间只够开一个树状数组的,并且每种颜色是独立的,不会影响另一

2020-08-15 16:25:38 273

原创 杭电多校第八场 Kidnapper‘s Matching Problem 线性基 kmp

Kidnapper’s Matching Problem题目链接题目大意给一个长度为n的数组a,长度为m的数组b,长度为k的数组s。从a数组中选一个长度为m的连续子序列跟b数组两两匹配。配对只能是这样配:(a[l], b[1]), (a[l + 1], b[2]), (a[l + 2], b[3]) ……使得a[l + i - 1] ^ b[i] 能在s中选一些数异或得到。也就是a[l + i - 1] ^ b[i] 在s的线性基里出现。题解还是蠢啊,干不出来假设 a ^ b 在s的线性

2020-08-14 00:43:51 198

原创 牛客多校第十场补题 Decrement on the Tree 树、妙啊妙啊

Decrement on the Tree题目链接题目大意一棵树,每次选一条路径让这条路径上的边权都减一,问最少操作多少次可以让这棵树的边权变成0?还有m次修改,每次给出x,y把第x条边边权变为y。每次修改完输出答案是多少。题解一直以为是什么数据结构维护之类的。。是我太年轻了每次选一条边,也就是两个点,让这两个点之间的边权都减一。然后考虑每个点选几次如果这个点连的边两两可以匹配,那么就不用选这个点。怎么确定两两可以匹配完呢?如果最大值小于总和 - 最大值。就一定可以匹配。当然还要判断

2020-08-10 23:02:51 158

原创 牛客第九场补题 B Groundhog and Apple Tree 贪心

Groundhog and Apple Tree题目链接题目大意给一棵树,有边权,点权。走过这条边的需要的hp是边权。只有hp大于等于边权的时候才能走这条边。第一次走到这个点可以获得 ai 的hp。也可以呆在原地不动休息,每秒hp增加1。刚开始在1号节点,问要走完所有的点,并且回到一号节点所需要的最少的休息时间。题解首先,这个题肯定是考虑子树走的顺序。因为如果走完这颗子树,可以额外获得一些 hp 在走下一棵子树的时候就会抵消掉一些,少一点等待时间。于是,考虑怎么贪心的走。好了,比赛的

2020-08-09 00:11:38 168

原创 牛客第七场补题 Valuable Forests prufer序列

Valuable Forests题目链接题目大意定义一个树的权值为它的所有顶点度数的平方和。森林的权值为所有树的权值和。求有n个点,带编号点的,所有的森林的权值和。带编号意思是1-2-3 不等于 1-3-2题解prufer序列学习博客大佬题解博客看的这两篇博客学会的这道题(其实还是有点懵逼)可以看上面的博客,我写博客完全为了加深印象。 。。先预处理几个数组:定义N[i] 代表具有i个点的树有N[i]种。根据pruper序列中的结论:一颗有n个节点的树有n的n - 2次方中形态,

2020-08-08 01:58:20 154

原创 杭电多校第五场 Tree 树形dp

Tree题目链接题目大意给一棵树,让选择一个联通的子图满足:度数大于k的点的数量不超过1个(小于等于1)图是联通的。边权和最大。问能选出来的最大边权和是多少。题解树形dpdp[x][0] 表示x的子树里的点的度数都小于等于k的边权和最大值。dp[x][1] 表示x的子树里有一个点或0个点的度数大于k的边权的最大值。转移方程:dp[x][0]显然是儿子中最大的k - 1个dp[v][0]的和。dp[x][1]怎么算?有两种情况:当这个度数大于k的点是x的时候,dp[x][1]

2020-08-07 15:29:09 239 1

原创 找矩阵第k大的数、力扣 1508. 子数组和排序后的区间和

如何在有序矩阵中找第k大的数?378. 有序矩阵中第K小的元素 题目链接一个矩阵从左到右递增、从上到下递增怎么找第k大的数?1、 把矩阵变成一维然后排个序2、 合并有序数组那样合并3、 二分主要说二分怎么求。二分一个第k大是多少。check的时候,也就是判断有没有k个数大于等于mid比mid小的肯定在是左上角一些元素。比如这样一个矩阵:如果mid是12的话:就有左上角这样一些:这样的话就可以用n+n的时间快速统计出来有多少个数大于等于mid!!(明明可以暴力的)int su

2020-08-05 01:56:11 899

原创 牛客多校第七场 A National Pandemic 树刨

A National Pandemic题目链接题目意思给一颗树有三种操作:1 x y 给每个点点权都加上y - dis[x][y] (dis[x][y]是x->y路径上的边数)2 x 如果x点的点权大于0,就把他变为0.3 x 查询x的点权。题解先看第一种操作:y - dis[x][y] = y - (dep[x] + dep[y] - 2 * dep[lca]) = y - dep[x] - dep[y] + 2 * dep[lca].怎么实现呢? +2*dep[lca

2020-08-02 13:16:14 139

原创 牛客多校第五场 A Portal 图 dp

Portal题目链接题目大意刚刚给一个无向图,边权是距离,有k个任务,每个任务是要去两个点,必须先去ai点,后去bi点。任务必须从前往后做,也就是说不能做完1任务就做3任务。现在有两个传送门可以放置,放置传送门的时候必须走到那个点放置,撤掉传送门的时候可以不在那个点。一个传送门可以直接传送到另一个传送门,距离为0。刚开始在1号点,问完成任务需要走过的距离最少是多少?点数:300,任务数:300,边数:4e4题解完成任务a1->b1->a2->b2->a3->b3

2020-07-31 23:29:32 183

原创 牛客第六场补题 Josephus Transform 置换、快速幂

Josephus Transform题目链接题目大意一个长度为n的排列,初始为1……n。有m次操作:每次操作是进行y次 k-约瑟夫变换 。这个变换就是:先把1……n写成一个环,然后从1开始找到第k个,把这个数加到b里,把这个数在环里删去,从这个位置下一个 继续找第k个,直到数字被删完。1<=n<=1e51<=m<=1e51<=n * m<=1e6题解求进行一次k-约瑟夫变换得到的排列b,可以用线段树求出来,复杂度是n*logn.进行y次变换也就是用

2020-07-31 14:53:11 139

原创 牛客第六场补题 数位dp Harmony Pairs

Harmony Pairs题目链接题目大意S(A) 代表A的每位数之和。求0 <= A <= B <= n 并且 S(A) > S(B) 的(A,B)对的数量。题解看到这道题,首先想到数位dp,然后就不会了。。状态表示:dp[i][j][f1][f2] 表示当前是第i位(也就是前i位的状态已经计算过来了。现在往i + 1位转移),S(A) - S(B) = j ,f1表示A与B的大小关系:A < B的时候f1是1 A == B 时 f1是0 ,A不能大于B

2020-07-31 12:01:22 174

原创 杭电第四场 Go Running 二分图

Go Running题目链接题目大意一些人在跑步,从任意一个位置开始,向左或向右跑,速度都为1 m/s。现在已经知道在ti 时刻xi位置上出现了至少一个人,问最少有多少人在跑步题解先说一说比赛的时候的不足:想到了往右跑的人在任意时刻 t - x 一定是相等的。想到了往左跑的人在任意时刻 t + x 一定是相等的。现在就是找一些值覆盖这n个点。。然后就不会了,感觉有点像二分图,但是一直不知道怎么搞,像是脑子死机了一样。还有对时间复杂度理解的不够,一直认为1e5跑网络流会tle,可是二分图上

2020-07-31 00:39:54 112

原创 杭电第三场 Tokitsukaze and Rescue 图

Tokitsukaze and Rescue题目链接题目大意给一张完全图,每个边有边权。问删掉k条边让从1到n的最短路最长,问这个最长的距离是多少?边权随机,点的个数: 50题解做的时候,感觉到了这个题很暴力,但是没想到这么暴力。。做的题少,主要不知道边权随机是干嘛用的。。就是爆搜。。跑一个最短路,枚举最短路上的边,然后删掉,继续跑最短路,继续枚举。这样的话,复杂度是这。。谁敢写啊。。但是题解说由于边权随机,所以最短路径上的边的数量不是很多,这样可以过。。#include &lt

2020-07-29 01:23:26 104

原创 牛客多校第5场补题 B Graph 异或最小生成树

Graph题目链接题目大意给出一颗树,有两种操作,添加一条边,删除一条边。每个时刻必须满足如果有环那么环的边权异或和必须是0,必须是联通的。题解也就是先求一下每个节点到根节点的异或和,然后用这些值的异或当边权求个最小生成树。问题就是 知道一些点的点权,边权是两个点权异或,然后求最小生成树。求最小异或值可以用字典树。好了,比赛的时候就想到了这里,不会求了。然后考虑到了并查集,但是不会两个集合合并,也就是合并n - 1次,但是怎么求两个集合里的数各挑一个的异或最小值,然后就不会了好菜,连异

2020-07-25 23:49:00 121

空空如也

空空如也

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

TA关注的人

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