自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tcy今天长胖了吗的博客

ACMer的日常记录

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

原创 2022保研夏令营/预推免记录:浙大计院直博/西湖电子直博/南大软院/厦大信院

从今年3月到9月,我的保研之旅终于也落下帷幕。中间有焦虑,纠结和痛苦,但最终还是得到了一个很好的结果。特以这个blog,记录一下过程中的一些信息,也可以供后来者参考。

2022-09-30 15:48:48 4623 13

原创 2022天梯赛总结

接下来应该还会参加下一年的ccpc女生赛,不知道有没有机会参加下一次的天梯赛了(大四未定数太多),如果不能,就以这篇收尾吧。最后祝学校集训队越办越好:D

2022-04-25 13:46:55 1925 5

原创 G. Rikka with Intersections of Paths(2018-2019ICPC徐州)【树链剖分+线段树】

G. Rikka with Intersections of Paths(2018-2019ICPC徐州)【树链剖分+线段树】题意给定一棵 nnn 个点的树和 mmm 个树上的简单路径的端点点对,求从 mmm 条路里选 kkk 条,满足这 kkk 条路有至少一个点是公共点的方案数。思路歪掉的思路模拟赛的时候想着想着就以为是 kkk 条路连通了,于是写了个单点修改、区间查询的树链剖分,然后对路径排序,按照 lca(u,v)lca(u, v)lca(u,v) 的深度从深往浅处理,每次先统计这条路径上

2021-09-22 19:39:22 364

