自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P1638 逛画展(尺取法)

博览馆正在展出由世上最佳的m位画家所画的图画。游客在购买门票时必须说明两个数字,a和b,代表他要看展览中的第a幅至第b幅画(包含ab)之间的所有图画,而门票的价钱就是一张图画一元。Sept 希望入场后可以看到所有名师的图画。当然,他想最小化购买门票的价格。请求出他购买门票时应选择的ab,数据保证一定有解。若存在多组解,a。

2024-02-26 16:11:28 1007 1

原创 LCIS及路径输出

优化:f[i][j]由f[i-1][j]和f[i-1][j]+1得到,当a[i]=b[j]时由最大的f[i-1][j]转移而来可用一个val存储f[i-1][j]的最大值。f[i][j]表示以b[j]结尾的最长LCIS。

2024-01-24 17:24:09 372

原创 全排列回溯

回溯

2023-12-16 20:30:42 394

原创 LCA最近公共祖先问题

题目:洛谷P3379。

2023-10-15 17:25:36 69

原创 P1120小木棍

深搜剪枝

2023-04-15 22:23:51 93

原创 树的重心问题

*树的重心:**对于任意一个节点x,如果我们把它从树中删除,那么原来的一棵树可能分成若干个不相连的部分,其中每一部分都是一棵子树,设max_part(x)表示在删除x后的最大的子树大小,使max_part取到最小值的节点p就称之为树的重心。

2023-04-07 19:56:27 98

原创 NOI 2001食物链

并查集

2023-03-17 20:59:43 86

原创 scanf读入 %c注意事项

scanf %c注意细节

2023-03-12 11:24:45 255

原创 并查集1346:【例4-7】亲戚(relation)

并查集

2023-03-03 19:34:36 223

原创 香甜的黄油 Sweet Butter SPFA

最短路

2023-02-22 20:54:45 68

原创 SPFA判负环

SPFA判断负环

2023-02-16 15:52:23 148 1

原创 SPFA求最短路

spfa求最短路

2023-02-15 11:11:44 85

原创 通过K条边的最短路,bellman_ford

bellman_ford算法及简单应用

2023-02-14 16:35:47 170

原创 最短路计数

最短路计数

2023-02-10 19:44:57 57

原创 P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two

简单训练题目

2022-12-09 19:23:30 155

原创 <枚举>P4759 [CERC2014]Sums

枚举算法题目1

2022-12-08 11:08:39 94

原创 递归递推题目整理

题目整理

2022-06-25 11:21:58 152

原创 快速幂的几种方法

