- 博客(91)
- 收藏
- 关注
原创 麦乐鸡定理
对于两个互质的正整数 a,b,最大的不能用 ax+by 所表示的正整数为 ab−a−b。其中 x,y 为非负整数。对于两个互质的正整数 a,b,不能用 ax+by(x,y 为非负整数)所表示的正整数恰好有。
2025-03-31 20:31:15
137
原创 隔板法的本质,球盒问题
一般隔板法要求每组元素个数至少为1,本质为多元方程正整数解个数问题。遇到带有其他约束条件时通过变换变为一般隔板法问题。遇到元素相同的分组问题可以考虑隔板法。隔板法的本质就是求x+y+z=n,的正整数解的个整数。
2025-03-15 17:33:07
231
原创 prev(it,n),next(it,n)n不能取负数
如果你在旧版本(C++98 或 C++03)编译时遇到。是 C++11 标准中引入的,位于。这样可以在旧版本 C++ 中模拟。未定义的错误,请升级到。
2025-03-12 21:16:22
162
原创 扫描线
对于每个顾客的差评区间,可以看作一条垂直于价格的线段,让后将价格当作一条扫描线。价格一定为ai,bi是最优的,感觉是差分前缀的一种应用方式。
2025-01-11 15:22:13
185
原创 积分赛(1)
发现每个分块区间内的数,与排好序的下标区间内的数相同:考虑维护两个容器,分别存排好序的数,和原数,当两个容器内的元素完全相同时,此时该区间即为一个合理的分块;emm找不到合适的两个容器,考虑用map一个容器去维护,排好序的数存入++,原数存入 - -, 如果该数的map为零则删除该数, 当两个区间的数完全相等时,map大小为0,即找到一ans++;
2024-10-22 22:17:21
231
原创 AtCoder Beginner Contest 373
二分这个人需要的票数x,现在这个人的票数now=a[i]+x,,二分找的小于等于这个票数的人的位置,如果不在后m个人中,则不能当选;如果在,我们需要统计从这人开始到第m个人,选票大于now需要的票数,剩余票是否能满足,需要注意,如果,这人原本就在后m个,我们需要分讨,减去这个原本的票数。
2024-10-08 21:18:19
357
原创 AtCoder Beginner Contest 372
正难则反,反着去思考发现,只需维护一个高度的单调栈即可,如果栈顶元素小于当前元素,将栈顶弹出,直到栈顶不小于当前元素,当前元素入栈,每个位置的答案,为在当前位置元素入栈前,栈的大小。先统计出原串中ABC的数量cnt,由于每次只修改一个字符,且该字符只会增加或减少一个ABC,所以可以检查每次操作是否破坏了ABC cnt--,是否增加了ABC cnt++;预处理出3的0~10次方的值,从大到小,找到第一个不大于m的数x,m-=x;并查集(+启发式合并)+维护每个根节点前十大的节点编号。
2024-09-25 17:55:00
480
原创 C++中数组可以开多大
开intint型变量的一维数组最多是3千万=3∗107,long long型1千5百万,char型1亿左右。以128MB为例,128M=131072KB=134217728字节。时/空限制:1s/64MB或 时/空限制:2s/128MB。long long=8字节。一般OI题的时空限制。
2024-09-20 18:48:42
826
原创 树状数组.
2. $u_1,u_2,\cdots,u_n$:表示第 $u_i$ 个元素被放进了 Black Box 里后就出现一个 `GET` 命令。- 对于 $100\%$ 的数据,$1 \leq n,m \leq 2 \times 10^{5},|a_i| \leq 2 \times 10^{9}$,保证 $u$ 序列单调不降。- `GET`:$i$ 加 $1$,然后输出 Black Box 中第 $i$ 小的数。第三行共 $n$ 个整数,从左至右第 $i$ 个整数为 $u_i$,用空格隔开。
2024-09-20 18:11:37
837
原创 next_permutation(全排列)
是 C++ 标准库中的一个算法,它用于重新排列给定范围内的元素,以便得到该范围内的下一个字典序排列。如果给定的排列已经是该范围内所有可能排列中的最后一个(即按字典序最大),则函数会将该范围重新排列为第一个排列(即按字典序最小),并返回。中的元素已经处于按字典序最大的排列,则调用后。中当前元素的下一个字典序排列,并直接修改。是一个支持随机访问迭代器的容器,如。分别是该容器起始和结束位置的迭代器。这里是一个简单的示例,展示了如何使用。如果成功找到下一个排列,则返回。将变为按字典序最小的排列。
2024-09-16 17:41:59
351
原创 AtCoder Beginner Contest 371
找到g i 与 h j 顶点的对应关系,枚举(1,..,n) 的全排列,计算每种排列对应的花费,取最小值.
2024-09-16 17:33:56
492
原创 vscode 设置
7. 现在,当你使用”Run Code”按钮或者按下快捷键`Ctrl + Alt + N`运行代码时,VSCode将会自动弹出Cmd窗口并显示输出结果。5. 然后找到”Run Code”按钮(绿色三角形按钮)所在的位置,点击右上角的设置按钮(齿轮图标),选择”默认设置”。2. 在设置页面的搜索栏中输入”External Terminal”,并点击”编辑”按钮以编辑用户设置。1. 打开VSCode并进入”文件”->”首选项”->”设置”,或者使用快捷键`Ctrl + ,`。
2024-09-14 16:39:27
1695
原创 Toyota Programming Contest 2024#9(AtCoder Beginner Contest 370)
Toyota Programming Contest 2024#9(AtCoder Beginner Contest 370)题解
2024-09-09 22:13:33
645
原创 字符串与整型互转
还允许你指定一个基数(radix),用于数字的转换。例如,如果你有一个十六进制字符串,并希望将其转换为。这个函数是C++11及以后版本中引入的,用于将字符串转换为。用于指示我们不关心转换过程中遇到的无效字符的起始位置。如果转换失败(比如,字符串不是有效的数字表示),类型转换的推荐方式,特别是在C++11及以后的版本中。异常(如果字符串为空或不含任何可转换的字符)或。表示我们想要从十六进制字符串进行转换。异常(如果转换的数值超出了。类型,可以使用标准库中的。在C++中,将字符串(是C++中处理字符串到。
2024-08-30 15:02:29
342
原创 逆元...
基本定义在一个集合中,对于某种运算(这里用*表示通用运算),如果对于任意的集合元素a和元素e进行运算,结果仍然是a本身,则称e为该运算下的单位元。例如,在加法运算中,单位元是0;在乘法运算中,单位元是1。如果在某种运算下,任意两个元素的运算结果等于单位元,则称这两个元素互为逆元。例如,在加法运算中,a的逆元是-a;在乘法运算中,非零实数a的逆元是a的倒数1/a。模乘的逆元。
2024-08-17 21:25:06
901
原创 二分,双指针
二分中位数x, check从第n个数开始向前枚举,s统计x=x,s++,否则看k是否大于0,如果大于,看让ai等于x的代价,如果代价= n-中位数前面数的个数 返回true.退出循环后返回false.
2024-08-13 12:48:45
204
原创 String
在C++中,string类的find成员函数用于查找子字符串或字符在字符串中首次出现的位置。如果找到了指定的子字符串或字符,find函数会返回该子字符串或字符首次出现的位置(位置索引从0开始计算);如果没有找到,则返回,这是一个特殊的常量,表示未找到的位置。假设你已经有了一个string对象s和一个要查找的字符串(或字符)x,使用s.find(x)的方式可以检查x是否在s中,并获取其位置。这里有几个例子来展示如何使用find。
2024-08-12 22:22:37
301
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人