-
个人简介
@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