
题解
文章平均质量分 78
Power_True
这个作者很懒,什么都没留下…
展开
-
【题解】5063. 异或与区间加
题目大意给定序列 an{a_n}an, 每次给出若干操作:将所有 l,r∈[st,en]l,r\in[st,en]l,r∈[st,en] 且 al⊕al+1⊕...ar=ka_l\oplus a_{l+1}\oplus...a_{r}=kal⊕al+1⊕...ar=k 的所有区间区间 +w+w+w (在初始值全为0的 bbb 序列中)。求最终的 bbb 序列。思路这题还是比较恶心的。首先容易想到答案运用差分的方法解决。且 ai⊕ai+1⊕...ar=ka_i \oplus a_{i+1}原创 2022-01-19 07:44:33 · 495 阅读 · 0 评论 -
【题解】3747. Problem C
3747. Problem C题目大意给定一个字符串 sss 由 A,C,G,TA,C,G,TA,C,G,T 组成,求长度为 mmm 且同样由 A,C,G,TA,C,G,TA,C,G,T 组成的字符串中,与 SSS 的最长公共子序列长度 ∈[0,n]\in[0,n]∈[0,n] 的分别有几个。思路经典dp套dp。第一次接触。首先回顾求最长公共子序列的方法:设 fi,jf_{i,j}fi,j 表示做到长度为 mmm 的字符串第 iii 位,sss 的第 jjj 位,然后转移。本题我们设 Fi,原创 2022-01-17 22:05:18 · 842 阅读 · 0 评论 -
【题解】3745. Problem A
3745. Problem A题目大意给定一棵树,每条边初始颜色为0。有三个操作:将某条路径上所有边反色;将有且只有一个点在某条路径上的边反色;求一条路径上的黑边个数。总结容易想到重链剖分。我们用线段树维护 sum0sum_0sum0 表示区间内白边个数, sum1sum_1sum1 同理,valvalval 表示连向该点的所有轻边是否反转。先看操作1:在链中跳的时候显然是把每个点的 sum0,sum1sum_0,sum_1sum0,sum1 翻转;在链之间跳时给跳之前链头标原创 2022-01-17 21:41:54 · 250 阅读 · 0 评论 -
3736. 数学题(math)
题目大意给定两个向量,求 ∣xa⃗+yb⃗∣|x\vec a+y\vec b|∣xa+yb∣ 最小,x,yx,yx,y 不同时为0。思路约定:∣a⃗∣<∣b⃗∣|\vec a| < |\vec b|∣a∣<∣b∣ ,且两个向量夹角小于 π2\frac{\pi}{2}2πTheorem1 :两个向量的夹角如果大于等于 π3\frac{\pi}{3}3π ,则答案等于 min(∣a⃗∣,∣b⃗∣)min(|\vec a|,|\vec b|)min(∣a∣,∣b∣) 。Proof:原创 2022-01-14 16:36:26 · 333 阅读 · 1 评论 -
7321. plusminus 总结
7321. plusminus 总结题目大意给一个大小为 n×mn\times mn×m 的矩阵,从 (1,1)(1,1)(1,1) 出发,能从 (x,y)(x,y)(x,y) 到 (x+1,y)(x+1,y)(x+1,y) 或 (x,y+1)(x,y+1)(x,y+1) ,矩阵上有一些 数,分别为 +1,−1+1,-1+1,−1 ,走到矩阵的任意位置,走过的路上的数之和 xxx 满足 0≤x≤t0\le x\le t0≤x≤t 。现在已知矩阵上的 kkk 个位置上的数,求满足要求的矩阵的个数。其中原创 2021-10-19 21:21:04 · 205 阅读 · 2 评论 -
【题解&总结】 gmoj 4744 同余
题目大意给定一个长度为 nnn 的序列 {an}\{a_n\}{an} ,有 mmm 个询问,每次给出 l,r,p,ql,r,p,ql,r,p,q ,求区间 [l,r][l,r][l,r] 中有多少个 aia_iai 满足 ai≡q (mod p)a_i\equiv q\ (mod\ p)ai≡q (mod p) 。题解显然题目其实是要求 ai=kp+qa_i=kp+qai=kp+q 个 iii 的个数。我们考虑当 p≤100p\le 100p原创 2021-08-10 20:44:27 · 138 阅读 · 0 评论 -
【题解&总结】P1829 [国家集训队]Crash的数字表格
题目大意给定 n,mn,mn,m ,求∑i=1n∑j=1m[i,j]\sum_{i=1}^n\sum_{j=1}^m[i,j]i=1∑nj=1∑m[i,j]题解我们约定 n<mn<mn<m先把 lcmlcmlcm 换成 gcdgcdgcd ,则∑i=1n∑j=1mij(i,j)\sum_{i=1}^n\sum_{j=1}^m\frac{ij}{(i,j)}i=1∑nj=1∑m(i,j)ij常规套路,枚举 (i,j)(i,j)(i,j) ,得∑d=1n∑i=原创 2021-08-07 22:12:21 · 196 阅读 · 1 评论 -
【题解&总结】 P3327 [SDOI2015]约数个数和
题目大意设 d(x)d(x)d(x) 表示 xxx 因数个数,给定 n,mn,mn,m ,求∑i=1n∑j=1md(ij)\sum_{i=1}^n\sum_{j=1}^md(ij)i=1∑nj=1∑md(ij)题解首先有一个奇妙的结论:d(ij)=∑x∣i∑y∣i[gcd(x,y)==1]d(ij)=\sum_{x|i}\sum_{y|i}[gcd(x,y)==1]d(ij)=x∣i∑y∣i∑[gcd(x,y)==1]证明如下:根据定义,d(ij)=∑p∣ij1d(ij)=\sum_{原创 2021-07-29 21:25:53 · 252 阅读 · 0 评论 -
【题解&总结】 P3704 [SDOI2017]数字表格
这道题真是本人切的第一道黑题,我还是太弱了题目大意给定 n,mn,mn,m ,求 ∏i=1n∏j=1mfgcd(i,j)\prod_{i=1}^n\prod_{j=1}^mf_{gcd(i,j)}i=1∏nj=1∏mfgcd(i,j) 其中,fff 为斐波那契数列。题解考虑枚举 d=gcd(i,j)d=gcd(i,j)d=gcd(i,j) ,思考会存在多少个 fdf_dfd ,即 ∑i∑j[gcd(i,j)==d]\sum_i\sum_j[gcd(i,j)==d]∑i∑j[gcd(i,j原创 2021-07-22 20:22:08 · 161 阅读 · 0 评论 -
【刷题总结】 P2568 GCD
题意求 ∑d∈prime∑i=1n∑j=1n[(i,j)==d]\sum_{d\in prime}\sum_{i=1}^n\sum_{j=1}^n[(i,j)==d]d∈prime∑i=1∑nj=1∑n[(i,j)==d]题解除以 ddd ,得∑d∈prime∑i=1⌊nd⌋∑j=1⌊nd⌋[(i,j)==1]\sum_{d\in prime}\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}原创 2021-07-21 22:11:33 · 125 阅读 · 0 评论 -
【题解&总结】 「NOI2018」屠龙勇士
题目大意题解考虑把题目转换一下,假设我们把杀每条龙所要用的剑求出来了(用平衡树或线段树预处理一下),设当前的剑的攻击力为 AiA_iAi那么题目就可以转换为:找到一个最小的 xxx ,使得对于 ∀i∈[1,n]\forall i\in[1,n]∀i∈[1,n] ,都有 Ai⋅x≡ai (mod pi)A_i\cdot x\equiv a_i\ (mod\ p_i)Ai⋅x≡ai (mod pi)发现这与excrt很像,我们考虑化成其一般形式。但我原创 2021-07-18 19:46:00 · 377 阅读 · 0 评论 -
【题解&比赛总结】gmoj6683 我图呢
题目大意给你一个二分图,并告诉每个点的点权要求二分图的最大独立集并使得权值最大,同时输出任意一组方案。题解是一道经典的二元关系最小割的问题。我们要求二分图最大独立集,那么我们就可以考虑求最大匹配,即最大独立集=点数-最大匹配,具体证明为:二分图的独立数等于顶点数减去最大匹配数,很显然的把最大匹配两端的点都从顶点集中去掉这个时候剩余的点是独立集,这是|V|-2*|M|,同时必然可以从每条匹配边的两端取一个点加入独立集并且保持其独立集性质。——百度百科为了方便计算答案,我们可以考虑求最小点覆盖原创 2021-07-14 21:21:47 · 164 阅读 · 5 评论 -
【题解&总结反思】 gmoj4496 互补约数
题目大意已知 n≤1011n\le10^{11}n≤1011 ,求 ∑i=1n∑d∣igcd(d,id)\sum_{i=1}^n \sum_{d|i} gcd(d,\frac{i}{d})i=1∑nd∣i∑gcd(d,di)总结一道高质量的题目,恶补了一下莫反,明白了之前很多不懂得东西原式可以理解为选择两个数 i,ji,ji,j 使得 i⋅j≤ni\cdot j\le ni⋅j≤n,然后求gcd的和,即∑i⋅j≤ngcd(i,j)\sum_{i\cdot j\le n}gcd(i,j)i⋅j≤原创 2021-07-13 19:41:42 · 130 阅读 · 1 评论 -
【题解&总结反思】 gmoj3454 表白(love)
题目大意总共有 nnn 个人,要将这 nnn 个人分成两队,要求第一队有 n1n1n1 人,第二队有 n2n2n2 人。第 iii 个人排到第 jjj 队则会获得 qj,iq_{j,i}qj,i 和 cj,ic_{j,i}cj,i ,要使得 qqq 的和与 ccc 的和的比值最大。思路求比值,应当想到0/1分数规划。常规套路,先二分一个答案(注意精度),然后进行判定。设二分出来的答案为 ddd则 ∑i∈n1q1,i+∑i∈n2q2,i≥d(∑i∈n1c1,i+∑i∈n2c2,i)\sum_原创 2021-07-11 07:56:14 · 147 阅读 · 0 评论 -
【题解&比赛总结】gmoj5698 密码
题目大意给你一个长度为n的序列A,每次选择一段区间,在模m的意义下整体+1或-1,问最少需要多少次操作才能使序列A变为0思路看到对于区间整体加减,应当要想到差分我们设 a0=an+1=0a_0=a_{n+1}=0a0=an+1=0, bi=ai−ai−1b_i=a_i-a_{i-1}bi=ai−ai−1 (mod m)(mod \ m)(mod m) (0≤i≤n+1)(0\le i \le n+1)(0≤i≤n+1)设 a0=an+1=0a_0=a_{n+1}=原创 2021-07-11 07:23:14 · 167 阅读 · 0 评论 -
3400. 【GDOI2014模拟】旅行
#include<queue>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int N=1e4+5;struct node{ int to,next,w;}e[2*N];int cnt,n,k,m,INF;int head[N],g[1<<10],f[N][1<&l原创 2021-07-07 16:53:21 · 145 阅读 · 5 评论 -
【题解&比赛总结】【GDOI2004】可怜的绵羊
题目描述Description阿里是一个老实巴交的牧羊人,他有一块地,这块地周边插着一些树桩,阿里用一根粗绳顺次将这些树桩连结起来,构成一个凸多边形,这个多边形就是他的牡羊场了。阿里就是靠自己辛勤的劳动卖羊毛挣钱的。过冬了,今年特别冷所以羊毛的销量特别好,阿里看着自己的绵羊心里十分高兴。然后住在附近的财主见到了阿里的收成十分眼红,他在阿里的牧地里某些地方下了毒药,想毒死阿里的绵羊。阿里知道了这件事情,但他知道自己斗不过这个财主,他只能忍受着,他所能做的就是把自己的牧羊场缩小,即挑选出一些树桩,用绳子把牡原创 2021-04-04 12:24:36 · 360 阅读 · 0 评论 -
【GDKOI 2021提高组DAY2】群岛
一道需要动动脑的题,需要把题目转换一下,然后才好维护。Description题解对于ai<ia_i<iai<i 的情况,我们发现iii是一定能到达a[i]a[i]a[i]的。那么说,我们假设把所有的[ai,i][a_i,i][ai,i]当做线段,那么我们每次的查询就是找与[i,n][i,n][i,n] 相交最前的左端点。用线段树维护,支持区间加以及找前缀区间最后一个0的位置。特别的,为了避免把[x,y],[y+1,z][x,y],[y+1,z][x,y],[y+1,z]两原创 2021-01-30 21:43:19 · 437 阅读 · 1 评论 -
【GDKOI 2021提高组DAY2】 游戏
比赛时A了这道题,感觉很有意思。一道期望dp,比较好玩。DescriptionData Constraint题解期望dp多为逆推,我们从逆推的方向去想一想:设f[i]f[i]f[i]表示从iii颗星到n颗星的期望局数。容易推出方程:f[i]=p[i]f[i+1]+(1−p[i])f[i−1]+1f[i]=p[i]f[i+1]+(1-p[i])f[i-1]+1f[i]=p[i]f[i+1]+(1−p[i])f[i−1]+1发现有后效性,仔细观察得出:f[n]=0,f[n−1]=(1−p[原创 2021-01-30 18:47:32 · 341 阅读 · 0 评论 -
【GDKOI 2021普及组DAY2】我的世界
题目描述数据范围限制题解比赛的时候我发现了一个有用的规律:如果走传送门只会下一次上一次然后这个其实比较难找,我比赛时就把路径抽出来,O(n)枚举,用单调队列优化,时间复杂度O(nq)O(nq)O(nq) 40分。其实我们可以分类讨论一下:1.1.1.不走传送门时答案为:8(dis[u]+dis[v]−2dis[lca])8(dis[u]+dis[v]-2dis[lca])8(dis[u]+dis[v]−2dis[lca])2.2.2.走一个传送门(x)在u到lca的路径上,另一个(y)在原创 2021-01-28 21:00:36 · 336 阅读 · 0 评论 -
【学习笔记】数据结构:无旋Treap(二)区间操作
学了无旋Treap的普通操作后,就学了一下区间的一些操作,然后打了一道极其恶心的题目:[NOI2005]维护数列这里通过这道题来好好讲一讲平衡树的区间操作。First of all首先我们得理解此时的平衡树维护什么,它维护的是每个数下标的大小关系,因此,这棵平衡树的中序遍历就是这个序列。那假如说又要维护值又要维护下标呢?算了吧,好好打树套树。Second好,进入正题,我们来看看这道题用无旋Treap怎么做。首先,我们先看看它的两个核心操作:split和merge。//分裂void spli原创 2021-01-24 15:11:01 · 397 阅读 · 0 评论 -
【题解&比赛总结】NOIP 2020正式赛 字符串匹配 (string)
题面Sample Input3nnrnnrzzzaabmmlmmloSample Output8916数据范围题解First of All我们首先先考虑一个朴素的暴力算法:我们枚举一个 ABABAB,然后求出 (AB)i(AB)^i(AB)i 那么此时 CCC 也就确定了。然后我们再枚举出A,然后判断是否可行,统计答案即可时间复杂度 θ(Tn3)\theta(Tn^3)θ(Tn3)优化我们发现这个方法的时间复杂度实在是难以令人接受了。我们考虑优化。枚举AB是少不了原创 2020-12-26 22:08:05 · 557 阅读 · 1 评论 -
【题解&比赛总结】简单题(easy)
Description小 P 完成了签到之后就开始了比赛,他看了眼第一题,第一题的题意是这样的:KCZ 王国有 NNN 个城市,被 MMM 条双向道路连接。每条双向道路都有一个维修费用。国王 KCZ 想要去掉尽可能多的边,使得留下来的边依旧能使王国的任意两个城市之间都有经过一条或多条边的路径。在所有的方案中,国王 KCZ 希望留下来的边的维修费用之和最小。现在,国王 KCZ 准备调整一些边的维修费用来影响最后留下的边的结果。对于每条边,他希望你告诉他,在保证这条边有希望被留下来的同时,这条边的维修费用最原创 2020-11-28 22:07:25 · 581 阅读 · 0 评论 -
【题解&比赛总结】图形变换
好久没有打题解了,今天做了一套好题,收获良多。Description翔翔最近接到一个任务,要把一个图形做大量的变换操作,翔翔实在是操作得手软,决定写个程序来执行变换操作。翔翔目前接到的任务是,对一个由n个点组成的图形连续作平移、缩放、旋转变换。相关操作定义如下:Trans(dx,dy)Trans(dx,dy)Trans(dx,dy) 表示平移图形,即把图形上所有的点的横纵坐标分别加上dx和dy;Scale(sx,sy)Scale(sx,sy)Scale(sx,sy) 表示缩放图形,即把图形上所有点原创 2020-11-14 21:30:51 · 197 阅读 · 0 评论 -
2020CSP初赛试题答案解析
转载转载于https://blog.youkuaiyun.com/zsjzliziyang/article/details/109060410#2.CSP-J%E7%AD%94%E6%A1%88%EF%BC%88C%2B%2BA%E5%8D%B7%EF%BC%89转载 2020-10-16 14:40:13 · 3594 阅读 · 0 评论 -
【题解&比赛总结】GMOJ5348心灵治愈
【题目描述】题目太生草了,我给读者们简化一下。给定一个长 N+1N+1N+1 的序列 aaa 的第 N+1N+1N+1 位,求满足 ∑i=1nai⋅xi+M⋅xn+1=1\sum_{i=1}^{n}a_i·x_i+M·x_{n+1}=1∑i=1nai⋅xi+M⋅xn+1=1 (xi∈Z)(x_i\in \mathbb{Z})(xi∈Z) 的序列 aaa 有多少个。【思路】我把我比赛时的思路说说,可能能帮助理解。首先看到 N=1N=1N=1 的情况,即 a1x1+Mx2=1a_1x_1+原创 2020-10-08 17:05:11 · 139 阅读 · 0 评论 -
【题解&刷题总结】青蛙的约会
题目描述两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。我们把这两只青蛙分别叫做青蛙A和青原创 2020-09-20 09:32:33 · 1083 阅读 · 1 评论 -
【题解&比赛总结】字符串距离
Description给出两个由小写字母组成的字符串 X 和Y ,我们需要算出两个字符串的距离,定义如下:1)我们可以在字符串的头、尾、中间插入若干空格,组成一个新的扩展串2)对X扩展成扩展串X1,对Y扩展成扩展串Y1,并且令X1和Y1具有相同的长度3)定义X1、Y1的距离为每个对应的字符的距离之和,其中两个空格的距离为0,两个非空格字符的距离为其ASCII码之差的绝对值,一个空格字符到任意非空格字符的距离为K4)对于字符串X、Y,必然存在两个等长的扩展串X1、Y1,使得X1、Y1的距离达到最少,原创 2020-09-13 07:33:13 · 269 阅读 · 0 评论 -
【题解&刷题总结】ZJOI 2007 仓库建设(斜率优化dp)
又刷了一道斜率优化dp题目题目描述输入格式输入的第一行是一个整数 n,代表工厂的个数。第 2 到 (n + 1) 行,每行有三个用空格隔开的整数,第 (i + 1)行的整数依次代表 xi,pi,cix_i,p_i,c_ixi,pi,ci输出格式仅输出一行一个整数,代表最优方案的费用。输入输出样例输入30 5 105 3 1009 6 10输出32样例输入输出 1 解释在工厂 1 和工厂 3 建立仓库,建立费用为 10+10=20 ,运输费用为 (9−5)×3=12,总原创 2020-08-17 21:54:34 · 230 阅读 · 0 评论 -
【题解&刷题总结】荒岛野人(扩展欧几里得)
题目题解&思路我们可以把题目稍微转换一下:设有 mmm 个洞穴,对于两个野人,他们要互相攻击得满足什么?很明显,若第 iii 个野人与第 jjj 个野人要相互攻击,则 ci+pi⋅x≡cj+pj⋅x(modc_i+p_i·x \equiv c_j+p_j·x(modci+pi⋅x≡cj+pj⋅x(mod m)m)m)稍微移一下项: (pi−pj)x≡cj−ci(mod(p_i-p_j)x \equiv c_j-c_i(mod(pi−pj)x≡cj−ci(mod m)m)m原创 2020-08-16 14:34:37 · 257 阅读 · 0 评论 -
【题解&刷题总结】摆渡车(斜率优化dp)
题目描述有 ???? 名同学要乘坐摆渡车从人大附中前往人民大学,第 ???? 位同学在第 ???????? 分钟去等车。只有一辆摆渡车在工作,但摆渡车容量可以视为无限大。摆渡车从人大附中出发、把车上的同学送到人民大学、再回到人大附中(去接其他同学),这样往返一趟总共花费 ???? 分钟(同学上下车时间忽略不计)。摆渡车要将所有同学都送到人民大学。凯凯很好奇,如果他能任意安排摆渡车出发的时间,那么这些同学的等车时间之和最小为多少呢?注意:摆渡车回到人大附中后可以即刻出发。输入输入文件名为 bus.i原创 2020-08-16 11:25:39 · 757 阅读 · 0 评论 -
【题解&刷题总结】HDU 3507(斜率优化dp)
最近学了学斜率dp,刷了几道题,感觉挺不错。题目Zero has an old printer that doesn’t work well sometimes. As it is antique, he still like to use it to print articles. But it is too old to work for a long time and it will certainly wear and tear, so Zero use a cost to evaluate t原创 2020-08-16 11:02:24 · 296 阅读 · 0 评论