Peter_Matthew的博客

线段树

数据结构
12int ls(int x){return x<<1;}int rs(int x){return x<<1|1;} 线段树1区间加减,区间查询 1void push_up(int x){ans[x]=ans[ls(x ...
查看全文

树状数组

数据结构
1234int lowbit(int x){ return x&(-x);} 树状数组1单点修改,区间查询。 12//需要先 add(i,a[i]); 123456void add(int x,long long d){ for(;x& ...
查看全文

kmp

字符串
字符串的经典类型有一项为单串匹配问题,这是指一个模式串在一个文本串中出现了多少次并求出出现的位置的一个问题。我们称模式串长为$n$,文本串长为$m$,那么有 理论复杂度下界$O(n+m)$。 考虑暴力每次在文本串中的每一个位置从前往后匹配尝试是否正确。 对于随机数据来说十分优秀,甚至有 ...
查看全文

gcd和exgcd

数学
gcdSTL库中有个template化的非递归版gcd,需要调用<alogorithm>使用方式是 1c=__gcd(a,b); 手写的话: 递归版: 1int gcd(int a,int b){return (!b)?a:gcd(b,a%b);} 非递归版: ...
查看全文

题解 T53818 【[退役欢乐赛Day2T3]谁是退役的人】

题解
LuoguT53818: Splay?Rotate?不不不!这些都是蒟蒻出题人吓唬做题人的道具而已。 实际上 rotate 操作在这里起到的作用等价于将节点的父节点染为相同颜色。原因就是在rotate(x)之后,x 的原父节点 y 的另一个儿子变成了 x 的后代,而 y 变成了 x 的后代。 ...
查看全文

题解 T53817 【[退役欢乐赛Day2T2]谁是最神的人】

题解
LuoguT53817: 可以观察到,数据范围贼小,所以首先,有耐性和心态好的人可以通过极其优秀的暴力过掉,然后呢,最强的那个人还考虑了状压DP的做法但我不会但数据小还能想到的办法当然是随机算法——模拟退火!但由于数据忒小了,其实写个真随机性算法每次随机数据排列分组贪心然后取最优即可 如果 ...
查看全文

题解 T53816 【[退役欢乐赛Day2T1]谁是最惨的人】

题解
LuoguT53816: 按思路模拟即可。 要点: 注意’\0’会影响字符串输出 后输入的字符串应覆盖前面输入的字符串 如果不知道机房最惨者的英文首字母缩写大写,可以查看博客的友链。 本题By:Peter_Matthew
查看全文

题解 T53815 【[退役欢乐赛Day1T3]高二退役的你】

题解
LuoguT53815: 在数据不水的情况下 显然可以用贪心处理,最后选取的子矩阵的和为题目a中一段难度和乘以题目b中一段难度和,我们可以贪心,处理在每一套题目中长度为l的难度和的最小值,这样可以保证在难度不超过C蒟蒻能力的情况下可以AC的题更多。 如果不知道机房中最蒟蒻的人的英文首字母缩 ...
查看全文

题解 T53814 【[退役欢乐赛Day1T2]高三吊打着你】

题解
LuoguT53814: 很显然,此题是一道搜索水题,适合于初入OI的萌新 法1:迭代加深,全局设置步数,dfs所有能到达的点若包含则输出当前步数(数据小于50) 法2:bfs (数据小于1000)两种方式跑,第一次跑到的一定最优 法2优化:若数据大于2000,我们考虑双向bfs 当然了,这 ...
查看全文

题解 T53813 【[退役欢乐赛Day1T1]高一机惨着你】

题解
LuoguT53813: 题意是在说:每次比较被机惨的两个人的话的长度。那么我们每次比较长度,第一个长则为bigger,第二个长则为less,同样长则为XD。 如果不知道机房最强机惨王的英文首字母缩写大写,可以查看博客的友链。 本题By:Peter_Matthew
查看全文
上一页 下一页