• 个人简介

    https://note.ms/hjcz

    #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.