原创 D. The Strongest Build(Edu Div. 2#114)【优先队列搜索】

D. The Strongest Build(Edu Div. 2#114)【优先队列搜索】题目传送门(逐渐懒惰)思路只有十个槽,所以大胆一点,存十个槽的状态,从所有槽都是最后一个开始向下宽搜(因为有序递增,所以都选最后一个是最优解),优先队列以当前这个状态的能力和为优先级。简单的说就是宽搜板子,,,就是赛场上傻掉了居然想直接用longlong存状态(不知道为什么以为每个槽也只有10个深度)代码#include <bits/stdc++.h>#define pb push_back

2021-09-22 19:13:40 185

原创 D. Lowbit(The 15th Chinese Northeast Collegiate Programming Contest)【线段树】【区间】

D. Lowbit(The 15th Chinese Northeast Collegiate Programming Contest)【线段树】【区间】传送门#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e5 + 10;const int mod = 998244353;ll lowbit(ll x){ return x & (-x);}

2021-08-27 22:50:59 207

原创 P6136 【模板】普通平衡树(数据加强版)——Treap解法

P6136 【模板】普通平衡树(数据加强版)wa了一下午,最后发现是INF设小了……需要注意的点:可能会查询一个不存在的数的rank数据范围 2302^{30}230,如果一般习惯用 0x3f3f3f3f 赋值的同学需要注意,230=1073741824,0x3f3f3f=10611095672^{30} = 1073741824 ,0x3f3f3f = 1061109567230=1073741824,0x3f3f3f=1061109567。(我在这WA了一下午)#include <b

2021-08-26 17:20:36 169

原创 [HDU-6862] Hexagon【构造】

[HDU-6862] Hexagon【构造】传送门题意遍历一个半径为 rrr 的平铺六边形中每个小六边形恰好一次,问最多拐多少次弯?左:半径的定义 右:方向的定义思路如下构造:可以看到,每圈都以4开头,以3结尾,之间是6组两个方向的重复,依此构造即可。代码#include <bits/stdc++.h>using namespace std;typedef long long ll;int mp[10][2];void print(int r) // 半径{

2021-08-21 10:56:35 100

原创 Tree Xor(2021牛客暑期多校训练营4)【线段树】

Tree Xor(2021牛客暑期多校训练营4)【线段树】传送门题意给定一颗树,每个点的权值 aia_iai​ 在 [li,ri][l_i, r_i][li​,ri​] 之间,已知每条边 u,vu, vu,v 的边权 wu,v=au xor avw_{u, v} = a_u \ xor \ a_vwu,v​=au​ xor av​ ,思路参考:2021牛客多校4_bok_choy_的博客 队友的博客队友写的好好,我摸了()具体实现见代码注释代码#in

2021-08-21 10:38:01 141

原创 2021牛客暑期多校训练营9

2021牛客暑期多校训练营9E-Eyjafjalla思路以点1为根,可以发现这棵树有这样的性质:深度越深,温度越低。所以我们从当前点往根节点走,一直走到父亲节点的温度不在 [l,r][l, r][l,r] 区间内时停下,此时所在的节点就是病毒能够扩散到的深度最低的节点(这一步可以用倍增来做)。以这个节点为根节点的子树包含了所有被感染的节点,也就是说这颗子树外的节点不可能被感染。被感染的条件是温度在区间 [l,r][l, r][l,r]​​ 之间,所以此时问题就转化为了找出这颗子树下有多少温度大于等于

2021-08-17 13:59:58 178

原创 2021牛客暑期多校训练营10

2021牛客暑期多校训练营10最后一次牛客,看到是cjb命题觉得应该是那种做起来很爽的题吧,毕竟打过很多次他命题的比赛都觉得体验非常好,结果两题罚坐到头……(没有说邦邦不好的意思(嗯)这个暑假的现场赛结束了(没有参加今年杭电,在vp去年的),希望自己有所进步,有所收获。(后期会看自己学习情况补其他题,先开个坑)F-Train Wreck思路把栈操作转换为树上操作(队友的思路绝绝子),如果是push就是在当前节点上添加一个子节点(并将指针转移到子节点上),如果是pop就是将指针移动到当前节点的父亲

2021-08-16 21:03:34 206

原创 E-Eyjafjalla(2021牛客暑期多校训练营9)【主席树】

E-Eyjafjalla(2021牛客暑期多校训练营9)【主席树】传送门思路以点1为根,可以发现这棵树有这样的性质:深度越深,温度越低。所以我们从当前点往根节点走,一直走到父亲节点的温度不在 [l,r][l, r][l,r] 区间内时停下,此时所在的节点就是病毒能够扩散到的深度最低的节点(这一步可以用倍增来做)。以这个节点为根节点的子树包含了所有被感染的节点,也就是说这颗子树外的节点不可能被感染。被感染的条件是温度在区间 [l,r][l, r][l,r]​​ 之间,所以此时问题就转化为了找出这颗子树

2021-08-15 16:39:12 147

原创 [HDU-6832] A Very Easy Graph Problem【贪心】【搜索】

[HDU-6832] A Very Easy Graph Problem【贪心】【搜索】传送门题意对于给定的无向图,计算:KaTeX parse error: Undefined control sequence: \and at position 56: …times [a_i = 1 \̲a̲n̲d̲ ̲a_j = 0]思路对于第 iii​ 条边,如果 u,vu, vu,v​ 已经联通,那么此时 u,vu, vu,v​ 的距离之和最大是 ∑j=1i−12j\sum_{j = 1}^{i -

2021-08-13 14:52:32 94

原创 [HDU-6836] Expectation【矩阵树定理模板】

[HDU-6836] Expectation【矩阵树定理模板】传送门题意给定一个无向图,定义一颗生成树的权重是其所有边权的与,问任意选一颗生成树的权重期望。(每个生成树选择概率相同)思路首先,因为等概率,所以答案就是 所有生成树的权重和生成树个数\frac{所有生成树的权重和}{生成树个数}生成树个数所有生成树的权重和​ 。​矩阵树定理可以 O(n3)O(n^3)O(n3)​ 求出一个无向图的生成树个数,也就是分母;其次对于边权的第 iii​ 位,其在生成树的最终权重中为 111​ 的唯一条件是该

2021-08-13 10:59:01 119

原创 P3833 [SHOI2012]魔法树(洛谷)【树链剖分+线段树模板】

P3833 [SHOI2012]魔法树(洛谷)【树链剖分+线段树模板】思路纯板子题,没有思维含量。但是不知道为什么数组要开2e5,非常迷惑。代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 2e5 + 10;struct line_tree{ struct node { int l, r; ll add, sum;

2021-08-11 18:01:29 165

原创 F-xay loves trees(2021牛客暑期多校训练营7)【双指针+树链剖分+线段树维护最大值】

F-xay loves trees(2021牛客暑期多校训练营7)题意给定两个树,找一个最大的子图,使得在第一棵树中任意两个节点互为祖先-子孙关系,在第二棵树中任意两个节点互不为祖先-子孙节点关系。思路参考:2021牛客暑期多校训练营7 F - xay loves trees - naymi - 博客园 (cnblogs.com)显然这些点在第一棵树上必然是一条链,所以我们用双指针维护这棵树上的一条链;对于这条链,判断其在第二棵树上是否满足条件的方法是:对于链上的每个节点,将其在第二棵树上以该点为

2021-08-10 14:16:58 211

原创 2021牛客暑期多校训练营7

2021牛客暑期多校训练营7F-xay loves trees思路参考:2021牛客暑期多校训练营7 F - xay loves trees - naymi - 博客园 (cnblogs.com)显然这些点在第一棵树上必然是一条链,所以我们用双指针维护这棵树上的一条链;对于这条链,判断其在第二棵树上是否满足条件的方法是:对于链上的每个节点,将其在第二棵树上以该点为根的子树全部染色(值+1),那么某个节点子树的最大值若是0,就可以加入链(并对子树染色),否则不能加入链(说明要么它的父节点已经染色,要么

2021-08-10 14:15:22 119

原创 2021牛客暑期多校训练营8

2021牛客暑期多校训练营8A-Ares, Toilet Ares思路直接按照样例解释的公式算就行代码#include <bits/stdc++.h>using namespace std;typedef long long ll;const int mod = 4933;ll qpow(ll x, ll n){ ll ans = 1; while(n) { if(n & 1) ans = (an

2021-08-10 10:50:31 213 3

原创 P3178 [HAOI2015]树上操作(洛谷)【树链剖分+线段树模板】

P3178 [HAOI2015]树上操作(洛谷)【树链剖分+线段树模板】思路这题是一个树链剖分模板题,本来是参照秦淮岸灯火阑珊的博客树链剖分(轻重链剖分)算法笔记自己写一遍树链剖分并作为以后的板子,结果非常不幸纠结了一整天才搞完。原博客的代码有点乱,我一直以为自己错是因为有细节错误,结果找了很久发现原博客的代码有 #define int long long ……于是把所有的int全部换long long就过了……代码#include <bits/stdc++.h>#define pb

2021-08-09 20:28:37 148

原创 H-Hopping Rabbit(2021牛客暑期多校训练营6)【扫描线】

H-Hopping Rabbit思路其实从 (x,y)(x, y)(x,y) 点出发和从 (x+d,y+d)(x + d, y + d)(x+d,y+d) 出发是一样的,因为左右都只能跳 ddd 的距离,那么有区别的出发点其实都可以归纳到 x∈[0,d),y∈[0,d)x \in [0, d), y \in [0, d)x∈[0,d),y∈[0,d) 的范围内。我们把所有的陷阱都通过这种方法映射到 x∈[0,d),y∈[0,d)x \in [0, d), y \in [0, d)x∈[0,d),y∈[0

2021-08-06 20:07:35 166 3

原创 2021牛客暑期多校训练营6

2021牛客暑期多校训练营6F-Hamburger Steak思路按照时间长短降序排序,并计算 ansbest=max(⌈avg(ti)⌉,max{ti})ans_{best} = max(\lceil avg(t_i) \rceil , max\{t_i\})ansbest​=max(⌈avg(ti​)⌉,max{ti​}) ,之后按照时间降序安排锅中汉堡的时间,若当前锅时间已经超过 ansbestans_{best}ansbest​ ,就换到下一锅进行安排并截掉超出的那部分放入下一锅,这样可以完全

2021-08-06 14:33:33 97

原创 2021牛客暑期多校训练营5

2021牛客暑期多校训练营5B-Boxes思路如果问,在最开头问一次是最优的,多问没有意义;但是不问也可能是最优的情况。所以对问的情况与不问的情况分别求期望,取其最小值即可。对于问的情况,期望为:E=∑i=1n2−n−i−1∗∑j=1i(wi)E = \sum_{i = 1}^{n}2^{-n - i - 1} * \sum_{j = 1}^i(w_i)E=∑i=1n​2−n−i−1∗∑j=1i​(wi​),对于不问的情况,期望为:∑i=1nwi\sum_{i = 1}^nw_i∑i=1n​wi​

2021-08-06 14:32:08 72

原创 2021牛客暑期多校训练营3

2021牛客暑期多校训练营3B-Black and white思路把n行m列看成n+m个不同的点,这样题目中三个点染色第四个点可以免费的操作就转换为了图中点1与点2联通、点2与点3联通推出点1与点3联通,由此转化为了求n+m个点的最小生成树。用裸prim或者kruskal会被卡,因为点太多了,因此我们转化为求对于每个值,有多少个点为该值。这么求的原因是p很小,所以所有点的值最终都是[0, p)范围内,求完后我们再从0~p求一遍最小生成树即可。代码#include <bits/stdc++.

2021-08-06 14:31:28 69

原创 2021牛客暑期多校训练营4

2021牛客暑期多校训练营4:B,C,E,F,I,JB-Sample Game题意xxx 个数,随机到数 iii 的概率是 pip_ipi​,现在进行以下步骤:随机生成一个数如果之前生成的所有数都不大于当前生成的这个数,则继续进行步骤1;否则,进行分数结算并结束,若当前已经生成了 numnumnum​​​ 个数,则总分数为 num2num ^ 2num2​ 。问分数的期望。思路参考:【训练题43:概率dp】Sample Game | 2021牛客暑期多校训练营4比赛的时候推出了一个大

2021-07-27 15:42:13 135 1

原创 B-Sample Game 2021牛客暑期多校训练营4【概率DP】

传送门:B-Sample Game题意xxx 个数,随机到数 iii 的概率是 pip_ipi​,现在进行以下步骤:随机生成一个数如果之前生成的所有数都不大于当前生成的这个数,则继续进行步骤1;否则,进行分数结算并结束,若当前已经生成了 numnumnum​​​ 个数,则总分数为 num2num ^ 2num2​ 。问分数的期望。思路参考:【训练题43:概率dp】Sample Game | 2021牛客暑期多校训练营4比赛的时候推出了一个大概的方程,但是没想出来怎么进行值的递推。赛后看

2021-07-27 14:51:36 232

原创 2021年度训练联盟热身训练赛第八场

目录2021年度训练联盟热身训练赛第八场A-Fire on Field题意思路代码B-Gene Tree题意思路代码I-Thread Knots题意思路代码J-Triangulation题意思路代码L-What's Mine is Mine题意思路代码2021年度训练联盟热身训练赛第八场原题pdfA-Fire on Field题意构造数组,使得对于所有的 k (i−2k>0)k \ (i - 2k > 0)k (i−2k>0) 都有 a[i]−a[i−k]!=

2021-05-07 23:20:01 248

原创 Problem L:Lexicographical Lecturing(GCPC2020)

Problem L:Lexicographical Lecturing(GCPC2020)题意给定互不相同且字典序升序排序的字符串组,找到区间 [i,j][i, j][i,j] ,使得所有字符串的在区间 [i,j][i, j][i,j] 上的这个子串互不相同,且字典序不变。思路若相邻两个串满足 Sk,Sk+1S_k, S_{k + 1}Sk​,Sk+1​ 在 [i,j][i, j][i,j] 上字典序正确且相互独立,那么对于任何其他的串,在 [i,j][i, j][i,j] 上也一定满足这点。(仔细

2021-05-06 21:58:22 116

原创 Problem B:Bookshelf Building(GCPC2020)

Problem B:Bookshelf Building(GCPC2020)题解链接主要是觉得题目不错 单独放个传送门在dp专题里(嗯

2021-05-06 21:54:55 178

原创 2021年度训练联盟热身训练赛第七场(GCPC2020)

2021年度训练联盟热身训练赛第七场(GCPC2020)传送门官方题解Problem A: Adolescent Architecture题意给定一堆圆柱和正方块,要求你把他们叠起来,保证从上往下每个方块都被下面的方块包含。、思路将正方体的边长*2/2\sqrt{2} / 22​/2 和圆柱的半径作为权值,进行排序,在这两者值相等时正方体放在圆柱上面。排完序之后遍历看是否无解,只有一种情况会无解,就是下面是正方体上面是圆柱,尽管满足前面的权值排序,但是正方体边长/2比圆柱半径小,那也不行。代

2021-05-06 21:52:29 652 2

原创 Codeforces Global Round 14 ABCD

Codeforces Global Round 14A - Phoenix and Gold题目给出一个没有重复数字的序列,对其进行重排列,使之前缀和序列中不存在 xxx 。思路开始的思路是从小到大排列,找当加到x时的数字,找一个比它大的,因为一些细节wa了,换成了找前缀和为x的位置之后第一个和当前数字不一样的数字。尽管过了但是还是没有仔细审题,做的太复杂。赛后补题才看到是没有重复数字的,也就是除了所有数字加起来恰好是x的情况都是能处理的那么只需要判断数字和为x时的下标,恰好是最后一个就不行,其

2021-05-06 15:09:20 129

原创 Codeforces Round #715 (Div. 2) A,B,C,D,E

Codeforces Round #715 (Div. 2) A,B,C,DA - Average Height题目定义 consecutive pairsconsecutive \ pairsconsecutive pairs 为两个相邻元素的平均值仍是整数,给定整个数列,重新排列数组并输出,使得数列的 consecutive pairsconsecutive \ pairsconsecutive pairs 数量最多。思路把奇偶数分开输出即可代码

2021-05-02 21:28:00 211

原创 1508B - Almost Sorted (Codeforces Round #715 (Div. 1) )

1508B - Almost Sorted (Codeforces Round #715 (Div. 1) )传送门题意定义几乎升序的置换,这样的置换满足对于所有的 i,i+1∈ni, i + 1 \in ni,i+1∈n ,都有 ai+1≥ai−1a_{i + 1} \geq a_i - 1ai+1​≥ai​−1 。给定 n,kn, kn,k ,给出长度为 nnn 、字典序第 kkk 大的几乎升序的置换。思路参考:cf1509E - Almost Sorted_juraws juraws姐姐的代

2021-04-30 20:07:26 290 1

原创 “Shopee杯” e起来编程暨武汉大学2020年大学生程序设计大赛决赛(重现赛)

这次我贡献太小了,全程有点跟不上队友的思路,希望下次能多点贡献打疫苗的日子是真的困到魂都飘了,昨天凡是我做的题都是错好几遍才过,今天重新看了一遍真的觉得不难,做出来的7道题只有I和J相对难度大一些,我的队友实在太强了(嗯

2021-04-28 21:21:06 289

原创 1467C - Three Bags (CF#695 Div. 2)

1467C - Three Bags (CF#695 Div. 2)题目链接题意三个袋子每个袋子里有一些数,你每次可以从一个袋子里取出一个数,再从另一个袋子里取出一个数,将后者减去前者并放入后者所在的袋子。问最后剩下的那个袋子里的数最大是多少?思路完全理解不了为什么是这个结论,先挖坑,等我回去和室友讨论一下再补上代码#include<bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;typedef long lon

2021-04-28 20:37:28 98

原创 D. Explorer Space (CF#718 (Div. 1 + Div. 2))

D. Explorer Space (CF#718 (Div. 1 + Div. 2))题目链接题意给你一个 n×mn \times mn×m 的矩阵与数字 kkk,其中每个点都和它相邻的四个点有相连的边,给定所有边的权值。要求你给出一个矩阵,其中第 iii 列第 jjj 行表示从原矩阵第 iii 列第 jjj 行出发,走 kkk 步并回到这个点,经过的路的最小边权和是多少。思路参考:Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2)

2021-04-26 22:36:55 214

原创 2021天梯赛总结

2021天梯赛总结总分219,团队金,个人铜最开始大概有一个15分、两个20分和两个25分的题目没有拿满分,但是谨记赛前老师不要纠结的提醒,都没有继续看。后面在25分题目做完之后,还有一个小时的时间(不算延长时间)。接下来大概有半个小时的时间一直没有写题,看完了30分的前两题题意之后,觉得有些困难而不敢开始写,于是转去看前面没拿满分的题目,但是也是一个也看不出来问题。就这样纠结了很久,只剩半小时的时候下定决心写L3-2,结果最后越写越急,怎么也过不了样例,最后30秒还在debug。本来都已经觉得自己

2021-04-25 11:34:48 1322

原创 L3-003 社交集群 (30 分)

L3-003 社交集群 (30 分)题目题目链接思路开始想复杂了,以为用并查集可能做不了,后来发现其实就是并查集。至于部分爱好相同如何连接,我采用的方法是输入一个爱好之后去判断这个爱好的表当前是否为空,不为空就和表里的第一个人相连,并且无论是否是空的都放入表中。最后取出每个人的祖先放入set同时统计人数即可。代码#include <bits/stdc++.h>#define INF 0x3f3f3f3f3f3f#define pb push_backusing namespac

2021-04-23 20:06:32 103

原创 L3-002 特殊堆栈 (30 分)

L3-002 特殊堆栈 (30 分)题目题目链接思路用vector和stack模拟栈,一个vector每次插入的时候用lower_bound,upper_bound,二分查找插入的位置后用insert插入,另用一个stack按照插入顺序存储元素,每次弹出栈顶的时候将这个stack的栈顶弹出,并根据这个元素回到vector中查找其位置并删除。由于vecxtor一直保持有序存储,所以查询时也只需要查询vec[vec.size() / 2]就可以了(注意特判奇偶)代码#include <bits

2021-04-23 18:02:48 105

原创 L3-001 凑零钱 (30 分)

L3-001 凑零钱 (30 分)题目题目链接思路01背包+路径还原,将01背包的这一段进行修改:for(int i = 1; i <= n; i++){ for(int j = m; j >= v[i]; j--) { dp[j] = max(dp[j - v[i]] + v[i], dp[j]); }}//turn intofor(int i = 1; i <= n; i++){ for(int j = m; j &g

2021-04-23 09:41:30 135

原创 L2-032 彩虹瓶 (25 分)

L2-032 彩虹瓶 (25 分)题目链接思路直接用栈模拟就可以了,没有特别需要注意的,具体见代码。模拟赛做了一遍,卡在超过m才是判错;现在又做了一遍,还是卡在超过m才是判错。呜呜呜代码#include <bits/stdc++.h>#define INF 0x3f3f3f3f3f3f#define pb push_backusing namespace std;typedef pair<int, int> P;const int N = 1e5 + 10;t

2021-04-22 21:48:01 145

原创 L2-031 深入虎穴 (25 分)

L2-031 深入虎穴 (25 分)题目题目链接思路题目说明了没有两个路通往一扇门,说明没有环,这是一棵树,由此问题转化为求树的深度。开始用从根开始的深搜,写完了才发现需要输出节点,于是重新写从叶子开始的深搜,加上简单剪枝——即已经求出深度的不重复求。没有什么优化就直接过了。代码#include <bits/stdc++.h>#define INF 0x3f3f3f3f3f3f#define pb push_backusing namespace std;typedef p

2021-04-22 21:08:26 136

空空如也

空空如也

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

TA关注的人

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