自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux C/C++ UDP Socket 网络通信

昨晚 Vv 让我给她讲讲网络编程,于是我就傻乎乎的带她入了门...以下内容为讲课时制作的笔记~1. socket() 函数1.1 头文件#include<sys/socket.h>1.2 函数参数示例:int socket(int domain, int type, int protocol){...}domain:设置协议域(协议族)AF_INET:IPV...

2022-02-26 17:23:00 781

原创 牛客练习赛81D 小Q与树

dsu on tree题目链接点我跳转题目大意给定一棵包含 \(n\) 个节点的树,每个节点有个权值 \(a_i\)求 \(\sum_{u=1}^n\sum_{v=1}^n\min(a_u,a_v)dis(u,v)\)解题思路对于节点 \(u\)记权值小于 \(a_u\) 的节点有 \(a_{x1},a_{x2},a_{x3},...,a_{xcnt1}\)记权值大于等...

2021-07-01 12:07:00 145

原创 浅谈整除分块

模型:\(\sum_{i=1}^{n}\left\lfloor\frac{n}{i}\right\rfloor\)假设 \(n = 8\),那么可得:\(i\)12345678\(8/i\)84221111概念:表中同样的值会连续出现,而相同的值所划分的区间成为一个块。整除的性质使得从 \(1\) 到 \(n\) 的表可根据数值划...

2021-05-10 15:48:00 131

原创 Codeforces Global Round 14 E. Phoenix and Computers

题目链接点我跳转题目大意给定 \(N\) 台电脑,起初每台电脑都是关闭的现在你可以随意打开电脑,但如果第 \(i-1\)、第 \(i+1\) 台电脑是开启的,则第 \(i\) 台电脑也会自动开启,而你无法手动开启它问你有多少种打开电脑的方法,使得最后所有电脑都是开着的解题思路分成两步来解决.第一步:考虑:如果 \(N\) 台电脑我都要手动开启,有多少种方法?可以枚举是从...

2021-05-03 09:14:00 265

原创 牛客练习赛14B 区间的连续段

题目链接点我跳转题目大意给定一个长度为 \(N\) 的序列 \(A\) 和一个常数 \(K\)有 \(M\) 次询问每次询问查询一个区间 \([L , R]\) 内所有数最少分成多少个连续段使得每段的和都 \(<= K\) ,若无解则输出 "\(Chtholly\)"解题思路简单回忆一下倍增求 \(LCA\) 思想:\(f[i][j]\) 表示以 \(i\) 为起...

2021-04-26 06:13:00 54

原创 AtCoder Beginner Contest 199 E - Permutation

题目链接点我跳转题目大意给定 \(M\) 个约束条件,问满足这 \(M\) 个约束条件的长度为 \(N\) 排列有多少个每个约束条件为一个三元组 \((x , y, z)\),要求 \(a_1,a_2,..,a_x\) 小于 \(y\) 的数的个数不超过 \(z\)解题思路可以将 \(x\) 位置的约束条件存储在 \(vec[x]\) 中于是定义 \(dp[i][bit]\)...

2021-04-25 13:04:00 57

原创 AtCoder Beginner Contest 197 F - Construct a Palindrome

题目链接点我跳转题目大意给定 \(N\) 个点 \(M\) 条边,每条边都对应一个小写字母问是否存在一条从 \(1\) 到 \(N\) 的路径,使得路径上的字母构成的字符串为回文串若存在则输出回文串的最短长度若不存在则输出 \(-1\)解题思路考虑双向 \(bfs + dp\) (以 \(dp\) 来思考会好理解许多)从 \(1\) ~ \(n\) 的路径构成回文相当...

2021-03-28 00:14:00 86

原创 Codeforces1499D The Number of Pairs

