自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ccsu_cat

ACM这游戏好休闲啊

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

原创 4000+需求!字节跳动 2025 校园招聘正式启动

我的内推码:AUQEVHC。

2024-08-07 12:57:36 115

原创 字节大模型应用app豆包招iOS开发实习生啦

字节大模型应用app豆包招iOS开发实习生啦

2024-07-23 11:57:36 134

原创 mysql、ubuntu系统防火墙常规操作

mysql:连接数据库: mysql -u user -p修改用户密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;创建数据库:create database name;给用户赋权限:grant all privileges on database.table to user@localhostubutntu防火墙设置:1...

2020-02-09 21:21:40 828

原创 女友ACM训练计划

dp:最长上升子序列:hdu 1950代码最长公共子序列hdu 1159代码状压dp: TSP问题/货郎担问题hdu 5418代码小练习:P1439 【模板】最长公共子序列代码

2020-01-10 13:11:08 1620 6

原创 Educational Codeforces Round 47 G. Allowed Letters

G. Allowed Letters题意:给一个长度为nnn的字符串,字符串元素范围为aaa到fff,有mmm个限制条件,每个条件限制了某位置只能填指定元素,你要给字符串重新排列,求排列后字典序最小的字符串。解法:不妨把重排的字符串看成二分图的左边集合,原字符串看成二分图的右边集合,我们来给它们进行字典序最小的二分图最大匹配,我们可以从前往后枚举每个位置填的最小字符,然后用hallhallh...

2019-11-11 17:15:02 462

原创 ICPC 2019-2020 North-Western Russia Regional Contest 部分题解

E. Equidistant题意:有一颗树,有mmm个特殊点,问是否存在一个点到mmm个特殊点的距离相等解法:换根dpdpdp秒之,设mx[u],mn[u]mx[u],mn[u]mx[u],mn[u]分别为uuu子树中距离uuu最远的特殊点的距离和最近的特殊点的距离,首先一次dfsdfsdfs搞定树dpdpdp,接下来就是直接换根了,当一个点uuu为根时mx[u]=mn[u]mx[u]=mn...

2019-11-08 20:08:07 1437 1

原创 Educational Codeforces Round 47 F. Dominant Indices 线段树合并/长链剖分

F. Dominant Indices题意:给一颗以1为根的树,设d[u][x]d[u][x]d[u][x]为uuu子树中距离uuu为xxx的点的数量,对于每个点uuu,求最小的xxx使得d[u][x]d[u][x]d[u][x]最大解法:线段树合并:对于每个子树,用一颗线段树维护其d[u][x]d[u][x]d[u][x]的最大值,然后向上走不停的线段树合并即可。长链剖分:对于每个子树...

2019-11-08 00:13:51 351

原创 Codeforces Round #599 (Div. 2) DE题解

D. 0-1 MST题意:给一个无向图,如果u,vu,vu,v有边相连,那么他们的边权为1,否则为0,求最小生成树解法:不难发现最小生成树权值其实可以转化为该无向图的补图的联通块个数减一,那我们就来求补图联通快好了,我们用一个setsetset存所有没有用过的点,我们开始任意选择一个setsetset里的点开始bfsbfsbfs,假设出队的点为uuu,我们枚举setsetset的点vvv,如...

2019-11-07 15:58:02 480 1

原创 hdu 5126 stars cdq分治

解法:cdqcdqcdq套cdqcdqcdq模板题,没啥好讲的…留着当个板子吧#include <bits/stdc++.h>using namespace std;#define low(x) x & -xconst int maxn = 5e4 + 10;struct node{ int x, y, z, opt, k, id;} a[maxn *...

2019-11-06 17:11:03 230

原创 2019-2020 ICPC, Asia Jakarta Regional Contest 部分题解

E. Songwriter题意:给你一个序列AAA,你要构造一个字典序最小的序列BBB,满足构造元素取值范围为[l,r][l, r][l,r],且相邻元素差值绝对值不超过KKK,且相邻元素的大小关系和序列AAA对应元素保持一致。解法:这个题感觉以前做过,但是这次还是没做出来…我们记Li,RiL_{i},R_{i}Li​,Ri​分别为BiB_{i}Bi​的合法取值范围,我们倒推BBB序列,初始...

