自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第十三届蓝桥杯大赛软件赛省赛C/C++类B组

Python写个循环遍历判断除法每个点两边最大距离随便写的,做错了#include<iostream>#include<algorithm>#include<cmath>using namespace std;#define int long long#define p 1000000007int n;int lena,lenb;int a[100010], b[100010];signed main(){ cin>&..

2022-04-10 11:53:59 1662

原创 2021第十二届蓝桥杯B组C/C++省赛J题括号序列

压轴题要比前面的简单。。。。DP[i][j]为第处理到i位时前面有j个没有匹配(多余)的左括号的情况

2021-04-18 15:43:26 1625 1

原创 四级成绩查询

学信接口import randomimport socketimport structimport requestsfrom bs4 import BeautifulSoupimport threadinghead = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'

2021-02-26 21:46:42 215

原创 Python淘宝比价定向爬虫

import requestsimport rehead={ 'cookie': 'enc=' 'x5sec=' , 'user-agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N)'}def getHTMLText(url): try: r=requests.get(url,timeout=30,headers=head) r.raise

2021-02-21 18:04:34 439

原创 python爬取最好大学网排名实例代码

import bs4import requestsfrom bs4 import BeautifulSoupdef getHIMLText(url): try: r=requests.get(url,timeout=30) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: return ""def fil

2021-02-20 19:25:29 254 1

原创 逆元