题目链接点我跳转题目大意有 T 组询问每组询问给定三个整数 \(c,d,x\)问有多少对 \((a , b)\) 使得 \(c\times lcm(a,b) - d\times gcd(a , b) = x\)\(1 <= t <= 10^4\),\(1<=c,d,x<=10^7\)解题思路\(c\times lcm(a,b) - d\times g...

2021-03-19 22:49:00 48

原创 Codeforces1493D GCD of an Array

题目链接点我跳转题目大意给定一个长度为 \(N\) 的序列 \(A\)有 \(Q\) 次操作,每次操作给定两个数 \(i\) , \(X\),使得 \(A[i] = A[i] \times X\)问每次操作后整个序列的 \(gcd\) 为多少 (对 \(1e9+7\) 取模)解题思路显然 \(gcd\) 不满足同余定理 ( \(gcd(4,6) \% 3\) \(!=\) \...

2021-03-07 17:17:00 48

原创 AtCoder Beginner Contest 192 F - Potion

题目链接点我跳转题目大意给定 \(N\) 个物品和一个 \(X\) ,第 \(i\) 个物品的重量为 \(ai\),你可以从中选择任意个物品(不能不选)假定选择了 \(S\) 个物品,物品的总重量为 \(V\)那么再满足 \((X - V) \% S = 0\) 的前提下还需要支付 \((X - V) / S\) 的 \(money\)问最少需要支付多少 \(money\)解题...

2021-02-21 03:14:00 48

原创 Codeforces 1485F Copy or Prefix Sum

题目链接点我跳转题目大意给定一个长度为 \(N\) 的序列 \(bi\)问有多少个长度为 \(N\) 的序列 \(a\) 使得\(b[i] = a[i]\)或\(b[i] = ∑a[j] , j∈[1,i]\)解题思路定义 $dp[i][j] $ 表示前 \(i\) 项的前缀和为 \(j\) 的序列 \(a\) 的个数,其中 \(dp[0][0] = 1\)( ...

2021-02-20 02:54:00 73

原创 Codeforces Round #703 (Div. 2) (A~E)

A. Shifting Stacks题目链接点我跳转题目大意给定 \(N\) 个土堆,第 \(i\) 个土堆有 \(Ai\) 个木块你可以将第 \(i\) 个土堆的木块转移至第 \(i + 1\) 个土堆问能否使土堆的木块数量构成上升序列解题思路贪心最优的构造方法即令土堆的木块数一次为 $0 , 1 , 2 , 3 ... $定义 \(sum[i]\) 为 \(ai\)...

2021-02-19 23:17:00 266

原创 P3694 邦邦的大合唱站队

题目链接点我跳转题目大意\(N\) 个人排成一列,每个人都有自己所属的乐队,其中第 \(i\) 个人一开始所在的位置为 \(i\)你可以从队列中抽出任意数量的人,抽出后他们所在的位置将为空,之后你可以再把他们放进任意空位置现要求同一个乐队的人必须站在一起,问最少要抽出多少人解题思路定义 \(cnt[i]\) 表示乐队 \(i\) 的总人数定义 \(dp[i]\) 表示{已处...

2021-02-10 23:01:00 53

原创 P3092 [USACO13NOV]No Change G

题目链接点我跳转题目大意约翰到商场购物,他的钱包里有 \(K(1 <= K <= 16)\) 个硬币,面值的范围是 \(1...100,000,000\)。约翰想按顺序买 \(N\) 个物品 \((1 <= N <= 100,000)\),第 \(i\) 个物品需要花费 \(c[i]\) 块钱,\((1 <= c[i] <= 10,000)\)。在...

2021-02-10 16:11:00 64

原创 P1220 关路灯

题目链接点我跳转题目大意共有 N 盏灯,第 \(i\) 盏灯的位置为 \(pi\)(单位 \(m\)),功率为 \(si\)一开始所有灯都是亮的,且第 \(i\) 盏灯每亮一秒钟,就会消耗 \(si\) 的电量现你位于第 \(c\) 盏灯的位置 , 你需要关闭所有的灯,问关闭所有灯需要消耗的最少电量为多少( 你的行走速度为 \(1m/s\) )解题思路关完一个区间内的灯时 ...

2021-02-08 15:16:00 41

原创 P1005 [NOIP2007 提高组] 矩阵取数游戏

题目链接点我跳转题目大意取数游戏:给定一个 \(N × M\) 的矩阵每次取数时须从每行各取走一个元素,共 \(N\) 个。经过 \(M\) 次后取完矩阵内所有元素每次取走的各个元素只能是该元素所在行的行首或行尾;每次取数都有一个得分值,为每行取数的得分之和,每行取数的得分 = 被取走的元素值 × \(2^i\),其中 ii 表示第 \(i\) 次取数(从 1 开始编号)游戏...

2021-02-06 16:30:00 596

原创 洛谷 P1156 垃圾陷阱

题目链接点我跳转题目大意你掉入了“垃圾井”,已知井的深度为 \(D\)有 \(N\) 个垃圾,每个垃圾都可以用来吃或堆放,并且堆放垃圾不用花费时间。现已知道了第 \(i\) 个垃圾扔下的时间 \(a[i].t\) ,以及每个垃圾堆放的高度 \(a[i].h\) 和吃进该垃圾能维持生命的时间 \(a[i].f\)要求出最早能逃出井外的时间(假设你当前体内有足够持续 \(10\) 小时...

2021-01-12 18:54:00 61

原创 AtCoder Beginner Contest 187 F - Close Group

题目链接点我跳转题目大意给你一张完全图,你可以删除任意数量的边要求删除完后剩余的所有子图必须是完全图问完全子图数量最少是多少解题思路定义 \(ok[i]\) 表示状态为 \(i\) 时所对应的点构成的图是否为完全图 (\(1\) 为是 , \(0\) 为否)判断完全图可直接暴力枚举任意两点检查是否有边定义 \(dp[i]\) 表示状态为 \(i\) 时所对应的点构成的所有...

2021-01-03 10:30:00 40

原创 洛谷 P3205

题目链接点我跳转题目大意给定一串序列,问有多少种初始序列经过以下操作可以得到此序列:① 、第一个数直接插入空的当前序列中② 、对从第二个数开始的每个数,如果它比上一个插入序列的数大,那么将它插入当前序列的最右边  如果它比上一个插入序列的数小,那么将它插入当前序列的最左边解题思路定义 \(dp1[i][j]\) 的含义为构成理想区间\([i , j]\) ,最后一个被放入...

2020-12-23 17:40:00 56

原创 洛谷 P3052

题目链接点我跳转题目大意给出 \(n\) 个物品,第 \(i\) 个物品体积为 \(w_i\),现把其分成若干组,要求每组总体积 \(<=W\),问最小分组。\((n<=18)\)解题思路\(dp[i]\) 表示当前状态为 \(i\) 的最少分组数\(sum[i]\) 表示把当前状态的所有人分到一个组需要的容量当 \(sum[j] <= K\) 时,可以把状...

2020-12-22 23:16:00 59

原创 Codeforces 1453F Even Harder

题目链接点我跳转题目大意给定 \(n\) 个关卡 , 第 \(i\) 个关卡有个权值为 \(ai\) 的传送门当你在第 \(i\) 个关卡时 , 如果 \(ai = 0\) 并且 \(i!=n\) ,则你闯关失败否则你可以跳到 \(i + 1\) ~ \(i + ai\) 中的任意关卡 ( \(ai + i <= n\) )当你到达第 \(n\) 关时,闯关结束但为了增加闯...

2020-12-06 08:35:00 54

原创 dsu on tree(树上启发式合并)

一直都没出过算法详解,昨天心血来潮想写一篇,于是 dsu on tree 它来了1、前置技能1.链式前向星(vector 建图)2.dfs 建树3.剖分轻重链,轻重儿子重儿子一个结点的所有儿子中拥有最多子树的儿子轻儿子一个结点的所有儿子中不是重儿子的儿子重边父亲与重儿子的连边轻边父亲与轻儿子的连边重链一堆重边连接而成的链轻链一堆轻...

2020-11-25 03:50:00 152

原创 Codeforces741D

dsu on tree题目链接点我跳转题目大意一棵根为 \(1\) 的树,每条边上有一个字符(\(a-v\)共\(22\)种)一条简单路径被称为Dokhtar-kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串。求每个子树中最长的Dokhtar-kosh路径的长度。解题思路\(dsu\) \(on\) \(tree\) + 状态压缩1.重排后构成回文的条件为...

2020-11-24 05:53:00 84

原创 洛谷P4149 [IOI2011]Race

dsu on tree题目链接点我跳转题目大意给出一棵树,每条边有权。求一条简单路径,使得路径和等于 \(k\),且边的数量最小。问最小数量是多少(若没有满足条件的则输出 -1​)解题思路定义 \(dis_u\) 表示节点 \(u\) 到根节点的距离,\(dep_u\) 表示节点 \(u\) 的深度那么树上任意两点 \(u , v\) 的简单路径和等于 \(dis_u + ...

2020-11-24 05:22:00 66

原创 ccpc2020长春站F题 Strange Memory

dsu on tree题目链接点我跳转题目大意给定一棵包含 \(n\) 个节点的树,每个节点有个权值 \(a_i\)求\(∑_{i=1}^n∑_{j=i+1}^n[a_i⊕a_j=a_{lca(i,j)}](i⊕j).\)解题思路题目保证了 \(a_i ≠ 0\) ,所以不存在 \(a_u⊕a_v = a_u\),即满足条件的\(a_u ⊕ a_v = a_{lca(u,v)...

2020-11-24 04:51:00 97

原创 牛客练习赛60E 旗鼓相当的对手

dsu on tree题目链接点我跳转题目大意给你一棵以\(1\)为根节点,包含\(n\)个节点的树和一个参数 \(k\),求每个节点的"\(rating\)"\(rating\) 值的计算方式是这样的,对于\(u\)的子树中的所有节点,如果\(x,y\)满足\(dis(x,y) = k\)并且\(x,y\)的最近公共祖先是\(u\)且满足\(u != x , u != y\),那...

2020-11-24 04:17:00 71

原创 wannafly Day2 E 阔力梯的树

dsu on tree题目链接点我跳转题目大意给你一个\(n\)个节点的树,求每个节点的"结实程度"一个节点的结实程度定义为以该节点为根的子树里所有节点的编号从小到大排列后,相邻编号的平方和。解题思路假设一个节点的子树中所有节点编号排序后构成的序列为\(a1,a2,a3.....ak\) , 那么答案为\(∑_{i=1}^{k-1}(a_{i+1}-a_{i})^{2}\)...

2020-11-24 03:12:00 27

原创 Codeforces375D Tree and Queries

dsu on tree题目链接点我跳转题目大意给定一棵 \(n\) 个节点的树,根节点为 \(1\)。每个节点上有一个颜色 \(c_i\)\(m\) 次询问。每次询问给出 \(u\) \(k\):询问在以 \(u\) 为根的子树中,出现次数 \(≥k\) 的颜色有多少种。解题思路可以开棵权值线段树如果当前颜色出现的次数 \(cnt[i] = x\), 就把树的第 \(x\)...

2020-11-24 03:01:00 45

原创 Codeforces1009F Dominant Indices

dsu on tree题目链接点我跳转题目大意给定一棵以 \(1\) 为根,\(n\) 个节点的树。设\(d(u,x)\) 为 \(u\) 子树中到 \(u\) 距离为 \(x\) 的节点数。对于每个点,求一个最小的 \(k\),使得 \(d(u,k)\) 最大。解题思路记录子树每个深度的节点的个数,然后取个最大节点个数的最小深度即可AC_Code#include&lt...

2020-11-24 02:34:00 67

原创 Codeforces246E Blood Cousins Return

dsu on tree题目链接点我跳转题目大意给定一片森林,每次询问一个节点的\(K-Son\)共有个多少不同的名字。一个节点的\(K-Son\)即为深度是该节点深度加\(K\)的节点。解题思路比较裸的 dsu on tree统计不同名字开个 \(map<string , int>\) 即可也可以将字符串离散成数字再操作AC_Code#include&lt...

2020-11-24 02:07:00 42

原创 Codeforces208E Blood Cousins

dsu on tree题目链接点我跳转题目大意给你一片森林,每次询问一个点与多少个点拥有共同的\(K\)级祖先解题思路询问一个点有多少个共同的\(K\)级祖先可以等价于问它的\(K\)级祖先有多少个深度为 \(dep + K\) 的子节点 (\(dep\)为\(K\)级祖先的深度)那么对于每个询问要先倍增或者树链剖分求出它的\(K\)级祖先,再将询问保存在\(K\)级祖先的...

2020-11-24 01:57:00 55

原创 Codeforces570D Tree Requests

dsu on tree题目链接点我跳转题目大意给定一个以\(1\)为根的n个节点的树,每个点上有一个字母\((a-z)\)每个点的深度定义为该节点到1号节点路径上的点数.每次询问 \(a,b\), 查询以 \(a\) 为根的子树内深度为 \(b\) 的节点上的字母重新排列之后是否能构成回文串.解题思路重排之后能否构成回文串,即判断出现次数为奇数的字符个数是否小于等于1因为...

2020-11-24 01:39:00 50

原创 Codeforces600E Lomsat gelral

dsu on tree题目链接点我跳转题目大意有一棵 个结点的以 \(1\) 号结点为根的有根树。每个结点都有一个颜色,颜色是以编号表示的,\(i\) 号结点的颜色编号为 \(c_i\)如果一种颜色在以 \(x\) 为根的子树内出现次数最多,称其在以 \(x\) 为根的子树中占主导地位。显然,同一子树中可能有多种颜色占主导地位。你的任务是对于每一个 \(i∈[1,n]\),求...

2020-11-24 01:17:00 39

原创 P1295 [TJOI2011]书架

题目链接点我跳转题目大意给出一个长度为 \(n\) 的序列 \(a\) ,请将 \(h\) 分成若干段,满足每段数字之和都不超过 \(m\) ,最小化每段的最大值之和。解题思路先考虑 \(30\) 分做法定义 \(dp[i]\) 表示将前 \(i\) 个数分成若干段的最小代价那么易推出 \(dp[i] = max(dp[i] , dp[j - 1] + max(a[j] ...

2020-10-23 01:04:00 53

原创 Codeforces 1433F Zero Remainder Sum

题目链接点我跳转题目大意给定一个 \(N × M\) 的矩阵对于矩阵的每一行,你可以在该行挑选不超过 \(⌊m/2⌋\) 个元素要求挑选的所有元素的和为 \(K\) 的倍数,问可以挑选的最大元素和为多少解题思路先考虑如果题目给的是个一维数组而不是二维矩阵该怎么做 \(?\)可以定义 \(dp[N][N][N][2]\) ,其含义为 \(↓\)当前在第 \(j\) 个位置,...

2020-10-21 05:59:00 50

原创 P1136 迎接仪式

题目链接点我跳转题目大意给定一个长度为 \(N\) 的字符串 \(S\),\(S\) 仅由字符 \(j , z\) 组成现在你最多可以执行 \(0\) 到 \(K\) 次操作,每次操作可以选择字符串任意两个位置的字符将它们的位置交换问最多可以组成多少对相邻的 \((j,z)\)解题思路很巧妙的一道题定义 \(dp[i][j][k][l]\) ,\(1≤i,j,k≤N\) ,...

2020-10-21 05:28:00 51

原创 Codeforces 1417E XOR Inverse

题目链接点我跳转题目大意给定一个长度为 \(N\) 的数组 \(A\)要求你找到一个 \(X\) 使得 \(Bi = Ai ⊕ X\) ,其中数组 \(B\) 的逆序对数最少如果存在多个满足条件的 \(X\) , 则输出最小的那个解题思路贪心+分治大致思路如下图然后按照图示模拟一下即可AC_Code#include<bits/stdc++.h>#de...

2020-10-08 20:50:00 71

原创 Codeforces1422E Minlexes

题目链接点我跳转题目大意给定一个字符串 \(S\)对于 \(S\) 的每一个后缀 \(suf\) ,你可以删除任意对相邻的字符问 \(S\) 的每个 \(suf\) 在删除了任意对相邻的字符后最小字典序是多少解题思路从前往后显然是不好做的,因为后一个 \(suf\) 和前一个 \(suf\) 是不一样的,所以前一个\(suf\) 的信息无法传递给后一个 \(suf\)考虑从...

2020-10-08 20:07:00 36

原创 P4735 最大异或和

题目链接点我跳转题目大意给定一个非负整数序列 \(a\),初始长度为 \(N\)。有 \(M\) 个操作,有以下两种操作类型:1、”\(A\) \(X\)”:添加操作,表示在序列末尾添加一个数 \(X\),序列的长度 \(N\) 增大 \(1\)。2、”\(Q\) \(l\) \(r\) \(X\)”:询问操作,你需要找到一个位置 \(p\),满足 \(l≤p≤r\),使得:\(a...

2020-09-26 17:26:00 32

原创 MNNU个人赛1

A题目大意在 \(n×n\) 的网格上放 \(k\) 个勇士,勇士可攻击与它相邻的 8 个格子,问有多少种放置 \(k\) 个勇士的方案使它们之间无法互相攻击。解题思路状压 DP每个格子只有两种状态(放置棋子/不放置棋子),这我们可以用 (1/0)来表示假设现在有一个 \(3 × 3\) 的网格,问放置一个棋子的方案数那么所有合法的摆放方案可以用以下状态来表示:①②...

2020-09-25 04:35:00 43

空空如也

空空如也

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

TA关注的人

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