1.朴素算法o(n)long long qpow3(long long a,long long b){ long long s=1; for(int i=1;i<=b;i++) s=s*a%mod; return s;} 2.1递归快速幂o(logn)long long qpow(long long a,long long b){ if(b==0)return 1; else if(b%2==0){ t=qpow(a,b/2); //不能直接retur.

2022-04-26 19:48:22 213

原创 欧拉函数试除法与筛法求解

欧拉函数的定义1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。若在算数基本定理中,N=pa11pa22…pamm,则:ϕ(N) = N×(p1−1)/p1×(p2−1)/p2×…×(pm−1)/pm与n互质的数的和为:n*ϕ(n)/2证明如下:则根据该公式可得求一个数的欧拉函数的代码为:试除法求解即在质因数分解的过程中将欧拉函数求出,复杂度为n\sqrt{n}n​#include <bits/stdc++.h>using namespace std;int

2022-04-23 21:50:23 394

原创 互质与欧拉函数

对于正整数,gcd(a,b)=1,则称a,b互质。若gcd(a,b,c)=1,则称a,b,c互质,gcd(a,b)=gcd(a,c)=gcd(b,c)=1,则称a,b,c两两互质。欧拉函数:1-N中与N互质的数的个数被称为欧拉函数,即为φ(N).若N=p1c1p2c2p3c3…pmcm则:φ(N)=n (p1-1)/(p1) *(p2-1)/(p2)*……(pm-1)/pm*代码如下在分解质因数的同时可将欧拉函数求出int oula(int a){ ans=a; for(

2022-04-18 11:21:13 1162

原创 质数筛法,欧拉筛与埃氏筛的比较

埃氏筛为常见的质数筛法,其原理为利用已知的质数作为因子将其他合数标记,则剩下的未标记的均为质数其代码如下:此算法的复杂度为O(NloglogN)#include <bits/stdc++.h>using namespace std;const int N=1000;bool b[N];int main(){ for(int i=2;i<=sqrt(N);i++){ //i作为N的一个因子最大可达sqrt(N) if(!b[i]){ for(int j=i;j

2022-04-15 21:39:13 301

原创 字符串读入问题

#include <bits/stdc++.h>using namespace std;int main(){ char a[5],c[6]; string b; gets(c);//可以将空格读入,但在算法竞赛中不安全,建议不适用 scanf("%[^\n]s",a);//可以将空格读入,直到换行结束 getline(cin,b);//可以将string类型的空格读入,直到换行为止 ,较慢 cout<<a<<endl<<b; retur

2022-04-01 19:46:46 65

原创 最小生成树Kruskal算法

最小生成树定义:给定一张带权的无向图G=(V,E),n=|v|,m=|E|.由V中全部n个顶点和E中n-1条边构成的无向联通子图被称为G的生成树 (n-1条边可用于判断是否为生成树,若超出则不为生成树)。边的权值之和最小的生成树被称为最小生成树。Kruskal算法流程如下:1.建立并查集,每个点各自构成一个集合。2.把所有的边按照权值从小到大排序,一次扫描每条边(x,y,z)3.若x,y属于同一集合(联通),则忽略这条边,继续扫面下一条边。4.否则合并x,y所在的集合,并且把z累加到答案中。5.

2022-03-01 21:39:08 216

原创 堆优化dijkstra

第三个点可能有无法到达的点P3371 【模板】单源最短路径(弱化版)关于初始化为什么要设置为0x3f可参考此篇文章0x3f#include <bits/stdc++.h>using namespace std;const int N=5e5+100;const int inf=2147483647;//可能又无法到达的点故初始化为整型边界int edg[N],head[N],ver[N],ne[N],vis[N],dis[N],n,m,s,idx;priority_queue&l

2022-02-23 21:51:00 140

原创 朴素的dijkstra

朴素的dijkstra适合用于处理稠密图即其n2n^2n2<m#include <bits/stdc++.h>using namespace std;const int N=1e3+10;int a[N][N],dis[N],vis[N],n,s,m;int main(){ cin>>n>>m>>s; memset(dis,0x3f,sizeof(dis)); memset(a,0x3f,sizeof(a)); for(int i=1;

2022-02-23 20:09:45 712

原创 LCS 及路径输出

单纯LCS#include <bits/stdc++.h> using namespace std;string s1,s2;int f[1010][1010],len1,len2,ans;int main(){ cin>>s1>>s2; len1=s1.size(); len2=s2.size(); for(int i=1;i<=len1;i++) for(int j=1;j<=len2;j++) { if(s1[i-1]

2021-11-16 21:56:50 365

原创 LIS 优化 及路径输出

1259:【例9.3】求最长不下降序列#include <bits/stdc++.h>using namespace std;const int N=100000+10;const int INF=0x3f3f3f3f;int n,f[N],a[N],st[N],res,tot,last[N],ans[N];int main(){ memset(st,-INF,sizeof(st)); cin>>n; for(int i=1;i<=n;i++) cin&g

2021-11-15 21:31:41 500

原创 队列queue与struct

当需要对struct入队时,可以使用如下格式方法入队struct node {int num;int step;};queueq;q.push((node){a,0}); \\入队node t=q.front() ;q.pop();\\调取队头即可直接使用队头数据了

2021-08-07 16:29:54 593

原创 1246:膨胀的木棍

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入1246:膨胀的木棍时间限制: 1000 ms 内存限制: 65536 KB提交数: 3207

2021-04-20 11:50:49 242

原创 单链表的创建和访问

关于链表的创建及访问#include <iostream>using namespace std;struct node { int data; node *next; };node *head,*p,*r;//R指向链表的当前最后一个结点,可以称之为尾指针 int main(){ int x; cin>>x; head=new node;//申请节点头 r=head; while(x!=-1){ p=new node;//申请新的空间 p-&g

2020-12-23 21:39:05 329

原创 double和float精度问题

关于double和float的精度问题,float精度大约6-7位,double精度大致`15到16位。正如图片中所示

2020-12-23 21:34:59 147

空空如也

空空如也

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

TA关注的人

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