训练补题
_ 泛白
QQ1204731545
展开
-
2020 湖南省大学生程序设计竞赛(HNCPC)题解
题目来源A. 2020-substring签到题。设dp[i]为[1~i]的串有多少个连续2020,如果s[i-3,i]是“2020”那么dp[i] = max(dp[i-1], dp[i-4), 否则dp[i] = dp[i-1]B. 2020-vs-2018观察可以发现只要看有多少个被o包围的联通快即可。3个联通快就是2018否则是2020C. absolute-difference-equation这题里面的差分取绝对值运算,其实相当于是异或运算。那么可以把每一次变换后的结果写出来观察一下原创 2020-10-21 10:38:45 · 3223 阅读 · 0 评论 -
2019 ICPC North America Qualifier F. Prospecting
题意:给一颗n点树,有边权和点权。边看成堆着土的隧道,土的数量就是边权,如果土的数量不为0,那么这条边不可以走,挖走1个土消耗1块钱。点上的权值x代表走到这个点能得到x块钱。有一个需要抵达的终点。起点为0。从起点出发,可以选择一个能走到的隧道并挖隧道里面的土。可以不用挖完。走到点上一定会获得点权的钱。如果当前钱的数量小于0就破产问最少需要多少钱可以走到终点问至少带多少钱可以让你在最坏的情况下依然可以到达终点。x[i]表示点i的权值,y[i]表示i的父亲边的权值n<=1e5n <= 1原创 2020-10-02 16:39:22 · 1212 阅读 · 0 评论 -
2020 CCPC网络选拔赛部分题解
1002 Graph Theory Class题意:给n个结点1,2,…n,i和j之间的边权是lcm(i+1,j+1),问最小生成树边权和解题思路:让所有结点变成2,3,4…n+1.这样把其中所有质数向2连边,所有合数向它的因子连边。这样答案为[3,n+1]数字和+[3,n+1]质数和。然后套min25板子就行,难点是需要知道min25板子(#include <bits/stdc++.h>using namespace std;const int N = 1000010;int k原创 2020-09-21 19:09:24 · 3662 阅读 · 2 评论 -
校内练习1:Central Europe Regional Contest 2019 解题报告
A . ABB题意:给出字符串S,求在S后面最少加多少个字符串使得其为回文串。n≤2e5n \le 2e5n≤2e5解题思路:相当于找一个最小的i使得S[i+1, n]为回文串,直接枚举i然后用字符串hash判断回文串即可。#include<bits/stdc++.h>#define ll long long#define pb push_back#define lowbit(x) ((x)&(-(x)))#define mid ((l+r)>>1)#def原创 2020-08-26 10:23:28 · 606 阅读 · 0 评论 -
2020杭电多校第三场部分题解(1004, 1005, 1006, 1009)
1004 Tokitsukaze and Multiple可以处理出每个点i作为划分的右端点,它最近的左端点为L[i],然后问题就转换成了若个个区间,求彼此之间不相交的情况下最多有几个共存。经典问题,这里用DP解决#include<bits/stdc++.h>#define ll long long#define pb push_back#define lowbit(x) ((x)&(-(x)))#define mid ((l+r)>>1)#define ls原创 2020-07-28 17:24:01 · 495 阅读 · 1 评论 -
2020杭电多校第二场部分题解(1001, 1005, 1006, 1007, 1009, 1010, 1012)
1001 Total Eclipse题意:给一个n点m边的图,每个点有点权。每次可以选择一个点权全是正数的点组成的连通块,让它们的权值整体-1.问让全部的点权变为0需要多少次操作.(1≤n,m≤1e5)(1\le n,m\le 1e5)(1≤n,m≤1e5)(一开始题目意思其实是任选若干个点组成的连通块,后来出题人发现不对劲就改成这样的题意了)解题思路:对于一个连通块来说,可以一直操作 min(ai)min(a_i)min(ai)次(aia_iai是连通块内权值最小的那个点),然后最小的那些点就会原创 2020-07-23 22:39:46 · 1472 阅读 · 0 评论 -
2020杭电多校第一场部分题解(1004, 1005, 1006, 1009, 1011)
1004 Distinct Sub-palindromes前置知识点:无题意:问本质不同的回文子串个数最少的长度为n的字符串有多少种,答案对1e9+7取模解题思路:其实是一个思维题,先考虑n很大的时候,如果是如abcabc…这样排列,本质不同的回文子串个数就是3,稍微画一画会当n>=4的时候本质不同回文子串个数不可能小于3个,而如果是3个就最多有3个字母. 当是3个字母的时候,肯定不可以有相邻的相同字母,也不能有一个位置左右两边是同一个字母,那么就只能是abcabc……这种形式了。所以n>原创 2020-07-22 12:15:59 · 1525 阅读 · 0 评论 -
CodeForces 1303G - Sum of Prefix Sums(点分治+李超树)
题意给一颗树,每个点有点权,求树上一条路径u1,u2,...uku_1,u_2,...u_ku1,u2,...uk获得点权数组au1,au2,...auka_{u_1},a_{u_2},...a_{u_k}au1,au2,...auk。要使得它的前缀和的前缀和最大,求这个最大值。解题思路树上路径的问题会想到用点分治去解决,以点分治的想法,如何把当前一条路径和现存的路径信息合...原创 2020-02-17 10:55:36 · 397 阅读 · 0 评论 -
Codeforces Round #620 (Div. 2) 题解
A - Two Rabbits水题#include<bits/stdc++.h>#define ll long long#define pb push_back#define lowbit(x) ((x)&(-(x)))#define mid ((l+r)>>1)#define lson rt<<1, l, mid#define rson...原创 2020-02-16 16:33:49 · 320 阅读 · 0 评论 -
CodeForces 1303F - Number of Components(删边并查集)
题意一个n∗mn*mn∗m的地图,一开始全是颜色0.Q次询问,每次把(x,y)(x,y)(x,y)的格子变成颜色ccc。问每次操作完之后有多少个同色联通块。保证cic_ici以单调不降的顺序给出,且保证ci≤max(1000,2e6/(nm))c_i\le max(1000,2e6/(nm))ci≤max(1000,2e6/(nm))解题思路可以按照不同的颜色分别统计。那么修改一个位...原创 2020-02-14 23:01:57 · 499 阅读 · 0 评论 -
Codeforces 1301F - Super Jaber(思维+BFS)
题意n∗mn*mn∗m的地图上,每个格子有一个颜色。最多kkk种颜色。每次可以花费111时间去相邻格子,或者花费111时间跳到相同颜色格子。QQQ次查询(x1,y1),(x2,y2)(x1,y1), (x2,y2)(x1,y1),(x2,y2)问从(x1,y1)(x1,y1)(x1,y1)到(x2,y2)(x2,y2)(x2,y2)最少时间为多少。解题思路从起点到终点,两种可能:没有跳。...原创 2020-02-14 20:53:32 · 293 阅读 · 0 评论 -
Codeforces 1301E - Nanosoft(二维RMQ+二分)
题意给一个n∗mn*mn∗m的矩形,每个格子有一个颜色。总共4种颜色。一个合法的正方体是由左上四分之一为颜色1,右上四分之一为颜色2,左下四分之一为颜色3,右下四分之一为颜色4构成。QQQ次查询,每次查询子矩阵(x1,y1,x2,y2)(x1,y1,x2,y2)(x1,y1,x2,y2)中最大的合法正方体面积。如果不存在,输出0.n,m≤500,q≤3e5n,m\le 500, q\le ...原创 2020-02-14 20:47:03 · 280 阅读 · 0 评论 -
2019 ICPC Asia 南昌 Regional J. Summon(矩阵快速幂优化DP+polya定理)
题意:长度为n(n<1e5)n(n<1e5)n(n<1e5)的环,填四种颜色,有mmm个要求(m<256)(m<256)(m<256),每个要求限制一个长度为444的序列XXXXXXXXXXXX不许在环中出现,问有多少合法方案。(通过旋转可以变相同的算同一种方案)解题思路:前置知识点:polay定理在粗略的学习polay定理之后,我只记住了对于没有限制的...原创 2020-02-02 21:22:06 · 661 阅读 · 0 评论 -
2019 ICPC 南昌 Regional A. 9102(离线处理 && 带删并查集)
题意:需要维护一个可持久化的带删并查集。解题思路:可持久化数据结构如果没有强制在线就尝试离线建一颗时间顺序的树,然后直接处理,解决完一个儿子再回溯操作就行了。因为要回溯所以这里的并查集并没有路径压缩而是采用启发式合并。#include<bits/stdc++.h>using namespace std;const int maxn = 1e6 + 50;struct no...原创 2020-01-28 19:13:22 · 656 阅读 · 0 评论 -
2019 ICPC 南昌 Regional B. A Funny Bipartite Graph(状压DP)
题意一个二分图,左右各有nnn个点,左边第iii个点有一个属性mim_imi,它在一个图中的价值为midim_i^{d_i}midi,其中did_idi为它在图中的度数(特殊的,如果度数为000,则价值为000),求一个该二分图的子图使得右边的每个点度数都不为000且总价值最小,输出最小价值。如果无解输出−1-1−1有若干个限制条件(i,j)(i,j)(i,j)表示子图中左边的点iii...原创 2020-01-28 17:02:03 · 775 阅读 · 0 评论 -
2019 ICPC 南京 Regional I. Space Station(DP && 哈希)
题意:有nnn个数字a1,2,..na_{1,2,..n}a1,2,..n,你的初始能量为a0a_0a0,每次只能选取小于等于当前能量的数字,选完数字aia_iai后当前能量会加上aia_iai,求选完所有数字的方案数 mod 1e9+7mod\ 1e9+7mod 1e9+7n≤1e5,0≤ai≤50n\le1e5,0\le a_i\le 50n≤1e5,0≤ai...原创 2020-01-28 14:00:23 · 993 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day3 F. 社团管理 (DP && 分治)
题意:有nnn个数字a1,2...na_{1,2...n}a1,2...n,要分成k段,每段的价值为段内满足[ai==aj]and[i==j][a_i==a_j] and[i==j][ai==aj]and[i==j]的(i,j)(i,j)(i,j)对数。(n,ai≤1e5,k≤min(n,20))(n,a_i\le 1e5,k\le min(n,20))(n,ai≤1e5,k≤min(...原创 2020-01-26 13:11:43 · 273 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day6 H. 异或询问 (异或性质&&前缀和)
题意给定一个序列a1,2..na_{1,2..n}a1,2..n,定义f(x)=(a种小于等于x的数字数目)2f(x)=(a种小于等于x的数字数目)^2f(x)=(a种小于等于x的数字数目)2。QQQ个询问 l r x\ l\ r\ x l r x,查询∑i=lrf(i xor x)\sum_{i=l}^rf(i...原创 2020-01-22 18:53:02 · 619 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day6 D. 递增递增(DP)
题意:nnn个范围[li,ri],ai∈[li,ri][l_i,r_i],a_i\in[l_i,r_i][li,ri],ai∈[li,ri],求所有符合限制的单调不增序列的元素和的总和。解题思路:因为是a是单调不降的,所以他们区间的左端点应该是单调不降的,右端点是单调不增的。可以分区间讨论。2n个点划分出2n个区间,然后用dp(i,j)dp(i,j)dp(i,j)表示考虑了前i个...原创 2020-01-22 13:23:20 · 423 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day2 B.萨博的方程式(数位DP)
题意:萨博有个方程式:x1 xor x2 … xor xn=k(xi∈[0,mi])x_1\ xor\ x_2\ \dots\ xor \ x_n=k\quad (x_i\in[0,m_i])x1 xor x2 … xor xn=k(xi∈[0,mi])n≤50, k,mi...原创 2020-01-21 16:27:09 · 435 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day6 (部分题解)
感谢敦哥敦哥友好签到题大放送,A题数目最多的一场7-1 6A. Convolution∑i=1n∑j=1n2aiaj\sum_{i=1}^n\sum_{j=1}^n2^{a_ia_j}∑i=1n∑j=1n2aiaj这个式子看上去很像卷积,如果是卷积的话直接NTT就做完了,所以我们想办法康康能不能化成卷积形式:2aiaj=2(ai+aj)2−ai2−aj2=2−ai2∗2−aj2∗2(...原创 2020-01-17 22:34:29 · 1115 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day5 (部分题解)
这场是英文题面QAQ,dlstql7-1 5A. Alternative Accounts每个数字有一个状态表示它在各个集合的情况:0表示不在任何集合,1表示在第一个集合,3表示在第一个和第二个集合……显然,状态为0的数字可以不用管,状态为2k−12^k-12k−1的数字必定单独一个占一个集合。那么当k=2,状态为1的和为2的可以彼此配对,构成max(num[1],num[2])max(n...原创 2020-01-16 22:49:56 · 994 阅读 · 1 评论 -
2020 CCPC Wannafly Winter Camp Day3(部分题解)
这场待补的题蛮多……留个坑7-1 3A. 黑色气球听队友说随便搞搞就过了,没仔细听怎么写的,就康康代码吧ps:坑点是n=2的时候答案是1 1#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<queue>#inclu...原创 2020-01-16 22:26:58 · 819 阅读 · 4 评论 -
2020 CCPC Wannafly Winter Camp Day2(部分题解)
7-1 2A. 托米的字符串对每个元音计算它对所有包含它的区间的贡献和,累加起来除以所有可能的区间数目就是答案。solved by wwb#include<bits/stdc++.h>#define ll long long#define lowbit(x) ((x)&(-(x)))#define mid ((l+r)>>1)#define lson ...原创 2020-01-15 10:51:03 · 982 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day1 (部分题解)
7-1 1A. 期望逆序对按中点从小到大排序之后n^2求一遍答案。 赛后补题 by zx#include<iostream>#include<queue>#include<cstring>#include<algorithm>#include<cstdio>#define LL long long#define PII p...原创 2020-01-13 00:12:24 · 1328 阅读 · 1 评论 -
CTU Open Contest 2018 Escalators(拆位+并查集+计数)
这题的难点是看懂题意……题目大意:给你一棵树,点有点权,一条路径的收益是这条路径上所有结点权值的与,可以选择任意多的路径,但是不能重复选择同一条路径,问能获得的最大收益。解题思路:要最大收益,肯定是把所有路径都选一遍啊。。多选一条路径最差情况下也是不增加收益嘛。然后问题就变成求所有路径的收益。因为是位运算,所以对每一位分开看,可以发现如果一个位上的1要在一条路径上产生贡献,那么这条路径上所...原创 2019-09-27 23:59:29 · 213 阅读 · 0 评论 -
2019徐州网络赛 F. Little M's attack plan(思维+树状数组+容斥)
题目大意:给你一棵n个点的树,每个点有权值,m次查询,每次查询(v,k),查询与结点v的距离小于等于k的结点的权值和。n≤1e6,m≤5000,k≤100n\le1e6,m\le5000,k\le100n≤1e6,m≤5000,k≤100解题思路:感觉题解说的挺清楚了:把原本的问题拆成k个问题后要容斥(画个图应该就明白了)。然后可能会卡常,比较粗暴的写T了之后加了个快读1900+ms飘...原创 2019-09-07 22:03:16 · 219 阅读 · 0 评论 -
2019湖南ACM省赛部分题解(C,D,G,H)
H: 有向图 (推公式,线性代数)题目描述:Bobo 有一个 n+mn + mn+m 个节点的有向图,节点用 1,2,…,(n+m)1, 2, \dots, (n + m)1,2,…,(n+m) 编号。他还有一个 nnn 行 (n+m)(n + m)(n+m) 列的矩阵 PPP.如果在 ttt 时刻他位于节点 uuu (1≤u≤n1 \leq u \leq n1≤u≤n),那么在 (t+1)...原创 2019-09-02 15:38:39 · 2379 阅读 · 5 评论