08 2020 档案
摘要:点击跳转题面,获得更好的体验 题面简述 给定你一个正整数数列,每个数都在之间, 可以对这列数进行两种操作 1.添加操作:向序列中添加一个数变成n+1 2.询问操作,询问这个序列中最后L个数中的最大的数是多少 单点修改,区间查询最大值,我们可以使用线段树来进行维护 每个
阅读全文
摘要:点击跳转 ###区间dp问题 有n个集合,第i个集合记为Si,集合按环状排列,即第i+1个集合右边是第ii个集合,第n个集合右边是第ii个集合。 一开始每个集合里只有一个数,每次你可以选择两个相邻的集合S,T然后合并成S∪T,之后你可以获得收益|S|×|T|,其中|S|表示集合S的元素个数。 你需要
阅读全文
摘要:###第一部分思考过程 一般写二分的思考顺序是这样的:首先通过题目背景和check(mid)函数的逻辑,判断答案落在左半区间还是右半区间。 左右半区间的划分方式一共有两种: 中点mid属于左半区间,则左半区间是[l, mid],右半区间是[mid+1, r],更新方式是r = mid;或者 l =
阅读全文
摘要:支持两个操作,插入和查询; #include<bits/stdc++.h> using namespace std; const int N=100100; int son[N][26]; int cnt[N]; int idx; char op[2]; char str[N]; void inse
阅读全文
摘要:题目描述 静态维护区间最大值与最小值的差 样例 输入 6 3 1 7 3 4 2 5 1 5 4 6 2 2 输出 6 3 0 思路 我们可以分别维护区间最大值,区间的最小值, 分别记为 注意 查询的时候右区间要记得+1,否则右面的那个区间可能会越界
阅读全文
摘要:###题意 给定p,q,b,问p,q是否表示成b进制下的有限小数位 数据范围 ###思路 对于约分后的p/q。我们只关心1/q是否能够在b进制下表示为有限表现即可 把1/q,换成小数形式,例如1/8=0.125,像整数转换进制一样,小数转换进制也是不断地除以基底,而小
阅读全文
摘要:祝宁AKIOI ###流水账 看数据范围真的很重要,一开始还想模拟一下的,但是看到数据范围,果断放弃,数据范围为 ###简化一下题意 题目意思就是求 其实两个连续数的GCD就是1,我们可以用辗转相除法证明一
阅读全文
摘要:祝宁AKIOI 注意 1.n<=1e15,所以循环i要开long long 2.注意循环跳出条件 #include<bits/stdc++.h> using namespace std; long long num[20000000]; long long cnt; int main() { lon
阅读全文
摘要:控制符 说明 %d 按照十进制整型数据的实际长度输出 %ld 输出长整型 %md m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若大于 m,则按实际位数输出。 %u 输出无符号整型(unsigned)。输出无符号整型时也可以用 %d,这时是将无符号转换成有符号数,然后输出。但编
阅读全文
摘要:博弈论 ##oi中的博弈论 oi中的博弈论主要研究博弈游戏,本质上是平等组合游戏 什么是“平等组合游戏” 两人游戏 有一个状态集,通常是有限的 规定哪些状态的转移是允许的 所有的规定对两个人来说是一样的 两个人轮流走步 有一个终止状态,到达终止状态后游戏即告终止 游戏可以在有限的步内终止 ##开头及
阅读全文
摘要:fabs()和abs()区别 相同点: 1.都是获取绝对值 2.头文件都需调用#include或者是<math.h> 不同点: 函数名: abs 功 能: 求整数的绝对值 用 法: int abs(int i); 返回的是|x|的值 #include<bits/stdc++.h> using nam
阅读全文
摘要:博弈的王道——『Sprague-Grundy函数和Sprague-Grundy定理』 SG函数: 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0,1,2,4}=3、mex{2,3,5}=0、mex=0。
阅读全文