2019-11-06 15:13:27 847 3

原创 Codeforces Round #593 (Div. 2) E. Alice and the Unfair Game dp

写了个沙雕代码导致一晚上全瞎折腾了,又只出了E,我就想小号上个紫呀,太南了我E. Alice and the Unfair Game题意:有nnn个箱子排成一排,只有一个箱子有桃子,你的目标是不能让catcatcat猜到桃子在哪个箱子里,catcatcat一共猜了mmm次,在catcatcat每次猜箱子之前和之后,你都能把桃子移动到相邻箱子或者不动,定义(x,y)(x, y)(x,y)为桃子...

2019-10-18 01:25:19 583

原创 Educational Codeforces Round 74 E - Keyboard Purchase 状压dp

E. Keyboard Purchase题意:你要给字母表的前mmm个字母排列,定义每对字母的距离:dist(si,sj)=abs(i−j)dist(s_{i}, s_{j})=abs(i-j)dist(si​,sj​)=abs(i−j),给定一个长度为nnn的字符串sss,求∑i=2ndist(si−1,si)\sum_{i = 2}^{n}dist(s_{i-1},s_{i})∑i=2n​...

2019-10-09 02:24:15 544 2

原创 Codeforces Round #591 E. Paint the Tree 树形dp

昨晚写完这题,交了三次没交上…E. Paint the Tree题意:给你一颗带边权的树,每个节点使用次数均为kkk,你如果想要获得一条边的权值,那么必须要消耗该边相连的两个点的一次使用次数,问最多能获得多少的权值解法:以1为根,设d[u][0],d[u][1]d[u][0],d[u][1]d[u][0],d[u][1]分别为uuu子树中,uuu节点可使用次数为0和不为0所能获得的最大权值...

2019-10-07 12:47:06 562

原创 2019湖南省大学生程序设计竞赛部分题解

