分类:算法竞赛

这是整理的讲课材料,有些知识点仅有思路。基础常识进制转化十转其他:整数部分除2取余,逆序排列;小数部分乘2取整,顺序排列。其他转十其他转其他:用十进制做跳板、二转八和十六进制的特殊情况。机器码带符号数:最高位表示符号,0为正,1为负;其他表示数值。原码:符号位为0或1(正或负),数值不变。注意+0和-0不同。反码:正数与原码相同;负数符号位不变,其他按位取反。补码:正数与原码相同;负数符号位...
算法竞赛
Day -1上午在洛谷上看到了个结论题的帖子,就去做了几道,感觉还行。剩下的时间就看自己做过的题,还有打打月赛之类的比赛里面的简单题。(太菜了上午还跟徐妈扯了5min,终于成功把明早的集合时间从6:50改到7:10(我平时都是7:05才出寝室的说昨天还计划今天21:20就去跑,跑个8km,结果下雨了(rp++于是在这写游记日记。还是惯例 NOIP2020 RP++晚上从机房走的时候,想到这真...
算法竞赛
Day -N徐妈专门来通知我擦线过初赛了我:?71.5在ZJ都能过了,SC岂不是稳过然后才知道今年总共只有300人,70%就是210,分数线来到了惊人的71。【数据删除】还在沙河校区考,不过反正也在那考过。Day -7跟LJJ说了想停两天课,被毫不犹豫的答应了,让我到时候通知他一声就行。什么叫好班主任啊?(后仰Day -2开始停课。上午打了打板子,下午和高二大佬们打了场膜你赛,得了个大众分,...
算法竞赛
今天是2019.12.15,心情还是不好,但已经过去一个月了,感觉还是应该把这玩意了结了。先摆分数:$$95+60+0+32+12+55=254$$菜的真实。游记Day1自信满满去考,自信满满出来,回家去自测发现T1T2都爆了,T2甚至连个保底分都没有。大概说下我T2出的锅吧:我的做法是用个数组模拟栈,在退到上一层时计算贡献,但我忘记了清空最后一层。当时看出来了大样例3是链,但感觉大样例2挺...
算法竞赛 比赛-NOIp/CSP
最近都是各种校内模拟赛,好久没写题解了。题意题解用线段树维护列,每个线段树记录这个区间内:最左边一列每个方块所属的集合最右边所属的集合四联通颜色块个数,即答案合并时对中间两列遍历所有行,如果两块颜色相同就用并查集把两个集合给合并起来,并将答案 $-1$ 。#include<bits/stdc++.h> #define fi first #define se second #def...
题意挺简单的自己去看吧~题解因为有开闭两种区间,所以对每两个数中间也建一个点,总的点数即为 $2N$ 。维护一个长度为 $2N$ 的 $0/1$ 序列,支持区间覆盖,区间翻转操作。令 $T=[l,r]$ ($l,r$ 为新编的点):U T:覆盖 $[l,r]$ 为 $1$I T:覆盖 $[0,l-1],[r+1,2N]$ 为 $0$D T:覆盖 $[l,r]$ 为 $0$C T:翻转整个区间...
算法竞赛 数据结构-线段树
题意题解每个数有 $3$ 种状态,直接搜索 $O(3^{26})$ 会爆,但折半搜索的 $O(2\times 3^{13})$ 就可以。注意到第一次搜索需要保存两个值 $cnt$ 和 $sum$ ,表示用阶乘的次数以及当前的数。可以用 unordered map 来维护,把第一个值开在外面。#include<bits/stdc++.h> #define ll long long ...
算法竞赛 算法-搜索
题意给出一个 $n(\le 1000)$ 点 $m(\le 10^6)$ 边的有向图,求 $1\rightarrow n$ 的边权积最小的路径。题解因为需要松弛所以不能取模,如果直接乘起来又会爆。不过 $\log(a\times b)=\log(a)+\log(b)$ ,可以改为求边权为 $\log(w)$ 的最短路。在最短路过程中记录 $y$ 的上一个点 $lst[v]$ 以及两点之间的真...
算法竞赛 图论-最短/最长路
题意有 $n(\le 5\times 10^5)$ 个四维空间点,坐标为 $(x_i,y_i,z_i,q_i)$ 。要求点对 $(i,j)$ 满足:$$x_i-x_j=y_i-y_j=z_i-z_j=q_i-q_j$$求 $j-i$ 的最小值及 $i+j$ 的最大值。题解题意即要求两点的 $x-y,y-z,z-q$ 相等。直接拿个 map 就能水过去。#include<bits/std...
算法竞赛
题意有一个长为 $n(\le 10000)$ ,高为 $m(\le 1000)$ 的游戏场景。玩Flappy Bird,在位置 $i$ 点一下会上升 $x_i$ ,否则会下降 $y_i$ ,手速极快每秒可以点多下。有 $k$ 个位置有管道,其中空隙的范围为 $[L_i,H_i]$ 。可以从位置 $0$ 的任意高度出发,问至少要点几次才能到位置 $n$ ?如果无法到达,最多能跨过多少个管道?题...
题意给一个 $n(\le 5\times 10^5)$ 点 $m(\le 5\times 10^5)$ 边的有向无环图,求一个拓扑序满足拓扑序的前缀最大值最少/最多。题解最大的情况比较容易想到,从当前能走的点中选编号最小的点即可,用堆维护。至于最小的情况,直接选最大的点拓展会喜提46分。很容易想到这种方法的问题所在,如果很小的一个点连着一个很大的点,把这两个都选了有可能最优。考虑对贪心进行优...
题意有一棵 $n(\le 100004)$ 个点的树,从根节点出发。节点 $x$ 能放梅花,仅当其所有子节点 $y$ 上都放了 $w_y$ 朵梅花。对于 $\forall i\in [1,n]$ ,如果要在 $i$ 上放 $w_i$ 朵梅花,则至少需要在过程中准备多少梅花?题解可以发现对于节点 $x$ ,一定是按某种顺序遍历所有子节点 $y$ 放上梅花,而且不同的顺序得到的答案也不相同。考虑...
省略的程序头:#include<bits/stdc++.h> #define fi first #define se second #define ll long long #define mp make_pair #define ha 1000000007 #define ui unsigned int #define pii pair<int,int> #defi...
算法竞赛 比赛-Codeforces
题意有 $n(\le 100)$ 个软件可以安装,每个软件会占 $w_i$ 的磁盘空间,价值为 $v_i$ ,每个软件都有至多一个依赖。剩余磁盘空间为 $m(\le 500)$ ,问安装软件的价值最大值。题解环上的软件必须要全装才有收益,所以先缩点。然后把 $0$ 看成树根,并将它与无依赖的软件连边。剩下的就是标准的树形背包问题,只是注意当前枚举的软件一定会安装,否则无法安装子树上的软件。#...
语文阅读题题意有 $n(\le 4000)$ 对夫妻,还有 $m(\le 20000)$ 对此前的交往关系(都是在这 $2n$ 个人之间)。如果某对夫妻吵架,那么他们都会找此前交往的人复合,然后又一对夫妻被拆散……如果某对夫妻吵架,发生上述过程后可以组成新的婚姻关系,那么就称该婚姻不稳定;否则稳定。询问每个婚姻是否为稳定婚姻。题解先考虑吵架后丈夫的行为,可以发现关系的传递是 男 $\righ...
标签
其它-Firefox1 其它-pbds1 其它-pjax1 其它-Ubuntu1 其它-VSCode1 其它-网易云音乐1 动态规划52 动态规划-区间DP9 动态规划-单调队列优化DP5 动态规划-图上DP1 动态规划-斜率优化DP5 动态规划-树形DP16 动态规划-状压DP16 动态规划-线性DP10 动态规划-背包DP3 图论4 图论-LCA4 图论-Tarjan11 图论-二分图1 图论-割点3 图论-基环树1 图论-差分约束4 图论-强连通分量2 图论-最小环1 图论-最小生成树6 图论-最短/最长路19 图论-树上差分2 图论-树的直径4 图论-桥1 图论-缩点5 图论-负环4 字符串3 字符串-kmp2 思维题3 数学26 数学-bsgs2 数学-exgcd4 数学-gcd2 数学-中国剩余定理2 数学-卡特兰数1 数学-卢卡斯定理4 数学-快速幂4 数学-扩展中国剩余定理1 数学-扩展卢卡斯定理3 数学-矩阵5 数学-约数1 数学-组合数3 数学-质数1 数据结构-动态开点线段树1 数据结构-单调栈1 数据结构-单调队列2 数据结构-可持久化字典树2 数据结构-堆4 数据结构-字典树2 数据结构-并查集2 数据结构-栈1 数据结构-树状数组6 数据结构-树链剖分10 数据结构-线段树5 数据结构-队列1 比赛-Codeforces21 比赛-JX Round1 比赛-NOIp/CSP5 算法-KM算法1 算法-二分/三分12 算法-位运算1 算法-倍增4 算法-分块2 算法-分治3 算法-哈希2 算法-多叉树转二叉树2 算法-差分4 算法-悬线法1 算法-拓扑排序2 算法-排序3 算法-搜索21 算法-模拟5 算法-状态压缩4 算法-贪心10 算法-高精度3 问题-逆序对2 题目-一本通5 题目-网络流24题2