随笔分类 -  校内训练

[校内训练19_09_02]不同的缩写
摘要:题意 给n个字符串,要求给每个字符串选一个子串(可以不连续),并且子串互不相同。求子串最大长度的最小值,并给出一个方案。 $n \leq 100,|s_i| \leq 100$。 思考 鸽了 阅读全文
posted @ 2019-09-20 07:45 GreenDuck 阅读(150) 评论(0) 推荐(0)
[校内训练19_09_03]c Huge Counting
摘要:题意 有一个定义在 k 维非负整点上的函数:$f(x_1,x_2,...,x_k):N_{0}^{k}->\{0,1\}$ ,定义方法如下: 若存在$j∈[1,k],x_j=0$,则$f(x_1,x_2,...,x_k)=0$ 若对$j∈[1,k]$都有$x_j=1$则$f(x_1,x_2,..., 阅读全文
posted @ 2019-09-20 07:40 GreenDuck 阅读(251) 评论(0) 推荐(0)
[校内训练19_09_02]C
摘要:题意 给出一棵N 个节点的树,树上的每个节点都有一个权值$a_i$。 有Q 次询问,每次在树上选中两个点u, v,考虑所有在简单路径u, v 上(包括u, v)的点构成的集合S。 求$\sum_{w∈S}{a_w or dist(u,w)}$ 其中dist(u,w) 为简单路径u,w 上的边数,or 阅读全文
posted @ 2019-09-20 06:55 GreenDuck 阅读(238) 评论(0) 推荐(0)
[校内训练19_09_02]A
摘要:题意 给出N 个形如$f_i(x) = a_i x^2 + b_i x $的二次函数。 有Q 次询问,每次给出一个x,询问$max{\{f_i(x)\}}$。$N,Q \leq 5*10^5$。 思考 首先将x大于0还是小于0分类,对于某一类全都除以x,那么就得到了一些直线。最优的答案一定在某条最上 阅读全文
posted @ 2019-09-20 06:42 GreenDuck 阅读(217) 评论(0) 推荐(0)
[校内训练19_09_02]原样输出
摘要:题意 给出n个字符串,每个字符串的开头和结尾可以去除一些连续的子串,也可以不删。问这样删去后连成的不同字符串有多少个。要求线性。 思考 如果是一个字符串,那么建一颗SAM即可。 因为是几个字符串拼在一起,那么在某个字符串的SAM上的某一个点,随时都可以跳到下一个字符串的SAM上的某个一点。那么从后往 阅读全文
posted @ 2019-09-20 06:39 GreenDuck 阅读(164) 评论(0) 推荐(0)
19_08_26校内训练[Max]
摘要:题意 求$max_{l \leq r}{\{min{\{a_l,a_{l+1},...,a_r\}}*(r-l+1)\}}$ 思考 分治,考虑一个区间跨过某个点的贡献即可。 代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef l 阅读全文
posted @ 2019-08-26 08:04 GreenDuck 阅读(135) 评论(0) 推荐(0)
19_08_14-19_08_21校内训练 补题
摘要:1.给两个非严格递增的序列,每次分别从两个数组中抽出一个区间并合并,求排序后第k小。单log。 分治即可。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=5E5+5; 4 int n,m,a[maxn],b[max 阅读全文
posted @ 2019-08-21 16:27 GreenDuck 阅读(197) 评论(0) 推荐(0)
19_08_10[校内训练]割图
摘要:题意 给一个图,对每个点求(删去一条出边)的(到一号节点的(最大的(最短路的长度))),有边权。n,m≤1E5。 方便起见,没有重边和自环。 思考 先建出最小生成树,可以发现每次一定要删去连向父亲的边。此后,会沿着它的出边走向其他或自己的祖先,再算上原先图的最短路长度。 那么对于每个节点维护一个堆, 阅读全文
posted @ 2019-08-10 14:55 GreenDuck 阅读(166) 评论(0) 推荐(0)
19_07_11校内训练[字串染色]
摘要:题意 定义一个字符串某个子串的价值为:将其所有出现的位置染成黑色后,黑色连续段的个数。问有多少本质不同的子串,价值恰好为K。n,K<=1E5。 思考 由本质不同的字符串,考虑SAM维护。对于SAM上的一个节点,其endpos集合代表了字符串中的一些位置。设这些位置相邻的距离的集合为dis,则对于这个 阅读全文
posted @ 2019-07-12 10:52 GreenDuck 阅读(177) 评论(0) 推荐(0)
19_07_09校内训练[分组]
摘要:题意 将n个数分为若干组,每组中最小的数不能比该组的元素总数多,求方案数。n<=2000。 思考 若得到n个数的一种大小的划分,则可以简单地求出其方案数。将其从大到小排序后,令largeri为大于等于i的数字的个数,b[i]为第i个组的大小,sum为b的前缀和,则对于第i个组,其贡献为C(large 阅读全文
posted @ 2019-07-09 14:28 GreenDuck 阅读(156) 评论(0) 推荐(0)
19_07_08校内训练[grid]
摘要:题意 现有n*m的长方形网格,每个格子中写着一个数,并构成了[0,n*m)的排列。每次可以将一行循环平移x格,也可以将一列循环平移x格。给出初始状态,给出一个到达给定状态的方案。n*m<=10000,n,m>=2。 思考 发现存在一种方法,能够使任意三个方格进行顺时针或逆时针改变位置。其中有一个方格 阅读全文
posted @ 2019-07-08 16:38 GreenDuck 阅读(154) 评论(0) 推荐(0)
19_07_07校内训练[xor]
摘要:题意 长度为n的数组,上面有k个位置是1,现在有l种长度的连续全1串,要求用最少的次数将这个数组异或成全0的数组。n<=1E5,k<=10,l<=100。 思考 先将数组进行异或的差分。可以发现,现在异或上全1串只是将两个端点进行异或。 接下来求出将每对1变成0的最小代价,之后就是简单状压。 复杂度 阅读全文
posted @ 2019-07-08 14:50 GreenDuck 阅读(172) 评论(0) 推荐(0)
19_07_8校内训练[sort]
摘要:题意 一个排列,每次选一个子序列按顺序放在开头,要求变成升序的操作次数不超过17次,给出方案。n<=1E5。 思考 对于ai=aj-1且i<j的数字,一定要保持其相对顺序。可以根据这个关系分成若干个块,并根据每个块最小的数从小到大将块编号为1~m。 接着把所有奇数编号的块选出来放在左侧。能发现这次操 阅读全文
posted @ 2019-07-08 14:39 GreenDuck 阅读(137) 评论(0) 推荐(0)
19_05_21校内训练[边上的整点]
摘要:题意 有一个n条横线m条竖线的长方形网格,求出(三点在整点上的)三角形的边上整点个数的期望。要求线性。 思考 ans=所有三角形的边经过的整点总个数÷三角形个数。方便起见,默认三角形的三条边是有顺序但没方向的。 记cnt(i,j)表示平面上第i个点与第j个点连线经过了几个整点,范围是( ],易证cn 阅读全文
posted @ 2019-05-21 18:24 GreenDuck 阅读(317) 评论(0) 推荐(0)
19_05_01校内训练[划分]
摘要:题意 给出长度为n的序列,只有1,0,-1。要求将其划分为若干长度在[L,R]之间的连续序列,一个序列若和大于0,造成1的贡献;若小于0,造成-1的贡献;否则没有贡献。求最大的贡献。 时间复杂度要求nlogn。 思考 线段树维护即可。以造成1的贡献为例。设当前前缀和为sumi,则需要在[max(0, 阅读全文
posted @ 2019-05-01 16:03 GreenDuck 阅读(163) 评论(0) 推荐(0)
19_04_19校内训练[Game]
摘要:题意 给出n,等概率地生成一个1~n的数列。现在有n个人从左到右站成一排,每个人拿有当前数列位置上的数字,并且一开始都不知道数字是多少(但知道n是多少)。从左到右让每个人进行如下选择: 1.选择保留自己的卡片,让所有人知道这个卡片上面的数字,并且走到等待区中。第一个人只能进行该选择。 2.选定等待区 阅读全文
posted @ 2019-04-18 14:43 GreenDuck 阅读(123) 评论(0) 推荐(0)
19_03_28校内训练[相似字符串]
摘要:题意 给出一个长度为n的序列,有m次询问,每次询问[l1,r1],[l2,r2]的区间,问排序后相同位置的不同数字个数是否小于等于1。如[1,3,2,2],[1,3,2,3]排序后为[1,2,2,3]和[1,2,3,3],不同的有2个,不符合。n,m≤1,000,000,数的大小≤50,000。 思 阅读全文
posted @ 2019-03-28 18:32 GreenDuck 阅读(201) 评论(0) 推荐(0)