- 博客(46)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [高级数据结构篇]企图速成++;
文章目录并查集参考文章:时间紧迫,不会记太详细。并查集Find函数,并查集的灵魂:作用:寻找祖宗节点,并且路径压缩。int find(int x){ if(x != p[x]) p[x] = find(p[x]); return p[x];}Merge函数合并两个点,其实不用单独写个函数,在需要的时候自己写下就好。int merge(int a, int b){ p[find(a)] = find(b);}带权并查集size[x] 表示集合大小, dis[x
2021-05-08 21:11:43
133
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 [积性函数、杜教筛、莫比乌斯函数入门]学习总结
文章目录什么是积性函数?狄利克雷卷积杜教筛公式参考文献:什么是积性函数?1.数论函数在数论上,算术函数(或称数论函数)指定义域为正整数、陪域为复数的函数,每个算术函数都可视为复数的序列。最重要的算术函数是积性及加性函数。算术函数的最重要操作为狄利克雷卷积,对于算术函数集,以它为乘法,一般函数加法为加法,可以得到一个阿贝尔环。2.积性函数积性函数指对于所有互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数。定理1.1:积性函数的和函数也是积性函数,如果f是积性函数,那么f的和
2021-05-02 19:07:12
381
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【数论速成计划】企图速成ing
忘掉种过的花,放弃理想吧。目录<定理、原理>1.唯一分解定理(算术基本定理2.素数定理<算法>1.欧几里得算法(辗转相除法)2.Eratpsthenes筛法(埃氏筛法)3.拓展欧几里得算法参考链接/书籍:<定理、原理>1.唯一分解定理(算术基本定理任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1a1P2a2P3a3......PnanN={P_1^{a_1}}{P_2^{a_2}}{P_3^{a_3}}......{P_.
2021-04-19 17:48:58
420
2
原创 Codeforces Round #799 (Div. 4)
看了题解,用的线段树…QAQ,我感觉完全可以不用那么麻烦。我的思路:每一个数如果想要和前面的连成一个区间,只需要看上一个这个数出现的位置。如果把两边连起来的贡献是大于1,那么就连起来,否则,就不和前面连起来,同时更新区间最大值,记录r,在结束后,倒着找l。时间复杂度的话,很容易证明,扫一遍 , 倒着找,大概就是线性的复杂度。...
2022-06-15 13:54:15
243
1
原创 P2257 YY的GCD【莫比乌斯反演】
P2257 YY的GCDhttps://www.luogu.com.cn/problem/P2257重学莫反*2.第一眼看过去, “这不是莫反sb题”,直接搞了个代码,然后T了:).算了下时间复杂度,我敲,发现这东西不好搞。通过自己的努力,搞了一下午,终于忍不住去看了题解。发现确实妙啊。暴力特别好搞。让我们随便推一下暴力的公式。∑in∑jm[gcd(i,j)==primes]∑p∈primes∑in∑jm[gcd(i,j)==p]∑_i^n∑_j^m[gcd(i , j) == pr
2022-04-28 20:05:12
361
原创 tmux & vim 操作
摘自AcWing,主要是每次切号比较麻烦,搬到自己博客里,侵权删除。tmux功能: (1) 分屏。 (2) 允许断开Terminal连接后,继续运行进程。结构: 一个tmux可以包含多个session,一个session可以包含多个window,一个window可以包含多个pane。 实例: tmux: session 0: window 0: pane .
2022-01-22 22:20:25
705
原创 Codeforces Round #766 (Div. 2) D - Not Adding【解题报告】
好骚的操作https://codeforces.com/contest/1627/problem/Dc=gcd(a,b)c = gcd(a , b)c=gcd(a,b)题目思路很简单,枚举每一个C,去看看存不存在他的两个倍数。但是被题解的操作惊住了,这段代码保证了如果有两个他的倍数,并且gcd(a, b)不存在,一定能加进去。 if(st[j]) best_gcd[i] = gcd(best_gcd[i] , j);#include .
2022-01-19 20:03:31
351
原创 Educational Codeforces Round 121 (Rated for Div. 2) C【解题报告】
比赛降智,还好url(偷笑**题目思路:**区间合并一下就ok了#include <bits/stdc++.h>#define int long long#define forn(i , n) for(int i = 0;i < n; i ++)using namespace std;int T;bool cmp(pair<int , int> a , pair<int , int> b){ if (a.first == b..
2022-01-18 17:08:53
387
原创 Codeforces Round #763 (Div. 2) Editorial C 【解题报告】
链接 :https://codeforces.com/contest/1623/problem/C题解: 二分答案即可。比较困扰我的是两个问题:1.怎么求出ddd。2.如何判断这个midmidmid的值是否合法。会不会出现,满足check,但是实际上不存在midmidmid的情况。第一个:intd=min(h[i],curh[i]−x)/3; int d = min(h[i], cur_h[i] - x) / 3;intd=min(h[i],curh[i]−x)/3;被题解的这个mi
2022-01-10 22:03:42
217
3
原创 Educational Codeforces Round 120 Editorial E【解题报告】
传送门学会了很多骚操作题目描述INPUT34 35 1 2 21101001011004 46 2 0 1010010010011001013 620 3 15010110000101111111OUTPUT3 1 22 3 4 13 1 4 5 2 6题目大意: 给你nnn个人每个人回答mmm个题目,随后给nnn个字符串,代表每一门有没有回答对。对于每个学生,老师有不同的期望值xix_ixi,每个人实际考∑impi∑_i^mp_i∑im
2022-01-09 15:45:41
348
原创 队列的基本操作
title: 队列的基本操作mathjax: truedate: 2021-10-28 20:53:24tags: “数据结构作业”description: wls队列的基本操作#include <stdio.h>#include <stdlib.h>#include <assert.h>// 队列的节点 struct Node{ int data; struct Node* next;};// 队首队尾指针 s.
2021-10-28 21:02:46
160
原创 数据结构作业代码留存
仅供参考,严禁抄袭!!!有问题可在csdn评论,有空回目录仅供参考,严禁抄袭!!!第三次作业单链表的基本操作第四次作业n!递归n!非递归斐波那契递归斐波那契非递归栈的基本操作判读回文第三次作业单链表的基本操作/* Project: single linkeed list (数据结构 单链表) Date: 2021-10-7 09:26:57 Author: Frank Wang InitList(LinkList &L) 参数:单链表L 功能:初
2021-10-17 17:34:37
204
原创 21级第一次培训
21级第一次培训21 级第二次培训。目录21级第一次培训复习推荐软件课程复习1.scanf , printf2.数据类型.数据类型bool 布尔类型 0/1int intger(整型) 32 %dchar 字符型 %clong long 64 2 ^ 63 - 1 %lldfloat 浮点数/小数 %fdouble 双浮点 10^15 %lf**输入输出 cin , scanfcout , printf3.基本代码模板#include <iostre
2021-10-04 21:02:42
155
原创 【随缘更新】【数据结构作业-1】C语言实现完整的学生程序管理系统/三个子系统
老师让实现一个能有三个子系统的程序管理系统,决定记录下来过程,同时代码会同步更新在博客中,本篇代码转载请标明出处。最后更新:2021/9/7 11:30目录前言正篇注册/登陆账号的实现前言先看要求,要有:学生系统,老师系统,管理员系统。这个跟以往的不同,传统的我觉得是从老师视角看,同时老师也有管理员权限,对学生的成绩,信息进行操作。现在类似于把权利细分,我们不妨先思考下,各个部分的职能应该是什么?学生:注册/登陆账号修改自己的个人信息查看自己的成绩(但是不能查看自己的排名)老师.
2021-09-07 23:06:54
431
原创 【容斥原理】完全平方数 洛谷P4318
位卑未敢忘忧国,哪怕无人知我。一个序列为:不是完全平方数,且不是完全平方数的倍数,该序列从小到大排列,求第k个指是多少。简单分析下,答案很明显∑i=1ansμ(i)2=k∑_{i = 1} ^{ans}\mu(i)^2 = ki=1∑ansμ(i)2=k让ans最小就可以了。考虑杜教筛,T = 50 , 算着杜教筛可行。可惜忘记杜教筛了,改天学了补上。容斥原理做法:我们考虑下容斥原理:我们枚举每一个完全平方数的倍数,利用容斥原理去掉重复的就可以了。总共有nnn个数。我们先减.
2021-09-04 15:47:18
196
原创 【莫比乌斯反演】个人思考——关于problem b的三种推法。
最近刷莫反题目,刷着刷着,发现problem b这道题目可以用三种方法推出来,觉得记下来以后可以方便复习,也算巩固一下。problem b这类问题是:∑i=1n∑j=1m[gcd(i,j)=d]\sum_{i = 1} ^ n \sum_{j = 1}^m[gcd(i , j) = d]i=1∑nj=1∑m[gcd(i,j)=d]关于这个问题,我们再熟悉不过,答案是:∑d′=1min(nd,nd)μ(d′)[nd∗d′]∗[md∗d′]\sum_{d' = 1}^{min(\frac.
2021-09-03 13:49:09
143
原创 【综合数论/因子分解/分块/莫比乌斯反演/树状数组】HDU4947
HDU-4947题目链接:https://acm.hdu.edu.cn/showproblem.php?pid=4947队友刷数据结构发现的好题(指秃头)。题目大意是这样的,给你一串长为LLL的数组,有如下操作:1 n d v1 ~n~d~ v1 n d v,指gcd(x,n)=dgcd(x , n) = dgcd(x,n)=d的下标为xxx的axa_xax加上vvv222 xxx求∑1xai∑_1^x a_i∑1xai数
2021-09-02 10:40:04
88
原创 【莫比乌斯反演】约数个数和
日拱一卒,功不唐捐题目描述设 d(x)d(x)d(x) 为 xxx 的约数个数,给定 N,MN,MN,M,求∑i=1N∑j=1Md(ij)∑_{i=1}^N∑_{j=1}^Md(ij)i=1∑Nj=1∑Md(ij)输入格式输入多组测试数据。第一行,一个整数 T,表示测试数据的组数。接下来的 T 行,每行两个整数 N、M。原式等价于∑i=1N∑j=1Md(ij)=∑i=1n∑j=1m∑x∣j∑y∣j[(x,y)=1]∑_{i=1}^N∑_{j=1}^Md(ij) = ∑_{.
2021-08-19 10:56:11
157
原创 【容斥原理/莫比乌斯反演】破译密码
重学了一下莫反,感觉收获了好多。(原来你还记得自己学过莫反)原题链接:https://www.acwing.com/problem/content/217/题目描述:达达正在破解一段密码,他需要回答很多类似的问题:对于给定的整数 a,b 和 d,有多少正整数对 x,y,满足 x≤a,y≤b,并且 gcd(x,y)=d。作为达达的同学,达达希望得到你的帮助。我们分析一下,题目很明了,要求的就是gcd(x,y)=dgcd(x , y) = dgcd(x,y)=d的个数,转化一下:x′=x/d.
2021-08-17 21:23:24
274
1
原创 【期望DP】概率与数学期望学习/思维方式分析/绿豆蛙的归宿详解
大概想了两三天,这么笨大概是因为高中没有好好学习,整理了下,方便以后复习。让我们从一个题入手(绿豆蛙的归宿)题目描述给出张 nnn 个点 mmm 条边的有向无环图,起点为 111,终点为 nnn,每条边都有一个长度,并且从起点出发能够到达所有的点,所有的点也都能够到达终点。绿豆蛙从起点出发,走向终点。 到达每一个顶点时,如果该节点有 kkk 条出边,绿豆蛙可以选择任意一条边离开该点,并且走向每条边的概率为 1k\frac{1}{k}k1 现在绿豆蛙想知道,从起点走到终点的所经过的路径总长度期望.
2021-08-16 16:02:12
183
原创 【容斥原理】Devu和鲜花
Devu 有 N 个盒子,第 i 个盒子中有 Ai 枝花。同一个盒子内的花颜色相同,不同盒子内的花颜色不同。Devu 要从这些盒子中选出 M 枝花组成一束,求共有多少种方案。若两束花每种颜色的花的数量都相同,则认为这两束花是相同的方案。结果需对 109+7 取模之后方可输出。题目链接:https://www.acwing.com/problem/content/216/转化题目要求,也就是每个盒子都有aia_iai个花,想要从nnn个盒子中每个都任意选出xix_ixi个,组出mmm,也就.
2021-08-16 10:00:24
349
原创 【HPU树状数组入门】
树状数组(Binary Indexed Tree)Author: SkywalkerCreation time:2021/8/10 21:28Last update:2021/8/12 21:10文章目录树状数组(Binary Indexed Tree)情景引入前置知识树状数组练习题目参考资料情景引入在处理一段区间的和的时候,我们可以通过前缀和算法来提高运算效率,除去预处理,能做到每次询问o(1)o(1)o(1)算出,这个时间复杂度是极其优秀的,但是如果修改一个点后,再次询问一段区间的
2021-08-12 21:24:42
94
原创 快速傅立叶变换(FFT)
FFT作用:快速求两个多项式的乘积/卷积文章目录FFT前置知识复数(Complex)单位根离散傅立叶变换(Discrete Fourier Transform , DFT)快速傅立叶变换(Fast Fourier transform , FFT)**离散傅立叶逆变换(Inverse Discrete Fourier Transform , IDFT)**快速傅立叶逆变换(Inverse Fast Fourier transform,IFFT)蝴蝶变换例题前置知识多项式乘法(点表示法):用任意n
2021-08-04 10:35:54
346
原创 Trie树——字典树
Trie 树高效的存储和朝朝字符串集合的数据结构板子:int son[N][26] , cnt[N] , idx;void insert(char str[]){ int p = 0; for(int i = 0; str[i] ;i ++) { int u = str[i] - 'a'; if(!son[p][u]) son[p][u] = ++ idx; p = son[p][u]; } cnt[p] ++;}int query(char str[]){
2021-07-24 09:14:17
79
原创 最短Hamilton路径
题目链接:最短Hamilton路径解题思路:首先考虑的是暴力,如果暴力,那就是枚举每一种排列,也就是全排列,时间复杂度很不客观o(n∗n!)o(n * n !)o(n∗n!),这时候就可以状态压缩:即用一个数的二进制位来表示 此点经过或者不经过。位运算技巧(来自算法进阶指南):常用操作:取出第k位 :(n >> 1) & 1后k位 :n & ((1 << k) - 1)将第k位取反 :n xor (1 << k)在.
2021-07-15 20:36:30
74
原创 【线段树入门】+例题
文章目录基本原理和操作(栗题)AcWing 245. 你能回答这些问题吗参考文献基本原理和操作build(int u , int l , int r)建树,递归建法:u : 当前父节点l,r,当前建树区间。void build(int u , int l , int r){ // l == r ,到了叶子节点,那么直接构造return; if(l == r) { tr[u] = {l , r .....}; return ; } else
2021-05-11 21:39:27
116
原创 [刷遍紫书计划] 开坑啦~
决定从第五章开刷紫书,自己搭的博客虽然香,但是上传图片由于我太菜,所以弄的很麻烦…所以啦,在木有很强很强之前,自己搭的博客先扔了~CSDN还是香香的。目录算法竞赛入门经典(第 2 版)第五章第六章第七章第八章第九章第十章第十一章第十二章算法竞赛入门经典(第 2 版)第五章c ++ 和 STL 入门第六章数据结构基础第七章暴力求解法第八章高效算法设计第九章动态规划初步第十章数学概念与方法第十一章图论模型与算法第十二章高级专题...
2021-04-16 10:30:52
99
1
原创 “九韶杯”河科院程序设计协会第一届程序设计竞赛补题
我真傻,真的,填空题居然选择手推。目录ABCDEFGHIJKA//战斗吧!战斗吧!#include<bits/stdc++.h>#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#define mm(a, b) memset(a, b, sizeof(a))#define inf 0x3f3f3f3f#define lowbit(x) (x&(-x))using namespace std;.
2021-04-13 13:50:37
85
原创 关于:昨天H - 康托展开题目的探究。
51nod_3209 康托展开参考思路如下:但是上面说的太过粗略,接下来较为严谨的的分析下:题目中的totaltotaltotal指的是总排列数量:sum!sum!sum!是所有元素的排列组合的方式,除以每个元素所占的数量的阶乘,就是去除这个元素的重复所带来的多的排列的方式(高中知识)。得出: total = sum !/ cnt1 ! ····· 首先,要注意的是,一定可以除尽,为什么?从客观的角度想,sum!一定是大于后面的,并且一定含有后面的因子,但是这样想未免太过僵硬,不妨主主
2021-02-21 13:10:43
2136
5
原创 Dijkstra+Floyd【题解】
A - 最短路#include<bits/stdc++.h>#define fi first#define endl "\n"#define se second#define PI acos(-1)#define int long long#define inf 0x3f3f3f3f#define mm(a, b) memset(a, b, sizeof(a))#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie
2021-02-18 21:53:48
149
3
原创 最短路 and 最小生成数 and 二分图[AcWing学习记录]
目录最短路单源最短路朴素Dijkstra堆优化DijkstraBellman-Fordspfa多源汇最短路Floyd最短路单源最短路n 为点数, m为边数边权为正:朴素Dijkstra(n * n), 堆优化Dijstra算法(mlogn)。边权为负:Bellman-Ford(n * m),spfa(平均o(m),最坏nm)。朴素Dijkstra用于稠密图。m 和 n * n 一个级别。#include<bits/stdc++.h>/* ------------------
2021-02-17 14:23:48
1100
3
原创 补 : Codeforces Round #700 (Div. 2) A B
只做出了A,B。C本来蒙了一次,数据太弱给过了,就睡觉去了,早上起来C就没了,果然CF木有与运气。目录A. Yet Another String GameB-The Great HeroC. Searching Local MinimumA. Yet Another String Game题目思路: 如果是A的操作的话,尽量把字母变成a,如果原来是a,就变成b,B的操作的是把字母尽量变成z,如果没z,就变成y.原题目中的这三句话决定了策略。A string a is lexicographic.
2021-02-08 14:58:06
162
1
原创 补:2021牛客寒假算法基础集训营2
目录过的题目:D - Happy New Year!G - 糖果H - 数字串J - 加法和减法未过的题目:J - 序列的美观度过的题目:D - Happy New Year!题目链接: https://ac.nowcoder.com/acm/contest/9983/D题目思路: 签到题AC代码:#include<bits/stdc++.h>#define PI acos(-1)#define endl "\n"#define mm(a, b) memset(a, b, si
2021-02-06 15:39:38
119
原创 十六:关于N 和 O的讨论
N 和 O 属于典型的DFS(深度优先搜索)问题。先从 O 说起。O - 上台阶 V4题目思路:算出方法用: f[n] =f[n - 1] + f[n - 2] 在第 n 个台阶,方法数等于 n - 1 跳一步,n - 2 跳两步,公式还是很容易理解。那么 如果记录方案呢?拿 3 做例子:![在这里插入图片描述](https://img-blog.csdnimg.cn/20210204130319306.png?x-oss-process=image/watermark,type_ZmF.
2021-02-04 13:03:41
556
2
原创 补:2021牛客寒假算法基础集训营1
比赛跑路太早,一听题解就好气,所以以后跑路会慢些。QwQ代码参考了好多人,雨巨,大佬xxx,感谢。目录A 串B 括号C 红和蓝D 点一成零E 三棱锥之刻F 对答案一时爽G 好玩的数字游戏H 幂塔个位数的计算I 限制不互素对的排列J 一群小青蛙呱蹦呱蹦呱A 串题目链接:https://ac.nowcoder.com/acm/contest/9981/A题目思路:分析如图:AC代码 #include<iostream> using namespace std; con.
2021-02-02 22:38:56
301
1
原创 黑龙江农垦科技职业学院喜迎寒假多校联赛2(快乐ak场)(D题详解)
黑龙江农垦科技职业学院喜迎寒假多校联赛2(快乐ak场)D题详解从比赛到现在,终于算是想通了,记录一下。AC代码#include<iostream>using namespace std;typedef unsigned long long ull;const int N = 1e6 + 10;int n,m;ull a[N],l,r;bool check(ull mid){ ull sum = 0; ull cnt = 1; for(int i
2021-02-01 19:19:36
213
原创 背包问题总结【个人笔记】
侵删参考https://www.cnblogs.com/jbelial/articles/2116074.html目录01背包问题综合问题解决1.为什么01背包只用输出f[n][m]就可以,而不是遍历去找最大?01背包问题题目 :有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。分析:状态转移方程:f[i][j] = max(f[i - 1][j],f[i - 1][j - v[i]].
2021-01-29 17:36:10
126
原创 补: Codeforces Round #698 (Div. 2)
补: Codeforces Round #698 (Div. 2)喵喵喵,比赛太呆了!!!A题交错文件WA了一次,B题居然错在了一个小点上,错失了上大分的机会。QwQ,下次一定!文章目录补: Codeforces Round #698 (Div. 2)A - Nezzar and Colorful BallsB - Nezzar and Lucky NumberA - Nezzar and Colorful Balls求最长重复序列的长度。#include<bits/stdc++
2021-01-29 12:39:07
256
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人