- 博客(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
139
原创 快速幂算法
#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
141
原创 欧几里得算法
#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
133
原创 前缀和算法
输入一个长度为n的整数序列。 接下来再输入m个询问,每个询问输入一对l, r。 对于每个询问,输出原序列中从第l个数到第r个数的和。 输入格式 第一行包含两个整数n和m。 第二行包含n个整数,表示整数数列。 接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。 输出格式 共m行,每行输出一个询问的结果。 数据范围 1≤l≤r≤n, 1≤n,m≤100000, ?1 000≤数列中元素的值≤1000 输入样例:5 3 2 1 3 6 4 1 2 1 3 2 4 输出样例: 3 6 10 *
2022-04-08 19:33:10
111
原创 二分答案算法
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
150
原创 拓扑排序算法
在这里插入代码片 ```// 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
477
原创 二叉排序树
#include<bits/stdc++.h> #include typedef 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
147
原创 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
456
原创 素数线性筛选
#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
106
原创 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
724
原创 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
2044
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
231
原创 字符数组列比较,最小的字符
#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
183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