自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 教你如何篡改C++STL库,坑机房队友的时代到了

标题这里是引用`// An highlighted blockvar foo = 'bar';List item

2019-05-04 16:55:42 554 5

原创 C++批量修改文件系统

使用C++批量修改文件,匹配文件名,重命名

2022-12-07 20:49:27 624

原创 【模板】字符串

哈希 字符串匹配 https://loj.ac/problem/103#include<cstdio>//#include<iostream>#include<cstring>#define ULL unsigned long long//using namespace std;char s[1001000],st[1001000];ULL pow[1001000],sum[1001000],b=97;int main(){ pow[0]=1; for

2020-06-19 16:08:04 126

原创 【模板】图论

//dicnic https://www.luogu.com.cn/problem/P2740#include<cstdio>#include<algorithm>#include<cstring>#include<queue> #include<iostream>#define R register intusing namespace std;const int N=1500010;inline void in(R &amp

2020-06-19 16:07:53 132

原创 【模板】数论

FFT https://www.luogu.com.cn/problem/P3723#include<cstdio>#include<cmath>#include<algorithm>using namespace std;const double pi=acos(-1.0);const int N=401000;//int a[N],b[N],c[N<<1],rev[N<<3],limit;int a[N],b[N],c[N],

2020-06-19 16:07:38 124

原创 【模板】数据结构

一般用法:默一遍,提交代码,AC才过关LCT https://www.luogu.com.cn/problem/P1501重点:f[x]=c[y][0]=0;#include<bits/stdc++.h>#define R register unsigned int#define I inline void#define lc c[x][0]#define rc c[x][1]using namespace std;const int N=1e5+10,mod=51061;

2020-06-19 16:07:10 114

原创 [二分与三分]「一本通 1.2 练习 3」灯泡 「一本通 1.2 例 3」曲线]

[一本通 1.2 练习 3」灯泡简洁题意:已知灯的高度 H,人的高度h,灯到墙距D,求人的地上的+墙上的影子L最长题解:在人远离墙的过程中,有1.地上的影子先变长后变短,转折点为灯、人、墙角三点共线的时候2.墙上的影子变短。灯、人、墙角三点共线之后为0注意精读问题x#include<cstdio>double H,h,D,dd=1e-11;double check(double m){ double x=(D*h-m*H)/(H-h); double y=x*H/(D

2020-06-15 11:08:18 223

原创 [二分与三分]「一本通 1.2 例 1」愤怒的牛 「一本通 1.2 例 2」Best Cow Fences

[一本通 1.2 例 1」愤怒的牛简洁题意:在 nnn 个点中找 mmm 个点,使各点的最短距离最长题解:二分最短距离,查看能否符合#include<cstdio>#include<algorithm>using namespace std;int a[100100];int n,m;int check(int x){ int count=1,last=1; for(int i=2;i<=n;i++) { if(a[i]-a[last]>=

2020-06-14 09:30:01 169

原创 [数学期望] P1291 [SHOI2002]百事世界杯之旅

P1291 [SHOI2002]百事世界杯之旅简洁题意:每次从 nnn 种数中选出一个数求选出 nnn 个不同数的期望次数。题解:有两种理解方式:一、对每一步暴力极限求解。令 f[i]f[i]f[i] 表示已经买到 iii 个球星的期望购买次数。我们由 f[i]f[i]f[i] 推 f[i+1]f[i+1]f[i+1]下一次买到不同球星的概率是n−in\frac{n-i}{n}nn−i​下一次买不到,但下两次买到不同球星的概率是in×n−in\frac{i}{n} \times \fra

2020-06-13 16:35:39 243 2

原创 [贪心算法]「一本通 1.1 练习 5」钓鱼

[一本通 1.1 练习 5」钓鱼P1717 钓鱼简洁题意:有 nnn(<=100) 个湖,走到下一个湖要 5×ti5\times ti5×ti分钟 时间,钓鱼一次用 5 分钟时间,每个湖第一次钓 FiFiFi ,每钓一次鱼,下次钓的鱼数减少 DiDiDi,给定时间 HHH小时(<=20),求可钓最大鱼数.题解:这个太暴力了吧f [ i ] [ j ]f \ [\ i \ ] \ [ \ j \ ]f [&nb

2020-06-12 20:32:26 312

原创 P5305 [GXOI/GZOI2019]旧词

P5305 [GXOI/GZOI2019]旧词题解:50000个询问(x,y)50000个询问(x,y)50000个询问(x,y)∑i≤xdepth(lca(i,y))k\sum_{i≤x} depth(lca(i,y))^k∑i≤x​depth(lca(i,y))k若 k=1k=1k=1虽然询问区间可以按照 xxx 排序成升序,但是 yyy 不一样x,yx,yx,y 都是50000,同时枚举一定会炸\text{}\text{}有个提高组难度 的思想:dep[lca]=dep[lca]=

2020-06-12 19:54:52 148

原创 [贪心算法]「一本通 1.1 练习 4」家庭作业

「一本通 1.1 练习 4」家庭作业简洁题意:nnn 个作业有时限 tititi 与奖励 wiwiwi,若在限时内完成获得奖励。请求出 能获得的最大奖励。题解:这道题就是【一本通 1.1 例 5」智力大冲浪 的并查集优化连续的 一段被用过的时间归入一个并查集,一次跳一个集,直到找到空位csp-s2019 day1T2括号树 用上了这个优化我好想是自己想出来的?让 l[i]l[i]l[i] 记录这个点所属并查集最左边的点的左边。l[i]l[i]l[i] 一定是空白的 ,不然已被加入同一个并

2020-06-11 22:12:33 444

原创 [贪心算法]「一本通 1.1 练习 2」数列分段 / [二分与三分]「一本通 1.2 练习 1」数列分段 II

P1181 数列分段Section I luogu[一本通 1.1 练习 2」数列分段简洁题意:给n个数分组,每组和不超过m,求最小组数题解:从头开始枚,能塞进一组就塞#include<cstdio>/*从前开始尽可能让每组分满 假设第1组有a,a+b<=m则化为一组,a+b>m则不化 .若a+b<=m , b+c<=m 但是 a+b+c>m , 那当然选a,b一组,因为c+d<b+c+d */int main(){ int n,m

2020-06-11 21:46:16 253

原创 [贪心算法]「一本通 1.1 练习 1」数列极差

「一本通 1.1 练习 1」数列极差简洁题意:n个数,每次把两个数a,b换成 a×b+1a\times b+1a×b+1。最后求出的值中,最大值与最小值的差题解:最小值:sort一遍,每次找最大的两个数乘(最大的两个数乘还是最大)最大值:每次找最小的两个数乘(用堆维护)乘的次数越多,总和越大,所以最大的数要留到后面#include<queue>#include<cstdio>#include<algorithm>using namespace std;

2020-06-11 21:33:30 187

原创 [贪心算法]「一本通 1.1 例 5」智力大冲浪

[一本通 1.1 例 5」智力大冲浪P1230 智力大冲浪luogu简洁题意:nnn(<=500)个任务有时限 tititi 与罚款 wiwiwi,初始奖励为mmm,任务若没在限时内完成要从奖励扣下罚款。请安排任务顺序 求出 能获得最大奖励的顺序 与 最大奖励。题解:由于每项任务的范围是 [1,ti][1,t_i][1,ti​]使罚款降序,把任务在范围内从后往前按排,尽量减少冲突,留下更多空间。暴力O(n2)O(n^2)O(n2)安排不下直接扔到最后面//完成一个的时间相等,从最大罚

2020-06-11 21:27:22 582

原创 [贪心算法]「一本通 1.1 例 3」喷水装置

「一本通 1.1 例 3」喷水装置简洁题意:给一个矩阵,有n个圆心在宽垂直平分线上的圆,问覆盖矩阵的最少圆数题解:圆显然能转化成线段l=c−sqrt(r2−(k/2)2),r=c+sqrt(r2−(k/2)2)l=c-sqrt(r^2-(k/2)^2),r=c+sqrt(r^2-(k/2)^2)l=c−sqrt(r2−(k/2)2),r=c+sqrt(r2−(k/2)2)然后就是这道题啦#include<cstdio>#include<cmath>#include

2020-06-11 20:32:21 144

原创 [贪心算法]「一本通 1.1 例 2」种树

P1250 种树luogu「一本通 1.1 例 2」种树简洁题意:给定h(<=5000)个可覆盖区间 (区间范围3×1043 \times10^43×104) ,每个单位可种一树,每个区间需种够 aia_iai​ 棵树,求最少树数题解 :贪心,按右端点升序排序,尽量把树在范围内从后往前种,这样就更可能被包含在后面的区间里。#include<cstdio>#include<cstring>#include<algorithm>using namespa

2020-06-11 20:20:17 336

原创 [贪心算法]「一本通 1.1 例 1」活动安排 「一本通 1.1 练习 3」线段

#10000. 「一本通 1.1 例 1」活动安排简洁题意:给定n个区间,求最多互不覆盖区间数题解:贪心,使结束时间(右端点)升序,能加就加,尽可能在ans相同情况下剩下更大空间。#include<cstdio>#include<algorithm>using namespace std;struct node{int s,e;}a[1010];bool cmp(node x,node y){ return x.e<y.e; }int main(){ int

2020-06-11 20:03:34 166

原创 [卷积系列] P3338 [ZJOI2014]力

P3338 [ZJOI2014]力Ej=Fjqj=∑i=1j−1qi(i−j)2−∑i=j+1nqi(i−j)2E_j= \frac{F_{j}}{q_{j}} =\sum_{i=1}^{j-1} \frac{q_{i}}{(i-j)^2}-\sum_{i=j+1}^{n} \frac{q_{i}}{(i-j)^2}Ej​=qj​Fj​​=∑i=1j−1​(i−j)2qi​​−∑i=j+1n​(i−j)2qi​​思想一: 只要是能在时间范围内弄出来的函数,都可以直接转令f(i)=1i2令f(i)=\f

2020-06-11 19:40:03 126

原创 [卷积系列] P3723 [AH2017/HNOI2017]礼物

P3723 [AH2017/HNOI2017]礼物性质:给一个手环加 相当于给另一个手环减由于 m<=100m<=100m<=100 所以令增加量为 ccc(可正可负), c∈[−m,m]c∈ [-m,m]c∈[−m,m]设 一数列为 aaa ,另一列旋转以后的数列为bbb , 那么费用为:∑i=1n(ai+c−bi)2\sum_{i=1}^n\left(a_i+c-b_i\right)^2∑i=1n​(ai​+c−bi​)2我们把第i项拿出来拆开,得到:(ai+c−bi)2=

2020-06-11 16:37:00 178

原创 [卷积系列] [P3702 [SDOI2017]序列计数]

P3702 [SDOI2017]序列计数题目:求 满足下列要求的序列个数:1.由不超过m的正整数构成的2.长度为n,而且这n个数的和是p的倍数。3.n个数中,至少有一个数是质数。不考虑排列n<=109n<=10^9n<=109 , m<=2×107m<=2\times 10^7m<=2×107 , p<=100p<=100p<=100题解:这题O(nm)O(n^m)O(nm)的暴搜绝对超时,所以就要从p入手。然后思考怎么是p的倍数,

2020-06-11 10:14:13 175

原创 [6题大章] 莫队、带修莫队、树上莫队学习笔记

大佬ouuan学习笔记:莫队、带修莫队、树上莫队详解这个写的很好,有适用范围 与 算法思想      \text{ \ \ \ \ }      普通莫队时间复杂度证明:左端点都在同一个n\sqrt{n}n​内左端点最多移O(mn)O(m\sqrt{n})O(mn​), 右端点升序排序,对于每一块最多移到底,即O(nn)O(n\sqrt{n})O(nn​)总复杂度O((m+

2020-06-10 20:40:36 209

原创 「GXOI / GZOI 2019」逼死强迫症

题目传送门luogu题目传送门loj题目描述ITX351 要铺一条 2×N2 \times N2×N的路,为此他购买了 N块 2×12 \times 12×1的方砖。可是其中一块砖在运送的过程中从中间裂开了,变成了两块 1×11 \times 11×1的砖块!ITX351 由此产生了一个邪恶的想法:他想要在这条路上故意把两块 1×11 \times 11×1的砖块分开铺,不让两块砖有相邻的边,其他砖块可以随意铺,直到整条路铺满。这样一定可以逼死自身强迫症 sea5!也许下面的剧情你已经猜到了——他

2020-06-09 16:27:08 234

原创 单调队列 && 尺取法

单调队列1.一个可以从队头、队尾出队的队列。队列里的值具有单调性。   \text{ \ \ }   例题1    \text{ \ \ }    P1886 滑动窗口长度为n的序列求所有长度为m的区间中的 权值和最大的区间 的权值。某些题中具有的性质:2.区间...

2019-09-21 17:22:59 202

原创 暑假集训总结

       {\text{ \ \ \ \ \ \ }}       一句话概括:这个暑假学的算法比我三年学的都要多。       {\text{ \ \ \ \ \ \ }}&nbsp...

2019-09-17 11:34:22 68

原创 线性基(线性空间) - [JLOI2015]装备购买

上定义:       \text{ \ \ \ \ \ }       这类问题一般会给出向量计算的方式(例如向量加法a+b,或者标量乘法k*a (其中k是标量,a是向量))      &nb...

2019-09-16 10:54:37 127

原创 差分约束系统-Southwestern Europe 2002 Intervals

题目传送门:https://loj.ac/problem/1008755%的做法:可以用贪心,把区按r排序升序,每次把灯铺在最右边可以满足贪心。 (暴力从右往左过一遍)100%的做法:贪心+并查集优化 每个数插入时加入一个并查集,并查集记录l端点,下次再来直接跳掉时间复杂度O(nlog(n))差分约束系统这是一种通过 最短路、最长路 来求 N元一次不等式组解集 的算法。假设 有一...

2019-09-16 10:51:33 270

原创 试除法分解质因数

试除法分解质因数实现:       {\\ \ \ \ \ \ \ \ }       枚举2~N\sqrt{\text{N}}N​中的质数d\text{d}d,如果N\text{N}N能被d\text{d}d整除,则从N\text{N}N中将所有因子d\...

2019-05-09 13:39:53 936

原创 关于wly_sh

你看到这个题目时,是不是以为我要告诉你们答案啦,恭喜你答错啦。先挂个链接:https://blog.csdn.net/zsyz_ZZY/article/details/89919309然后,我是来“开战”的。       \text{ \ \ \ \ \ \ }     &...

2019-05-08 17:27:52 291 7

原创 线性筛素数

证明:       {\\ \ \ \ \ \ \ \ }       埃氏筛选法时将质数的倍数标记,但有合数被标记多次,所以还能优化。       {\\ \ \ \ \ \ \ \ ...

2019-05-08 14:15:53 101

原创 电路维修-双端队列算法实现

题目传送门:https://www.luogu.org/problemnew/show/P2243解题思路:     \text{ \ \ \ \ }     判断有无解不用说了。     \text{ \ \ \ \ } &nbs...

2019-05-06 17:46:06 233

原创 2019.4集训总结

这段时间的主要目的是提前学习高中的知识,做一个衔接。那就先讲讲高中课程。高中课程减少了不少繁杂的要死记硬背的部分,加大了理解思考的部分,这让我这个理思男非常爽。物理和数学课本上的内容非常弱,《导学案》和《赢在微点》打开了思维,要跟紧老师思维和灵活性广泛性的思维。对于语文,老师强调了积累,对文言文词语的积累和议论文题材技术的积累。 再讲讲信息学,对图论、树的研究进一步加深,对...

2019-05-06 12:45:14 99

原创 第k短路 Remmarguts' Date-Astar算法实现

#include<cstdio>#include<queue>using namespace std;int f[1010],first1[1010],first2[1010],len1=0,len2=0,n,m,k;struct bian1{int y,gg,c;}a[200100];struct bian2{int y,gg,c;}b[200100];//...

2019-05-05 13:56:05 110

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除