• 个人简介

    https://games.imc.re/ngs/mcjs/play/eaglercraft/1.8

    作为我的同桌何嘉豪你别嚣张。

    班长说:走,我们去炸外星人副班长说:这个主意不错
    
    化学课代表负责提取氢气
    
    英语课代表到外国购买进口爆炸材料
    
    物理课代表负责拼装氢弹
    
    数学课代表负责计算爆破面积
    
    地理课代表负责策划爆破地点
    
    信息课代表负责打倒计时爆炸代码
    
    美术课代表负责绘画爆炸蘑菇云
    
    历史课代表负责记录光辉场面并将其载入史册体育课代表负责屠杀懵逼的外星人
    
    生物课代表负责事后生态环境
    
    音乐课代表负责奏乐安抚众人
    
    政治课代表负责使用法律打官司
    
    语文课代表负责乱写文章推卸责任
    

    手写快排,效率:不定,在n----n*n之间;

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    long long n,a[10000];
    void dfs(ll a[],ll l,ll r){
    	if(l>=r) return ;
    	ll 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;
    	}
    	dfs(a,l,j),dfs(a,j+1,r);
    }
    int main(){
    	cin>>n;
    	for(int i=0;i<n;i++) cin>>a[i];
    	dfs(a,0,n-1);
    	for(int i=0;i<n;i++) cout<<a[i]<<" ";
    	return 0;
    }
    

    归并排序,效率:log(n);

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    ll n,q[200],tmp[200];
    void dfs(ll q[],ll l,ll r)
    {
    	if(l>=r) return;
    	int mid=l+r>>1;
    	dfs(q,l,mid);
    	dfs(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() {
    	cin>>n;
    	for(int i=0;i<n;i++) cin>>q[i];
    	dfs(q,0,n-1);
    	for(int i=0;i<n;i++) cout<<tmp[i]<<" ";
    }
    

    堆排序,效率:log(m);

    #include<bits/stdc++.h>
    using namespace std;
    int 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();
    	}
    }
    

    美其名曰:输入外挂,又名曰:快读。

    ios::sync_with_stdio(false);
    

    邪修版高精加

    #include <bits/stdc++.h>
    using namespace std;
    vector<int> a,b,c;
    string s1,s2;
    vector<int> add(vector<int> &A,vector<int> &B){
    	if(A.size()<B.size()) return add(B,A);
    	vector<int> C;
    	int t=0;
    	for(int i=0;i<A.size();i++){
    		t=t+A[i];
    		if(i<B.size()) t=t+B[i];
    		C.push_back(t%10);
    		t=t/10;
    	}
    	if(t) C.push_back(t);
    	return C;
    }
    int main(){
    	cin>>s1>>s2;
    	for(int i=s1.size()-1;i>=0;i--) a.push_back(s1[i]-'0');
    	for(int i=s2.size()-1;i>=0;i--) b.push_back(s2[i]-'0');
    	c=add(a,b);
    	for(int i=c.size()-1;i>=0;i--) cout<<c[i];
    }
    

    高精减正解

    #include<bits/stdc++.h>
    using namespace std;
    string a,b;
    long long na[10500],nb[10500],ans[10500]; 
    bool pd;
    int main(){
        cin>>a>>b;
    	if((a<b&&a.size()==b.size())||a.size()<b.size()){
    		swap(a,b);
    		pd=true;
    	}
        for(int i=a.size();i>0;i--) na[i]=a[a.size()-i]-'0';
        for(int i=b.size();i>0;i--) nb[i]=b[b.size()-i]-'0';
        int maxl=max(a.size(),b.size());
    	for(int i=1;i<=maxl;i++){
    		if(na[i]<nb[i]){
    			na[i+1]--;
    			na[i]+=10;
    		}
    		ans[i]=na[i]-nb[i];
    	}
    	while(ans[maxl]==0) maxl--;
    	if(pd==true) cout<<"-";
    	for(int i=maxl;i>0;i--) cout<<ans[i];
    	if(maxl<1) cout<<"0";
        return 0;
    }
    
  • 通过的题目

  • 最近活动

    This person is lazy and didn't join any contests or homework.
  • 最近编写的题解

题目标签

聪明人游戏
4
贪心
1
深搜 广搜
1
广搜
1
大沥2021
1
算法笔记
1