- 博客(8)
- 收藏
- 关注
原创 最小生成树
#include<bits/stdc++.h>using namespace std;struct kkk{ int x,y,z;}g[10005];int n,m,p,f[1001],num,ans;int cmp(kkk a,kkk b){ return a.z<b.z;}int findd(int x){ if(x!=f[x])f[x]=findd(...
2019-09-14 21:31:17 199
原创 有序表的最小和问题
有两个有序数列(不下降)a:2 5 9 8 6b:1 2 3 4 5求a,b 中两数相加最小和先确定一个开始b[1]与a中所有元素相加,入堆每次弹出堆顶,将其序中下一个b元素相加入堆O(nlogn)#include<bits/stdc++.h>using namespace std;#define maxn 400000 struct num{ int data,...
2019-08-23 20:56:53 478
原创 对顶堆
神奇的对顶堆动态维护第K小O(logn)单次维护第k小如图元素上大下小,保证大根堆中有k-1个元素若大根堆元素个数=k,将大根堆堆顶弹入小根堆每次取小根堆的堆顶即为答案。例题:洛谷P1801黑匣子题目链接代码:#include<bits/stdc++.h>using namespace std;#define ll long longll a[200005...
2019-08-21 11:12:48 289
原创 快速乘
不到万不得已不能写的一个东西具有精度误差代码:#define ll long long#define ld long doublell Quick_Times(ll b,ll p,ll k){ return (b*p-(ll)((ld)b/k*p)*k+k)%k;}
2019-08-21 10:25:22 252
原创 龟速乘(防爆)
输入b,p,k的值,求b^p mod k的值。其中b,p,k为长整型数。还是在这个题干,只是做了小小的变动 k 的取值变了当k>1e9 时,普通的快速幂直接乘爆所以来一点小小的优化将乘法转化一下ab=a+a+a+a+a+…+a;当a为偶数 :a(b/2)+a*(b/2)当a为奇数 :a*(b/2)+a*(b/2)+a;(像极了快速幂)代码如下:#include<bi...
2019-08-21 09:56:41 851
原创 快速幂(取模运算)
输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。直接暴力O(p),p为长整型可能会超时可以采用分治的思想当p为偶数时 b^p = b ^(p/2) * b^(p/2)当p为奇数时 b^p = b^(p/2) * b^(p/2) * b //(b/2)向下取整代码如下:#include<bits/stdc++.h>using namespac...
2019-08-21 09:36:58 360
原创 高精度运算模板(乘、阶乘)
高精度运算(乘)1.高精度乘法#include<bits/stdc++.h>//10^2000using namespace std;int a[2005],b[2005],c[4005],l1,l2;//cÒª¿ª´ó string s1,s2,s;string cheng(string s1,string s2){ memset(a,0,sizeof(a)); m...
2019-08-20 19:26:13 221
原创 高精度运算模板(加、减)
高精度运算模板总结(加、减)1.高精度加法:#include<bits/stdc++.h>//10^500using namespace std;int a[501],b[501],c[501],l1,l2;string s1,s2,s;string jia(string s1,string s2){ memset(a,0,sizeof(a)); memset(b...
2019-08-20 18:43:08 149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人