- 博客(15)
- 收藏
- 关注
原创 扩展欧几里得和排列组合
// c[a][b] 表示从a个苹果中选b个的方案数for (int i = 0; i < N; i ++ ) for (int j = 0; j <= i; j ++ ) if (!j) c[i][j] = 1; else c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;int exgcd(int a,int b,int &x,int &y){ if(!b) { x=1,y=
2022-04-08 20:24:57
57
原创 快速幂算法
#include<stdio.h>int qmi(int a,int x,int p){ int res=1%p; while(x) { if(x&1)res=res*a%p; a=a*a%p; x=x>>1; } return res;}int main(void){ int a=4,b=4; printf("%d\n",qmi(a,b,10000000)); return 0;}
2022-04-08 20:17:24
56
原创 欧几里得算法
#include<stdio.h>#include<stdlib.h>using namespace std;int gcd(int a, int b){ return b==0 ? a: gcd(b, a % b) ;}int main(){ int a,b; scanf("%d %d",&a,&b);// int d=gcd(a,b); int d=__gcd(a,b); printf("%d",d); return 0
2022-04-08 19:49:02
59
原创 前缀和算法
输入一个长度为n的整数序列。 接下来再输入m个询问,每个询问输入一对l, r。 对于每个询问,输出原序列中从第l个数到第r个数的和。输入格式 第一行包含两个整数n和m。第二行包含n个整数,表示整数数列。 接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。输出格式 共m行,每行输出一个询问的结果。 数据范围 1≤l≤r≤n, 1≤n,m≤100000, ?1000≤数列中元素的值≤1000 输入样例:5 3 2 1 3 6 41 2 1 3 2 4 输出样例: 3 6 10 *
2022-04-08 19:33:10
50
原创 二分答案算法
while(L<R)//没有等于 l=mid+1,r=mid ,//只要不是这种情况,L<=R R-L>=1, 有等于号统统输出r=mid1||mid,ans=mid; /*l<=r表 r=mid-1 ans=mid l=mid-1 如果r-l>=0.00 l=mid r=mid r-l>1 l=mid,r=mid;最小值最大 最小值l=mid+1 or l=mid,ans=mid ,那么这个l所对应的check,要sum<=m 筛选check,r=
2022-04-08 16:33:41
85
原创 拓扑排序算法
在这里插入代码片```// https://www.luogu.com.cn/blog/arookieoier/p1137-lv-xing-ji-hua-ti-xie//落谷1137旅行计划#include<iostream>#include<cstdio>#include<queue>#include<algorithm>using namespace std;int n,m;const int N=100005;int h[N],ne
2022-04-08 16:09:42
376
原创 二叉排序树
#include<bits/stdc++.h>#includetypedef struct node{struct node *left,*right;int data;}tree,ttree[200];int n;int a[100];tree *Create(tree root,int val){if(root==NULL){root=(tree)malloc(sizeof(tree));root->data=val;root->left=NULL;
2021-07-06 15:13:10
72
原创 C++sort数字数组
#include<bits/stdc++.h>using namespace std;bool cmp(int &x,int &y){return x>y;}int main(void){int a[5]={2,7,1,9,7};set::iterator i;sort(a,a+5,cmp);for(int i=0;i<5;i++)cout<<a[i] <<endl;return 0;}
2021-06-28 15:54:51
352
原创 素数线性筛选
#include<bits/stdc++.h>using namespace std; const int N=100000001; int prime[N],cnt; // primes[]存储所有素数int st[N]; // st[x]存储x是否被筛掉 0表示 //2*3=6; st表示合数 void get_prime(int n){ for(int i=2;i<=n;i++) //n=6 i=2,.
2021-06-27 22:55:39
45
原创 char数组strncpy赋值及比较大小
#include<bits/stdc++.h>#include<iostream>using namespace std;char a[20];char b[20];char c[20];int main(void){ scanf("%s",a); scanf("%s",b); int len=strlen(a); for(int i=0;i<len-2;i++) { strncpy(c,a,len-2);...
2021-06-16 23:00:41
624
原创 C++string类排序
#include<bits/stdc++.h>#include<string.h>using namespace std;bool cmp(string a,string b){ return a.compare(b)>0;;}int main(void){ string a[6]; for(int i=0;i<4;i++) { getline(cin,a[i]); } sort(a,a+2...
2021-06-12 23:56:26
1767
2
原创 C++字符数组从大到小
#include<bits/stdc++.h>#include<string.h>using namespace std;bool cmp(char c,char d){ return c>d;}int main(void){ char a[5]; scanf("%s",a); sort(a,a+strlen(a),cmp); for(int i=0;i<5;i++) { printf("%...
2021-06-12 22:26:45
162
原创 字符数组列比较,最小的字符
#include<bits/stdc++.h>#include<iostream>using namespace std;int n;char a[3][10000];char MIN[100];char min1(char a,char b){ if(a<b) return a; else return b;}int main(void){ while(scanf("%d",&n)&&...
2021-06-12 22:02:14
96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人