赛场上k题写链表的启发式合并,直接给写跪了,耽误了太多时间,导致最后只出了7题,D题dp给漏了,好菜啊…C.Distinct Substrings题意:给一个长度为nnn的字符串sss,定义h(i)h(i)h(i)为在sss串末尾添加字符iii新增加的本质不同子串数量,求h(i)∗3i(1<=i<=m)h(i)*3^{i}(1<=i<=m)h(i)∗3i(1<=...

2019-10-06 21:50:31 1229 1

原创 2016 ACM-ICPC CHINA-Final

C.Mr. Panda and Strips题意:选择最长的两个子区间或者一个子区间,要求总长度最长,且区间内每个数最多只出现一次。解法:设dp[i][j]dp[i][j]dp[i][j]为区间[i,j][i, j][i,j]内最长的合法子区间,预处理一下这个dp,我们从小到大枚举iii,然后从iii到1枚举jjj,一开始我们用一个multiset存dp[1][i]dp[1][i]dp[1]...

2019-10-06 15:24:17 365

原创 2018 China Collegiate Programming Contest Final (CCPC-Final 2018)

虚拟了这套比赛,感觉发挥的已经到极限了,没想到还只是个铜orzB. Balance of the Force题意:每个人要么分到A组,要么分到B组,分A组系统会得到Li的权值,分B组系统会得到Di的权值,其中有m对互斥关系,代表x和y不能分到同组,求系统最大权值减去最小权值的最小值解法:我们可以枚举系统最小值的值,然后根据该最小值去分组产生最小的最大值,对答案去造成贡献,这里我们设d[i]...

2019-10-06 14:16:54 657

原创 Codeforces Round #589 (Div. 2) E. Another Filling the Grid dp

自以为dp水平很强,结果一直想容斥写这题,没写出来是真的丢脸…E. Another Filling the Grid题意:有一个n*n的矩阵,矩阵每个位置你可以填1到k之间任何数,要求填完后每行至少有一个数字1,每列至少有一个数字1,问有多少种填数方案。解法:设dp[i][j]dp[i][j]dp[i][j]为填完了前iii行数,有jjj列存在数字1的方案数,对于下一行的状态dp[i+1]...

2019-09-30 01:09:59 700

原创 Codeforces Round #495 (Div. 2) E. Sonya and Ice Cream 树形dp

E. Sonya and Ice Cream题意:给一棵树,你可以选择一条长度为kkk的链,使得所有点与链的最大距离最小,求出最小距离。解法:我们先用换根dpdpdp(直接树形dpdpdp也行,就是想秀一波换根dpdpdp)求出距离所有点最大距离最小的根rtrtrt,然后以rtrtrt为根树形dpdpdp求出每个点到最远的叶子节点距离d[u]d[u]d[u],定义dp[u]dp[u]dp[u...

2019-09-29 02:02:49 171

原创 2019CCPC秦皇岛赛区(重现赛)AEK 题解

#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn = 100 * 100 * 4 + 210, inf = 1e9;struct Edge{ int from,to,cap,flow;};struct Dinic{ int n,m,s,t; vector&lt...

2019-09-28 22:04:33 720 2

原创 Educational Codeforces Round 16 F. String Set Queries AC自动机

F. String Set Queries题意:有三种操作:分别是往集合加入一个字符串,从集合中删除一个字符串,查询集合的所有串在询问串中出现次数的总和。解法:离线可以建AC自动机fail树上dfs序搞,强制在线可以采取二进制分组去建log个自动机A,二进制分组是个什么东西呢?举个例子:我往集合插入8次字符串,那么8次更新集合中所有自动机的大小分别是{1},{2},{2,1},{4},{4,...

2019-09-28 01:00:21 202

原创 2018北京icpc区域赛 H - Approximate Matching AC自动机

H - Approximate Matching 题意:有一个长度为n的01母串,求有多少个长度为m的01串T,使得母串是该串近似的子串。a是b的近似子串:那么b存在一个连续子串c,a与c至多只有一个字符不同解法:我们先把母串和所有与其只有一个字符不同的01串插入字典树,建立AC自动机,预处理从每个节点出发,有d[u]d[u]d[u]条长度为n的路径刚好走完才走到叶子节点,然后我们枚举母串与...

2019-09-27 21:41:22 521

原创 2018-2019 ACM-ICPC, Asia Shenyang Regional Contest 部分题解

好吧,其实只补了E题,先写E题解吧,训练时脑袋不清醒读错题,导致没能切掉E,思路其实很好想,码量也不大E. The Kouga Ninja Scrolls题意:有n个人,每个人有坐标和宗族,有三种操作,分别是修改某个人坐标,修改某个人宗族,查询第 l 个人到第 r 个人中属于不同宗族的两个人的最大曼哈顿距离解法:线段树没法维护曼哈顿距离,但是我们知道曼哈顿距离可以通过简单变换成切比雪夫距离...

2019-09-22 01:07:34 1030

原创 Educational Codeforces Round 73 (Rated for Div. 2) DF题解

还想小号上分来着,结果F题翻车,最后两分钟才绝杀F,导致水题没切,上分变上坟了D Make The Fence Great Again题意:有n个木板,每个木头都有高度和提升一个单位高度的花费,一个木头可以多次提升高度,要求相邻木头高度不能相同,求最少总花费。解法:因为只是要求相邻木头不能等高,所以每个木头最多只用升两次高度就行,那我们设d[i][j]d[i][j]d[i][j]为前iii...

2019-09-20 02:09:51 681

原创 1095: [ZJOI2007]Hide 捉迷藏 线段树维护树直径或者动态点分治

1095: [ZJOI2007]Hide 捉迷藏快要下班了,先贴线段树代码#include<bits/stdc++.h>#define ll long long#define ls o * 2#define rs o * 2 + 1#define mid (l + r) / 2using namespace std;const int maxn = 1e5 + 10...

2019-09-19 21:07:28 293

原创 hdu 4918 Query on the subtree 动态点分治

Query on the subtree题意:给你一颗有点权边权均为1的树,每次操作要么修改某点点权,要么查询距离u点不超过d距离的所有点权的和解法:我们根据点分治找出所有的重心并且相连,用树状数组或动态开点线段树维护每个重心的子树的权值信息,每次查询或者修改顺重心树的链往上走依次查询或修改遇到的所有点的子树信息即可。#include<bits/stdc++.h>#defi...

2019-09-19 21:05:14 286

原创 P3806 【模板】点分治1

学自:bztMinamoto点分治是个很容易学的算法,就像拉格朗日插值法,生成函数一样,遇到这种题目不会就是不会,但是算法又很容易学,学起来性价比高,比较推荐大家也学学这些算法…P3806 【模板】点分治1点分治入门题#include<bits/stdc++.h>#define pi pair<int, int>#define mk make_pairusin...

2019-09-18 21:06:28 586 6

原创 The Preliminary Contest for ICPC Asia Shanghai 2019 部分题解

开局G题不顺,然后卡D题,F水题没去切导致打崩了…其实好多可写题,只是这些可写题我不大擅长… A. Lightning Routing I待补 C. Triple题意:从三个数组中各选一个数,要求三个数当中最大的数要小于等于另外两个数的和,问有多少种选法。解法:和 hdu 4609 3-idiots解法类似,枚举每个数作为最大数mx的贡献,用fft求出另外两个数组的多项式乘积,前缀和预...

2019-09-16 21:33:16 670 2

原创 The 2019 Asia Nanchang First Round Online Programming Contest 部分题解

开局有人过C,我就去钻研C了,想了那么久,卧槽,这题好像有点难度,一看榜好多人切了这题,我就知道,今天想拿到名额,这题不得不切,于是我放弃所有题硬肝这题,期间队友让我想H,我把我的想法给他们后继续肝C,5个小时想了好几个线段树维护dp的假算法,导致最终大崩盘,只有两个题。赛后我用我提供给他们的想法一发切H,I题树套树更是一眼看出思路,15分钟就手写完树套树(然而tle了),E题感觉有点难度,现场我...

2019-09-10 00:16:48 610

原创 2019 西安邀请赛 BEJ题解

B. Product 点这里 E. Tree题意:有三种操作:分别是树上两点路径上的点or一个数,and一个数和查询两点路径异或和是否等于t。思路:首先树链剖分转化成线段树区间and和区间or,此时复杂度已经nlogn^2,不能再加log了,所以我们来用tag降低复杂度,我们用二进制来表示区间状态,设S=(1<<30)-1,例如:101,表示区间的1和4的个数为奇数个,2的...

2019-09-08 08:49:00 925 5

原创 The Preliminary Contest for ICPC Asia Xuzhou 2019 部分题解

B. so easy解法:我们离线写这题,每次更新一个x,我们取x,x + 1两个点存着,最后把存的点离散化建线段树,然后每次查询线段树区间最小值即可#include<bits/stdc++.h>using namespace std;const int maxn = 2e6 + 10;int mn[maxn * 4], a[maxn], inf = 2e9;#def...

2019-09-07 20:16:06 621

原创 牛客练习赛51 F ABCBA 可持久化线段树

F ABCBA解法:我们可以用可持久化线段树维护某点到根的所有信息,那么每次查询,我们找到 u v 的 lca,用线段树分别查询[lca, u],[lca, v]的区间并进行合并就是得到答案,问题转化为线段树维护子序列为ABCBA的数量,我们分别维护区间子序列A,AB,ABC,ABCB,ABCBA,B,BC,BCB,BCBA,C,CB,CBA,BA的数量,每次区间合并,用ls表示左儿子,rs表...

2019-09-07 00:27:47 400

原创 Educational Codeforces Round 72 (Rated for Div. 2) DE题解

昨晚差点被D卡死,然后E题题意一直没读对,导致线段树水题给漏了D. Coloring Edges题意:给你一个有向图,你要给每一条边涂色,问最少需要多少种颜色,使得如果存在环,那么环上的颜色不能全部相同。解法:首先我们用拓扑排序判环,无环一种颜色够了,如果有环,其实最多两种颜色足够,因为一个有向边构成的环,肯定存在有向边 u -> v,u 大于 v,也肯定存在有向边 u -> ...

2019-09-06 14:20:43 312

原创 2019吉林省赛 Strange Hobby 动态开点线段树

Strange Hobby题意:有一个长度为n序列,有q次操作,每次操作要么修改序列某个元素要么查询区间内有多少子区间x的个数为奇数个。解法:我们对每个数字建立动态开点01线段树,线段树维护区间内区间和为奇数的子区间个数,然后就是一个水题了…我们对每个区间维护这5个信息:val,len,sumL,sumR,sum,分别表示区间和为奇数的的子区间个数,区间长度,包含左端点且区间和为奇数的区间个...

2019-09-05 19:29:03 387

原创 个人训练打卡

日期 比赛 2019.9.4 Codeforces Round #279 (Div. 2) 2019.9.5 Codeforces Round #280 (D...

2019-09-04 14:02:05 604

原创 Comet OJ - Contest #9 & X Round 3 CD题解

C. 【XR-3】核心城市 树直径签到题#include<bits/stdc++.h>using namespace std;const int maxn = 1e5 + 10;vector<int> G[maxn];int dep[maxn], rt, o, dp[maxn];void dfs(int u, int fa) { dep[u] = ...

2019-08-28 02:29:54 310

原创 Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) DEF题解

好久没写cf题解了,这场cf写了两个线段树,其中还有一个竟然写搓了,导致没能上橙,5555,看来省赛前是注定不能橙了。D. Restore Permutation解法:我们从小到大枚举iii,然后从线段树中找到最右边的一个0的位置kkk然后a[k]=ia[k]=ia[k]=i,然后我们清空这个值,然后在线段树中将区间[k+1,r][k +1, r][k+1,r]减去iii即可, 线段树入门题...

2019-08-26 14:42:57 640 7

原创 2019 年百度之星·程序设计大赛 - 初赛四 05

解法:求树上两点路径长度,其实就是dep[u]+dep[v]−2∗dep[lca]dep[u] +dep[v]-2*dep[lca]dep[u]+dep[v]−2∗dep[lca],这里我们采用重链剖分的方式求lca,对于每次修改,都会改变树的结构,我们可以用一颗线段树维护子树的top(重链剖分的链头),这个很简单,懂树剖都会写求lca,怎么求深度?如果当前节点所在的子树没有被修改,那么就是原d...

2019-08-25 17:22:57 405

原创 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛

我只写了02 03 04,05 gcd 是我离现场切gcd最接近ac的一场,果然数论还是写不出gcd1002 array解法:如果这题不带修改操作,相信大家都会做,我就来讲讲怎么处理修改,对于每次修改操作,我不需要真的去修改它,而是把修改的那个元素插入set中去,然后每次查询,我们不带修改查一个答案v1,然后再去set里找第一个大于等于k的v2,min(v1, v2)就是答案。证明:如果v2...

2019-08-24 01:34:12 1690 2

原创 2019 Multi-University Training Contest 9

这场多校,运气太背,开局研究了01一个多小时,无果就顺手切了02,然后深陷03,导致了原题08题目没读,07简单换根dp没开,发现队友越来越厉害了,连续两场200到300人的题都能切了,而我好像越来越菜了…1002 Rikka with Cake题意:有n条线段,每条线段两端都刚好有一个端点在边界上,求联通块个数解法:不难发现,连通块数量等于线段交点+1,那我们将所有竖线看成点,然后按照高...

2019-08-20 17:41:01 476

原创 2019牛客暑期多校训练营(第十场)

昨天搞校选拔赛,耽误了前几天的补题+写题进度,现在疯狂赶…J Wood Processing题意:有nnn个木头,每个木头有宽度和高度,现在你可以随意砍掉他们的高度,使得他们能分成kkk段(两个木头如果高度相同就是一段),求砍掉的木头最小的总面积解法:先给木头按高度从小到大排序,设S[i]S[i]S[i]是前iii个木头的总面积,sum[i]sum[i]sum[i]是前iii个木头的总宽度...

2019-08-18 01:08:22 324

空空如也

空空如也

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

TA关注的人

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