作用:将除法转变为乘法费马小定理:若p是质数,则对于任意整数a,有ap≡a(mod p)即ap−1≡1(mod p)a∗ap−2≡1(mod p)意义为a∗ap−2mod p=1 mod p那么x/a(mod p)即x/a∗a∗ap−2(mod p)若p是质数,则对于任意整数a,有a^p \equiv a(mod \ p) \\即a^{p-1} \equiv 1(mod \ p)\\a*a^{p-2} \equiv 1(

2020-05-14 16:54:19 150

原创 欧拉回路

欧拉路:从起点到终点不重不漏的走过每一条边的路欧拉回路:欧拉路的终点是起点欧拉图:存在欧拉回路的图即欧拉图欧拉图的判定:一张无向图为欧拉图,当且仅当无向图连通,且每个点的度数都是偶数欧拉图中每个结点为偶数度数,即只要到达一个结点,必然存在一条尚未走过的边可以离开该结点反过来依然成立,每个点度数为偶数的连通图必然存在欧拉回路欧拉路的存在性判定:一张无向图中存在欧拉路,当且仅当无向...

2020-05-07 21:31:18 380

原创 洛谷P3327 [SDOI2015]约数个数和

如果不知道莫比乌斯 这里有我的超精简版入门Mobius记录我初学莫比乌斯做了整整一天还迷迷糊糊题目简述:求∑i=1n∑​j=1m​d(ij)d(ij)为i∗j的约数∑_{i=1}^n∑_{​j=1}^m​d(ij)\\d(ij)为i*j的约数i=1∑n​​j=1∑m​​d(ij)d(ij)为i∗j的约数(多组数据)必要性质:​d(ij)=∑x∣i∑y∣jgcd(x,y)=1​d(ij)=...

2020-05-05 21:36:02 210

原创 Mobius 莫比乌斯

Mobius函数:u(n)={1n=10n分解质因数后有指数>1(−1)kk个指数为1的质因子 u(n)=\left\{\begin{array}{rcl}1 & & n=1\\0 & & n分解质因数后有指数>1\\(-1)^k & &k个指数为1的质因子\\\end{...

2020-05-05 14:30:09 307

原创 关于约数

例题定理 1:gcd(a,b)∗lcm(a,b)=a∗bgcd(a,b)*lcm(a,b)=a*bgcd(a,b)∗lcm(a,b)=a∗b定理 2(更相减损术):a>=b,gcd(a,b)=gcd(b,a−b)=gcd(a,a−b)a>=b,gcd(a,b)=gcd(b,a-b)=gcd(a,a-b)a>=b,gcd(a,b)=gcd(b,a−b)=gcd(a,a−b)...

2020-04-27 15:06:15 165

原创 BabyStepGiantStep(BSGS)大步小步算法

求解于形似: Ax≡B(modP)A^x≡B(mod P)Ax≡B(modP)此类问题步骤:x替换为i∗m−ji*m-ji∗m−j(mmm为sqrt(P)sqrt(P)sqrt(P)向上取整)移项为Ai∗m≡B∗Aj(modP)A^{i*m}≡B*A^j(mod P)Ai∗m≡B∗Aj(modP)从0−m0-m0−m枚举B∗AjB*A^jB∗Aj的值并哈希存储从1−m1-m1−m枚A...

2020-04-25 15:35:27 251

原创 网络流费用流模板

费用流#include<iostream>#include<algorithm>#include<cstring>#include<queue>using namespace std;#define N 100010int n,m,s,t;int head[N],nex[N],e[N],w[N],cost[N],tot;int d[...

2020-04-24 15:01:36 162

原创 树链剖分(轻重树)模板

例题#include<iostream>#include<algorithm>using namespace std;#define N 200010int n,m,r,mod;int head[N],nex[N],e[N],w[N],tot;int dep[N],fa[N],siz[N],son[N],id[N],wt[N],top[N];int cnt,...

2020-04-17 16:10:34 315

原创 CF1301E Nanosoft

题目链接第一印象就是我不会做这道题第一印象就是DP,然而并没有好的想法。最终看好兄弟们的题解才知道如何dp我太菜了88888先针对每一个数字求出数组二维前缀和(即每一个字母在(1,1)(1,1)(1,1)到(i,j)(i,j)(i,j)出现的次数)设$f[i][j][k]$表示以i,j为右下角,边长为k的区域内最合格区域的边长那么状态转移方程为:f[i][j][k]=max(f[i−...

2020-04-14 20:42:46 188

原创 P3626 [APIO2009]会议中心

题目链接首先需要知道答案的性质如果一段区间可以成为答案,那么他在答案中左面最近区间的右边界r和右面最近区间左边界l之间满足r+1->l-1#include<iostream>#include<algorithm>#include<set>using namespace std;#define N 200010#define INF 0x3...

2020-04-12 11:32:28 195

原创 吉如一线段树

例题#include<iostream>#include<cstring>#include<algorithm>using namespace std;#define N 550010#define ll long long#define INF 0x3f3f3f3fstruct tree{ int l,r; int mx;//区...

2020-04-10 13:59:28 776

原创 POJ2195 Going Home

二分图带权最大匹配模板题我们可以很轻松的想到每一个人到每一个房子之间只有一条最短路径,也就是每一个人到每一个房子之间有一条边,且每一个人都要走一条边,即二分图最大匹配,又要求最短路径,就是每个边加上权值,也就是二分图带权最大匹配我们用费用流解决在起点到人之间连边,人到房子之间连边,房子到汇点之间连边即可#include<iostream>#include<algorit...

2020-04-02 20:24:46 278

原创 拓展欧几里得算法

斐蜀定理:ax+by=c存在整数解的充分必要条件是 c为gcd(a,b)的倍数其他定理:gcd(a,b)=gcd(b,a%b);如何递归的求xy呢?设x,y和x1,y1是两组解,且满足:由 ax+by=gcd(a,b)bx1+(a%b)y1=gcd(b,a%b)得 ax+by=b*x1+(a%b)*y1设k=a/b,r=a%b,则r=a-kb,代入上式得ax+by=bx1+(a...

2020-04-02 15:47:15 140

原创 网络最大流(最大费)中的反向边

反向边的含义就是 这一部分流可以退回去 如果走反向边的话,这一部分反向边中的流就要分配给其他地方因此,费用w在反向边中取反储存,因为有借有还...

2020-04-01 18:04:34 497

原创 P6104 [EER2]相同的数字

题目#include<iostream>#include<algorithm>#include<cstring>#include<vector>using namespace std;#define N 100010const int M=1<<17,P=1e7+20;int n,q,t,c1,c2,m;int a[N]...

2020-04-01 09:46:36 236

原创 欧拉线性筛

//证明:如果i*vec[j]=a,i%vec[j]=0,那么i*vec[j+1]>i*vec[j],//可换为 t=I/vec[j],t*vec[j]*vec[j+1]=t*vec[j+1]*vec[j],//那么t*vec[j+1]会在将来的i中出现,就会重复ios::sync_with_stdio(false);cin.tie(0);for(int i=2;i<P;i+...

2020-04-01 09:35:33 161

原创 P6198 [EER1]单调栈

题目链接#include<iostream>#include<vector>using namespace std;#define N 1000010int n;int a[N],ans[N],tot;vector<int>vec[N],t;//每个1的出现意味着单调栈空了一次,所以这些小序列一定是互不影响的。//然后每个小序列在考虑2 ...

2020-03-31 20:55:02 286

原创 P1525 关押罪犯

题目链接思路:并查集 用i+n来代表i的敌人的集体进行f数组状态转移这样的话I的敌人都会被转移到一个集体之中,如果中间有人冲突的话,那么就直接输出就好了#include<iostream>#include<algorithm>#include<cstring>using namespace std;#define N 100010int f[N]...

2020-03-30 15:52:49 174

原创 tarjan有向图缩点

void tarjan(int x){ low[x]=dfn[x]=++num; s[++top]=x; v[x]=1; for(int i=head[x];i;i=nex[i]){ int y=e[i]; if(!dfn[y]){ tarjan(y); low[x]=min(low[x...

2020-03-16 21:06:59 187

原创 割点判定法则 tarjan搜索割点 求v-DCC 割点

如果以x为根的搜索子树中存在一个 dfn[x]<=low[y] (若x为根则需两个或以上) 则x为割点#include<iostream>using namespace std;const int N =10010;int head[N],nex[N<<1],e[N<<1],tot;int dfn[N],low[N],n,m,num,root;...

2020-03-16 12:29:03 387

原创 割边判定法则 搜索桥与求e-DCC(边双连通分量) 缩点

若(x,y)是桥,当且仅当 y是x的子节点,且dfn[x]<low[y]#include<iostream>using namespace std;const int N =10010;int head[N],nex[N<<1],e[N<<1],tot;int dfn[N],low[N],n,m,num;bool bridge[N<&lt...

2020-03-16 09:30:07 268

原创 LCA最近公共祖先模板

#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<queue>using namespace std;#define N 100010int n,m,t;int head[N],nex[N<<1],w[N&...

2020-03-12 16:53:20 117

原创 树的直径的两种求法

1.dp (类似点分治)无法求出详细路径点,只能求出长度d[x]代表以x为根的子树能到达的最远距离void dp(int x){ v[x]=1; for(int i=head[x];i;i=nex[i]){ int y=e[i]; if(v[y]) continue; dp(y); ans=max(ans,d[x]...

2020-03-12 14:50:54 367

原创 POJ1734.Cleaning Shifts

利用Floyd的性质:即循环到k时,d[i][j] (I<k,j<k)在比k小的点内已到达最短距离 在枚举k的同时 k也是我们分切环的点,d[i][j]+a[i][k]+a[k][j]因为d[I][j]必然不经过k,所以a[I][k]+a[k][j]必然是另外一条到达j的路径,同时我们也保证了d[i][j]为I->j的最短距离我们也可以这样理解:枚举到最优路径的最大点k的...

2020-03-09 14:40:00 102

原创 费用提前计算思想

例题:Acwing300.任务安排1对于每一段当前的延迟所作用的后效来说,我们只需要在dp当前的过程中加上后效(原因:对于每一个选择来说,后效加与否并不影响他们的排序)...

2020-02-27 17:09:30 320

原创 AcWing276. I-区域 (线性DP)

在 N×M 的矩阵中,每个格子有一个权值,要求寻找一个包含 K 个格子的凸连通块(连通块中间没有空缺,并且轮廓是凸的),使这个连通块中的格子的权值和最大。注意:凸连通块是指:连续的若干行,每行的左端点列号先递减、后递增,右端点列号先递增、后递减。求出这个最大的权值和,并给出连通块的具体方案,输出任意一种方案即可。输入格式第一行包含三个整数N,M和K。接下来N行每行M个整数,表示N*M的矩...

2020-02-13 20:33:46 278

原创 最佳优先搜索与A* BFS 与IDA* DFS

最佳优先搜索:用优先队列根据权值优先原则每次处理已到达的路径最短的点并进行拓展,时间复杂度达到(n+m)log(n+m)缺点:如果起点到终点的路径上 前面路径很短,后面路径很长,而且不是最优解,那么这段路径就会白白搜索了,浪费了时间A*:在上面的基础上,存在了一个预估函数,即估计后面的路径长度,排序时按当前路径长度+预估长度优先 最慢与最佳优先搜索一样速率...

2020-02-09 20:53:40 604

原创 AcWing168. 生日蛋糕

剪枝#include<iostream>#include<cmath>using namespace std;int minv[30],mins[30],ans=0x3f3f3f;int h[30],r[30];int n,m,s,v;void dfs(int d){ if(!d){ if(v==n) ans=min(ans,s);...

2020-02-06 21:23:39 188

原创 TOPSORT拓扑排序

偷过来的一张图 很容易理解拓扑排序就是对于有向边(x,y),排序后x一定在y

2020-02-04 20:33:29 256

原创 树的重心

void dfs(int x){ v[x]=1;size[x]=1; int max_part=0;//最大连通块的大小 for(int i=head[x];i;i=next[i]){ int y=ver[i]; if(v[y]) continue; dfs(y); size[x]+=size[y]; max_part=max(amx_part,size[y]); }...

2020-02-04 19:38:07 104

原创 Acwing253. 普通平衡树

您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:插入数值x。删除数值x(若有多个相同的数,应只删除一个)。查询数值x的排名(若有多个相同的数,应输出最小的排名)。查询排名为x的数值。求数值x的前驱(前驱定义为小于x的最大的数)。求数值x的后继(后继定义为大于x的最小的数)。注意: 数据保证查询的结果一定存在。输入格式第一行为n,表示操作的个数。接下来...

2020-02-04 12:54:43 129

原创 POJ1151 Atlantis

扫描线的做法。先对x坐标离散化,对离散化后的数组用线段树维护当前的边长。最后要考虑到,线段树递归后的合并会出现两段之间的空缺,要把每个点和他到右面邻点的距离看成是一个点。#include<iostream>#include<cstring>#include<algorithm>using namespace std;#define N 100010...

2020-01-30 20:27:24 121

原创 离散化

sort(a,a+n);//先排序采用unique int m=unique(a,a+n)-x;//离散化后保存的元素数量将大区间的数压缩到小区间里面去,然后用小区间的数代表大区间的数

2020-01-30 19:14:50 105

原创 Acwing145.超市

超市里有N件商品,每个商品都有利润pipi和过期时间didi,每天只能卖一件商品,过期商品(即当天di<=0di<=0)不能再卖。求合理安排每天卖的商品的情况下,可以得到的最大收益是多少。输入格式输入包含多组测试用例。每组测试用例,以输入整数N开始,接下里输入N对pipi和didi,分别代表第i件商品的利润和过期时间。在输入中,数据之间可以自由穿插任意个空格或空行,输入至文件...

2020-01-25 20:55:04 187

原创 KMP模式匹配

屌毛算法导致我直接罢工两天没心情做题。KMP就是用来解决匹配问题,比如字符串中找重复子串。核心就是一个next数组含义:next[i]即 以i为结尾的非前缀字串 和 前缀 能够匹配的最大长度。没有的话可以为0abaabaaaanext[5]就是因为aba和 aba 相匹配,为3如果直接枚举next数组的话,显然不如直接暴力枚举字符串,因此就有了优化引理:如果j为next[i]的...

2020-01-23 22:38:50 122

空空如也

空空如也

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

TA关注的人

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