![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
题解
ybtoj
xiyuping24
所求皆如愿,所行化坦途
展开
-
线性基学习笔记
连续几次膜你赛都被异或操作按在地上摩擦,临近CSP学习一下线性基攒攒rp吧qwq。查询:从高到底进行计算;判断某数二进制下位置i上的数异或后是否更大。1. 原序列里面的任意一个数都可以由线性基里面的一些数异或得到。用数组p来表示线性基;其中p[i]表示最高位1在第i位上的数。2. 线性基里面的任意一些数异或起来都不能得到 0。3. 线性基里面的数的个数唯一且最少的。学习自这位巨佬的博客。原创 2022-10-25 17:59:51 · 250 阅读 · 0 评论 -
【题解】奇数计数
直接计数或者往桶里面仍就好啊。后来马老师突然:我发现了华点。4MB卡空间,直接否了我一开始的想法,但注意到k=1/2,对于k=1可以直接异或,本来觉得k=1是个特殊情况,但是过一段时间(想了整整1个小时)才发现啊,k=1就像是数学大题里的第一问一样,起的是提醒作用qwq。比较美妙的地方有两个:想到4MB很可能会卡万能头(24OJ留下的深刻阴影);没整幺蛾子乖乖从1-31拆位(上次卡牌选取拆位挂五十分留下的深刻阴影)一开始沉迷与突然奇怪起来的画风,觉得反正n到。原创 2022-10-03 07:38:12 · 97 阅读 · 0 评论 -
P1267 排序二叉树 题解
题意还是很清晰的,其中排序二叉树是指对于每一个有儿子的节点,其左儿子一定小于这个节点,其右儿子一定大于这个节点,我们按照题目要求建图即可(代码中有相应注释)。同时,若要使树最大,那么左右子树都要是最大的,局部最优满足全局最优,这就是妥妥的DP了(在图中还是记忆化更简单一些)。lson:当前节点(靠与父亲连起来的边实现)、由父亲确定的下界、由本节点(可理解成区间DP中的断点)确定的上界;rson:当前节点(靠与父亲连起来的边实现)、由父亲确定的上界、由本节点(可理解成区间DP中的断点)确定的下界。原创 2022-09-22 19:46:46 · 241 阅读 · 0 评论 -
P5021 [NOIP2018 提高组] 赛道修建
取max初始值一定要赋成-1。取max初始值一定要赋成-1。原创 2022-09-16 00:07:45 · 294 阅读 · 0 评论 -
luogu P7077 [CSP-S2020] 函数调用
【代码】luogu P7077 [CSP-S2020] 函数调用。原创 2022-09-14 22:55:54 · 173 阅读 · 0 评论 -
最小步数
注意17 19 22 行,其中17 19要考虑到有可能结果money为正,但是过程money为负,所以有第一个条件,22行是要注意for(int j=1;j++)这里不能带等号,因为最后一步必须是走到的而非跳到的【具体体现在输出要求:若无法走到终点则.....】就很神奇。从起点到终点有 n 步,如果走第 k 步,小楠将会得到 a[k] 元钱,a[k] 可能为负数。但是任何时刻身上的钱都必须是非负的。给定数组 a ,求在能到达终点的情况下最少需要走过(即不是用100 元钱跳过)的步数。原创 2022-09-04 23:09:14 · 751 阅读 · 0 评论 -
9.2 冲刺 NOIP2022 模拟赛 B 组 Day1 总结
拆位拆串行挂50pts可还行qwq。原创 2022-09-03 20:09:18 · 247 阅读 · 0 评论 -
T1 卡牌选取
一共有 n 张卡牌,每张卡牌上有一个正整数 a[i] ,每次可以从中选出 k 张卡牌。一种选取方案的幸运值为这 k 张卡牌上数的按位异或和。3.对于每一位上的01串而言,先考虑所有1的贡献,因为异或操作相当于看是否有奇数个一。当我们要选出奇数个1(假设本位有a个1),组合数。2.对于每一个二进制位,先不考虑怎么选出来 k 个,而是考虑每个0/1对答案有多少贡献。求所有选取方案的幸运值之和,对998244353取模。剩下的 k-i 从0中选即可。预处理出逆元(AC)原创 2022-09-03 08:52:52 · 283 阅读 · 0 评论 -
ybtoj 贪心算法 H. 4.序列问题
【代码】ybtoj 贪心算法 H. 4.序列问题。原创 2022-09-01 20:29:15 · 334 阅读 · 0 评论 -
ybtoj RMQ例4矩阵最值
因为实在不想开四维数组,看y2-y1最多不过二百五,就开的三维,循环一下y2到y1。一开long longT成狗:-D。原创 2022-08-31 12:56:32 · 90 阅读 · 0 评论 -
【ybtoj】I. 3.维护差数【树状数组】
【代码】【ybtoj】I. 3.维护差数【树状数组】原创 2022-08-31 08:48:35 · 96 阅读 · 0 评论 -
YBTOJ 最短路径专项
接下来就是在DAG上进行DP,首先我们找到每个强连通分量的最大值和最小值,因为路径必须从点1开始到点n结束,所以topo中一个强连通分量的最小值可以由它前面的从点1过来的路径上的最小值替代。由于只有上一次被松弛的结点,所连接的边,才有可能引起下一次的松弛操作,那么我们用队列来维护“哪些结点可能会引起松弛操作”,就能只访问必要的边--->SPFA。对于最短路存在的图,松弛操作最多只会执行 n-1 轮,因此如果第 n 轮循环时仍然存在能松弛的边,说明从 s 点出发,能够抵达负环。就建边极为鬼畜qwq。...原创 2022-08-30 15:16:40 · 235 阅读 · 0 评论 -
树形DP YBTOJ专项
被自己之前的代码丑哭了:(原创 2022-08-29 21:48:01 · 226 阅读 · 0 评论 -
小明的聚会(花花的聚会 倍增+DP)
左右,状态转移方程的n降不下去,就只能考虑降暴力枚举边的复杂度,对于每一条链来说这就已经相当于区间最值了。目前的想法大概是暴力枚举合法的v,复杂度在O(m*n),但是正解复杂度在。样例输入:(样例输出:10\n22\n5\n)转移过程中,从u跳到根节点就是。...原创 2022-08-27 15:41:01 · 147 阅读 · 0 评论 -
斜率优化DP+LOJ 任务安排2
代码】斜率优化DP+LOJ任务安排2。原创 2022-08-01 08:12:18 · 122 阅读 · 0 评论 -
决策单调性优化
1.每一段的左右端点的贝壳大小一定相等,且这一段选定的贝壳一定是左右端点的贝壳大小2.跟据第一点写出状态转移方程3.根据第一点也可以知道,状态转移只在相同的颜色之间转移。原创 2022-07-29 20:44:45 · 220 阅读 · 0 评论 -
P3232 [HNOI2013]游走
考虑一条边一定是有他的两个顶点转移过来的,所以边的期望=两顶点的期望和。每一个点的期望又可以从它相邻的所有点转移过来,设这个点是x,与它相邻的点是i;接下来的操作就很秀了高斯消元解方程。这里如果列n组,铁定是解不出来的,但是注意到小Z在N点结束游走,所以这里的方程只有n-1组,加上N点的数据刚刚好解出来。给一个无向图,小Z从一到N随机游走获得分数,每条边对分数的贡献是其编号,求总分期望的最小值,复杂度。贪心的话可以想到应该让期望小的边配编号大的边,那么我们要做的是就是处理出边的期望值。...原创 2022-07-28 10:21:13 · 89 阅读 · 0 评论 -
高斯消元——重载运算符的运用
被重载运算符摁在地上摩擦qwq。转载 2022-07-28 08:42:22 · 61 阅读 · 0 评论 -
矩阵快速幂+矩阵乘法构造
这里我们想把一个1*2的矩阵{f[i],f[i-1]}转换成{f[i]+f[i-1],f[i]}那么我们就要乘上(第一行)11(第二行)10的矩阵。同样的,如果是广义斐波那契。从题面来看非常像过河卒,可以想到要找状态转移方程。一个位置可能是从三行转移过来。,我们只需要更改第一行为a,b就可以解决线性数列。但是真正我们使用矩阵乘法通常是在数列上,比如斐波那契。我们把每次状态转移设计到的。CSDN21天学习挑战赛。...原创 2022-07-28 08:32:23 · 111 阅读 · 0 评论 -
【期望初步、例题】单选错位+小魔女帕琪+收集邮票
2.对于所有七元组(1~7、2~8等)来说,只要有一个成立,对期望贡献就是1【答案乘(N-6)】期望的计算如果概率为k的代价为w1,概率为(1-k)的代价为w2,那么期望就是概率乘代价,即。4.对于每个七元组,有7个位,每个位放不同的数的概率。并且次数都需要加一,那么对于数组g来说,除了同上的分情况之外,加上的应该是。1.这里每一种情况的概率对答案贡献就是1。1.在已经收集到i张邮票后还要收集多少次的期望。2.在已经收集到i张邮票之后所花费用的期望。1.下一次买的是已经有的,.........原创 2022-07-27 13:53:19 · 1013 阅读 · 0 评论 -
二分图最大匹配
二分图最大匹配问题例题:模板+飞行员配对方案+运动员最佳匹配问题原创 2022-06-07 20:26:48 · 81 阅读 · 0 评论 -
分糖果+对抗赛
对抗赛这个题实力演绎了什么叫做玄学。。。加快读就过不加快读就不过=_=本地编译的时候跑出来明明是对的放到测评机来跑就能跑出来个零分糖果数据已经毒到一定境界了,第一次60 ,第二次队列+SPFA 70,第三次...原创 2022-05-10 22:30:15 · 227 阅读 · 0 评论 -
5.8总结
整场考试就离谱啊T1是奶牛晒衣服,保守估计这是我第三次见这道题了,还是优先队列水过。T2我简直哭了,去年八九月的时候在洛谷上做过这道题,但是当时我根本不会RMQ,左搞右搞都是超时。当我已经完全想不起来这码事的时候,今天=o= 在简略了解过RMQ并写过板子之后,当然可以确定这就是RMQ问题,但是试着写根本写不对啊啊啊啊。最后从暴力写起,逐渐写到单调栈优化【此时大概过去了1小时多一点】。#include<bits/stdc++.h>using namespace std;//..原创 2022-05-08 11:29:42 · 287 阅读 · 0 评论 -
二进制状压DP基操
1.查询第 i 位上数字是否为1:x&(1<<(i-1))!=02.将第 i 位上数字修改为1:x=x|(1<<(i-1))3.将第 i 位上数字修改为0:x=x&~(1<<(i-1));P1879 [USACO06NOV]Corn Fields G#include<bits/stdc++.h>using namespace std;const int mod=1e8;int n,m,a[20],q[1<&l..原创 2022-05-06 07:03:42 · 96 阅读 · 0 评论 -
ybtoj强连通分量专题
tarjan缩点+三道例题原创 2022-04-29 21:13:47 · 446 阅读 · 0 评论 -
最小花费+暗黑游戏+信使
最小花费中间注意百分数最好放在后面乘#include<bits/stdc++.h>using namespace std;int n,m,x,y,z,a,b;double ans,dis[2010],book[2010],vis[2010][2010];int main(){ freopen("money.in","r",stdin); freopen("money.out","w",stdout); scanf("%d%d",&n,&m); for(i.原创 2022-04-26 20:46:04 · 1780 阅读 · 0 评论 -
乘法逆元模板
乘法逆元 - zjp_shadow - 博客园老实说我压根没看明白度娘说的乘法逆元是什么,OI Wiki里也没有找到基础解释(好在B站yyds)先说逆元是个什么东西,他大概是对一种操作进行逆运算,就像反函数一样。乘法逆元虽然叫乘法,但是是用来解决除法的取模运算的。但是除法他就不行。所以乘法逆元要做的事情就是把对 a/b 取模这件事转化出对 a 做什么,对 b 做什么,然后再结合起来还能保证效果一样。我们的想法是把 1/b 转化成 b 的负一次方。当 ax≡1(mod p),则称 x原创 2022-04-24 23:34:47 · 587 阅读 · 0 评论 -
4.21题解
最短路径(Floyd)#include<bits/stdc++.h>using namespace std;struct zuobiao{ int x,y; }a[110];int n,m,be,en,f[110][110];double z[110][110];int main(){ freopen("short.in","r",stdin); freopen("short.out","w",stdout); scanf("%d",&n); for(int i原创 2022-04-21 22:00:54 · 127 阅读 · 0 评论 -
4.17总结
T1:进化一开始我的理解是原序列是一串 l , tui 和 lao 把这些 l 化成之类的东西,调了好几组自己编的样例,终于都过了 但是测完大样例之后就???这是啥?然后满脸问号地回去看题,发现可以在变化过得到的 l 中改,这只能重写了啊啊啊 加上中间以外离开好长时间了,已经到9:30了T2:守望先锋我理解应该是dij,由于最后做的这道题,时间已经不够调试了,就匆匆打了个SPFA,但应该还是有问题的(为什么我还是写不熟SPFAw(゚Д゚)w)T3:皇室战争应该是区间DP,最纠结的地方在.原创 2022-04-17 11:35:49 · 228 阅读 · 0 评论 -
分块初学笔记
守墓人注意#include<bits/stdc++.h>using namespace std;#define ll long longll q[200010],a[200010],sum[200010],sigma[200010];ll n,f,length;ll min(ll a,ll b){return a<b?a:b;}void change(int l,int r,int k){ for(int i=l;i<=min(r,q[l]*length).原创 2022-04-15 23:56:41 · 275 阅读 · 0 评论 -
对称二叉树
#include<bits/stdc++.h>using namespace std;string s;int main(){ //freopen("tree_c.in","r",stdin); //freopen("tree_c.out","w",stdout); cin>>s; for(int i=1;i<s.length();i+=2) { if((s[i]!='#'&& s[i+1]=='#') || (s[i+1]!='#'...原创 2022-04-12 20:48:00 · 328 阅读 · 0 评论 -
工程规划——差分约束
工程规划,一道标准的差分约束,数据给出方式就是两个点之间的价值小于某个常数。(以下部分内容学习自原创 2022-04-05 22:59:14 · 385 阅读 · 0 评论 -
公园遛狗(小 * 逛公园)
P4513 小白逛公园线段树求最大子段和,由于是动态的且n,m均高达1e5,因此想到线段树#include<bits/stdc++.h>using namespace std;#define ll long longconst int N=5000010;ll num[N],add[N];ll n,m;ll max(ll aa,ll bb){ return aa>bb?aa:bb; }struct TREE{ ll lx,rx,l,r,sum,ans;}.原创 2022-04-03 23:32:34 · 171 阅读 · 0 评论 -
树形DP入门(二叉苹果树+没有上司的舞会)
树形dp学习笔记 - _Lancy - 博客园二叉苹果树二叉苹果树没有上司的舞会二叉苹果树的处理可以说是非常模板了,正常容易联想到倒过来的数字三角形for(int i=n;i>=1;i--){ for(int j=1;j<=i;j++) { f[i][j]=max(f[i+1][j],f[i+1][j+1])+a[i][j]; }}printf("%d",f[1][1]);数字三角形中上一层的答案有下一层的左右两个转移来,二叉树上则是父节点的数值由其子节点转移...原创 2022-04-01 16:09:33 · 155 阅读 · 0 评论 -
3.31party
多重背包bz居然写错了(震惊.jpg)第一点是多重背包第三冲从0 开始啊喂第二,开二位数组自己跟自己比,为什么要f [ i ] [ j ] = max ( f [ i - 1] [ j ] ...........)呢?#include<bits/stdc++.h>using namespace std;int n,m,v[100010],w[100010],s[100010],f[510][6010];int main(){ freopen("party.in","r",st原创 2022-03-31 21:49:32 · 139 阅读 · 0 评论 -
拦截导弹<n方+n·logn>
今天做题才想起来[NOIP1999 普及组] 导弹拦截我还挂着红色的一百分~n*n的思路就是最长不降子序列,第二问还纯纯的贪心原创 2022-03-30 15:52:50 · 131 阅读 · 0 评论 -
单词查找树
在一本通上见过但是从来没上手写过,今天居然出现在pdf里(震惊.jpg)按之前我了解的思路就是用一个 sort 进行排序(计算差值),把前后两个字符串的长度差相加即可,真正写一次就觉得跟踹树完全没关系。不过做累加器的时候可以把两个串加一下,最后把差都加起来这个思路还是蛮不错的。#include <bits/stdc++.h>using namespace std;string s[10086];int n,len;int main (){ freopen("word.in"原创 2022-03-29 20:29:59 · 159 阅读 · 0 评论 -
圣战(纯代码,思路见3.24总结)
#include<bits/stdc++.h>using namespace std;const int N=500000+10;int n,m,head[N],k=1;int dfn[N],tag[N],cnt,tmp;//dfs搜索树零件 int vis[N],ans[N],tot;//calc二分图零件 struct edge{ int to,id,next;} e[N*2];void add_edge(int u,int v,int id){ e[++k]=(.原创 2022-03-25 07:55:33 · 178 阅读 · 0 评论 -
团队作业二题解集合
T1:[NOI2002] 银河英雄传说一道见过很多次的题,就是带权并查集,本题所求的不止是两个东西之间是否有关系,还要求两个东西之间有什么关系,即权重。size[i]表示第 i 条队列有多少艘飞船,d[i]表示iii号飞船的前面有多少艘飞船看起来没什么毛病不是吗>>>BUT有一个神奇的问题:没错那个问为什么的就是我,我不理解为什么等价的写法为啥就会错,改过来确确实实就AC了。还有就是记得过程量清零#include<bits/stdc++.h>using n.原创 2022-03-23 21:50:49 · 431 阅读 · 0 评论 -
3.22总结
一、deseq!!!数据范围!!!虽然说以前有一些题没有数据范围,但是现在它给了啊!!!总不能因为人家在后面就看不见吧 心心念念的数据范围终于有了我却错过了它(整整70ptsQAQ)再说事后想一想:根据逆序对总不能考n方的吧,那就是nlogn,那n的范围不就是1e5或1e6吗?不告诉范围也可以知道啊二、mason2^p的位数=log10(2^p)+1=p*log10(2)+1 万万没想到会在这里遇见它。其次我原本的打算是快速幂+高精度,但是标程的压位明显好很多: 先储存位数/10和%10..原创 2022-03-22 23:34:49 · 122 阅读 · 0 评论