• 个人简介
  • 通过的题目
  • 最近活动
  • 最近编写的题解

@junjun菜就多练,输不起就别玩.

//埃氏筛
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
bool vis[N];
void init() {
	for(int i=2;i<N;i++) {
		if(!vis[i]) {
			for(int j=i*2;j<N;j+=i) {
				vis[j]=true;
			}
		}
	}
}
int main() {
	init();
	int t;cin>>t;
	while(t--) {
		int x;cin>>x;
		if(vis[x]) cout<<"不是素数"<<endl;
		else cout<<"是素数"<<endl;
	}
}
//线性筛
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+10;
bool vis[N];
int p[N],idx;
void init() {
	for(int i=2;i<N;i++) {
		if(!vis[i]) {
			p[idx++]=i;
		}	
		for(int j=0;j<idx&&111*j*p[i]<N;j++) {
				vis[p[i]*j]=true;
				if(i%p[j]==0) break;
		}
	}
}
int main() {
	init();
}
//快速幂
#include<bits/stdc++.h>
using namespace std;
int qpw(int a,int b,ing p) { a^b% p
	int res=1;
	while(b) {
		if(b&1) {
			res=res*a%p;
		}
		b>>=1;
		a=a*a%p;
	}
	return res;
} 
int main(){
	int a,b,p;
}
//二分查表0.1

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int a[N];	
int main(){
	int n;cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	int x;cin>>x;
	int l=1,r=n,ans=-1;
	while(l<=r) {
		int mid=l+r>>1;
		if(a[mid]>=x) {
			ans=mid;
			r=mid-1;
		}
		else l=mid+1;
	}
	cout<<ans<<endl;
	return 0;
}
// 二分查找0.2

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int a[N];	
int main(){
	int n;cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	
	int m;cin>>m;
	while(m--) {
		intx;cin>>x;
		if(x>a[n]) {
			cout<<-1<<endl;
			continue;
		}
		//int k = lower_bound(a+1,a+n+1,x)-a;//lower_bound 找数组中第一个大于等于的
		//	upper_bound 找数组中第一个大于的
		//cout<<a[k]<<" ";
		cout<<(*lower-bound(a+l,x))<<endl;
	}
}
//高精度P1072
#include <bits/stdc++.h> 
using namespace std;
char a[1010],b[1010];
int A[1010],B[1010];
int C[1010];

 int main(){
 	cin >> a >> b;
 	int lena = strlen(a), lenb = strlen(b);
 	int len = max(lena, lenb);
 	for(int i = 0; i < lena; i++) {
 		A[i] = a[i] - '0';
	 }
	 for(int i = 0; i < lenb; i++) {
	 	B[i] = b[i] - '0';
	 }
	 reverse(A, A + lena);
	 reverse(B, B + lenb);
	 for(int i = 0; i < len; i++) {
	 	C[i] += A[i] + B[i];
	 	C[i + 1] = C[i] / 10;
	 	C[i] %= 10;
	 }
	 if(C[len]) cout<< 1;
	 reverse(C, C + len);
	 for(int i = 0;i < len; i++) cout << C[i];
	return 0; 
}
高精度P1071
#include <bits/stdc++.h> 
using namespace std;
char a[1010],b[1010],c[1010];
int A[1010],B[1010],C[1010];
int D[1010];
 int main(){
 	cin >> a >> b >> c;
 	int lena = strlen(a), lenb = strlen(b), lenc = strlen(c);
 	int len = max(lena, lenb);
 	len = max(len, lenc);
 	for(int i = 0; i < lena; i++) {
 		A[i] = a[i] - '0';
	 }
	 for(int i = 0; i < lenb; i++) {
	 	B[i] = b[i] - '0';
	 }
	 for(int i = 0; i < lenc; i++){
	 	C[i] = c[i] - '0';
	 }
	 reverse(A, A + lena);
	 reverse(B, B + lenb);
	 reverse(C, C + lenc);
	 for(int i = 0; i < len; i++) {
	 	D[i] += A[i] + B[i] + C[i];
	 	D[i + 1] = D[i] / 10;
	 	D[i] %= 10;
	 }
	 if(D[len]) cout<< D[len];
	 reverse(D, D + len);
	 for(int i = 0; i < len; i++) cout << D[i];
	return 0; 
}

题目标签

初窥门径
86
顺序结构
52
略有小成
46
驾轻就熟
38
循环结构
32
分支结构
23
循环嵌套
15
融会贯通
12
字符串
10
二维数组
9
排序
9
模拟
9
递推
8
一维数组
8
高精度
7
结构体
7
递归
7
其他
6
队列
5
while循环
3