-
个人简介
#include <bits/stdc++.h> using namespace std; #define For(i,x,y) for (int i = x;i <= y; ++ i) #define Dor(i,x,y) for (int i = x;i >= y; -- i) #define in push_back #define out pop_back typedef double db; typedef char ch; typedef string str; typedef float fl; typedef signed sig; typedef long long ll; typedef bool bo; typedef void vo; typedef vector<int> vec; typedef queue<int> que;//定义队列 /* push() 插入 front() 访问队首元素 pop() 删除队首 empty() 检查队列是否为空 size() 获取队列大小 */ priority_queue<int,vec,greater<int> > q;//定义小根堆 ll gcd (ll x,ll y) { if (y == 0) return x; return gcd (y,x % y); } ll lcm (ll x,ll y) { return x / gcd (x,y) * y; } bo ss(int x) { if (x < 2) return false; for (int i = 2;i * i <= x; ++ i) if (x % i == 0) return false; return true; } str pd(str m1,str m2) { int l1 = m1.size(),l2 = m2.size(); if (l1 > l2) return m1; if (l1 < l2) return m2; if (m1 >= m2) return m1; return m2; } vec add (vec &A,vec &B) { if (A.size() < B.size()) return add (B,A); vec C; int t = 0; For(i,0,A.size() - 1) { t += A[i]; if (i < B.size()) t += B[i]; C.in (t % 10); t /= 10; } if (t) C.in (t); return C; }//a+b vec sub (vec &A,vec &B) { vec C; for(int i = 0,t = 0;i < A.size(); ++ i) { t = A[i] - t; if (i < B.size()) t -= B[i]; C.in ((t + 10) % 10); if (t < 0) t = 1; else t = 0; } while (C.size() > 1 && C.back() == 0) C.out (); return C; }//a-b vo quick_sort(int a[],int l,int r) { if (l >= r) return ; int i = l - 1,j = r + 1,x = a[l]; while (i < j) { do ++ i; while (a[i] < x); do -- j; while (a[j] > x); if (i < j) swap (a[i],a[j]); else break; } quick_sort(a,l,j),quick_sort(a,j + 1,r); } vo merge_sort(int q[],int l,int r) { if (l >= r) return ; int mid = l + r >> 1; merge_sort (q,l,mid); merge_sort (q,mid + 1,r); int k = 0,i = l,j = mid + 1; while (i <= mid && j <= r) if (q[i] < q[j]) tmp[k ++] = q[i ++]; else tmp[k ++] = q[j ++]; while (i <= mid) tmp[k ++] = q[i ++]; while (j <= r) tmp[k ++] = q[j ++]; for (i = l,j = 0;i <= r;++ i, ++ j) q[i] = tmp[j]; } int main() { ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); for (int i = 2;i * i <= n; ++ i) { if (p[i] == 0) for (int j = i * i;j <= n;j += i) p[j] = 1; } for (int i = 2;i <= n; ++ i) if (p[i] == 0) a[++ k] = i;//素数表 for (int i = 1;i <= n; ++ i) { int x; cin >> x; q.push(x);//把元素塞入数组 } while (q.size() > 0) { cout << q.top() << " ";//输出最小值 q.pop();//弹出最小值 } Dor(i,s1.size() - 1,0) a.push_back (s1[i] - '0'); Dor(i,s2.size() - 1,0) b.push_back (s2[i] - '0'); c = add(a,b); Dor(i,s1.size() - 1,0) a.push_back (s1[i] - '0'); Dor(i,s2.size() - 1,0) b.push_back (s2[i] - '0'); c = sub(a,b); return 0; }手搓推排序:
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef string sb; ll m; priority_queue<int,vector<int>,greater<int> >q; int main() { cin>>m; for(int i=1;i<=m;i++) { int x; cin>>x; q.push(x); } while(q.size()>0) { cout<<q.top()<<" "; q.pop(); } return 0; }#include <bits/stdc++.h> using namespace std; typedef long long ll; #define For(i,a,b) for(int i=a;i<=b;i++) ll n; char a[100],b[100]; void dfs(int k) { if(k>n) { For(i,1,n) cout<<b[i]; cout<<endl; return ; } For(i,1,4) { if(k==n&&a[i]==b[2]) continue; if(a[i]!=b[1]&&a[i]!=b[k-1]) { b[k]=a[i]; dfs(k+1); } } } int main() { cin>>n; a[1]='r'; a[2]='g'; a[3]='b'; a[4]='y'; for(int i=1; i<=4; i++) { b[1]=a[i]; dfs(2); } }#include<bits/stdc++.h> using namespace std; typedef long long ll; #define For(i, a, b) for(ll i = a; i <= b; ++ i) ll n, x, k, a[1000005], t, s; int main() { cin>>n; x = sqrt(n); For(i, 1, x) if(n % i == 0) { if(i * i != n) a[++ k] = i, a[++ k] = n / i; else a[++ k] = i; } For(i, 1, k) For(j, 1, k) { t = n / a[i] / a[j]; if(a[i] * a[j] * t == n) ++ s; } cout << s; return 0; } -
通过的题目
-
最近活动
This person is lazy and didn't join any contests or homework. -
最近编写的题解
This person is lazy and didn't write any solutions.