自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 177

原创 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 218

原创 杭电第十场 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 159

原创 杭电第十场 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 273

原创 杭电第十场 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 270

原创 杭电第九场补题 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 162

原创 洛谷 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 148

原创 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 172

原创 杭电多校第三场 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 316

原创 杭电多校第八场 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 224

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

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

2020-08-10 23:02:51 185

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

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

2020-08-09 00:11:38 174

原创 牛客第七场补题 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 162

原创 杭电多校第五场 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 256 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 945

原创 牛客多校第七场 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 143

空空如也

空空如也

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

TA关注的人

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