• 个人简介

    @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; 
    }
    
  • 通过的题目

  • 最近活动

题目标签

初窥门径
43
循环结构
23
分支结构
20
顺序结构
18
略有小成
15
其他
3
while循环
3
递推
3
驾轻就熟
3
融汇贯通
3
二分查找
2
位运算
1
电子学会二级
1
循环嵌套
1
递归
1
二分
1
二分答案
1
一本通编程启蒙
1
月赛语法
1