• 个人简介

    百因必有果,咖啡因必有咖啡果。

    微信号:19906394627

    QQ号:3818020446

    改名点这里

    模拟器

    点击这里领取10000金币(真)

    这里可以领取1000金币

    这里可以玩原神

    小游戏(跑酷)

    信任的进化(博弈论)

    炸裂的游戏

    AK机器2048版

    网络连接C++AC代码:

    #include <bits/stdc++.h>
    using namespace std;
    int n;
    bool Check(string s) {
      long long a, b, c, d, port;
      if (sscanf(s.c_str(), "%lld.%lld.%lld.%lld:%lld", &a, &b, &c, &d, &port) != 5)  return false;
      if (a < 0 || a > 255 || b < 0 || b > 255 || c < 0 || c > 255 || d < 0 || d > 255 || port < 0 || port > 65535)  return false;
      stringstream ss;
      ss << a << '.' << b << '.' << c << '.' << d << ':' << port;
      return ss.str() == s;
    }
    map<string, int> mp;
    string op, ad;
    int main(int argc, char const *argv[]) {
      cin >> n;
      for (int i = 1; i <= n; i++) {
        cin >> op >> ad;
        if (!Check(ad)) { cout << "ERR\n"; continue; }
        if (op[0] == 'S') {
          if (mp[ad]) cout << "FAIL\n";
          else mp[ad] = i, cout << "OK\n";
        } else {
          if (!mp.count(ad)) cout << "FAIL\n";
          else cout << mp[ad] << '\n';
        }
      }
      return 0;
    }
    

    公路C++AC代码

    #include <bits/stdc++.h>
    
    using namespace std;
    
    using LL = long long;
    
    const int N = 1e5 + 10;
    
    int v[N], a[N];
    int n, d;
    int main() {
        scanf("%d%d", &n, &d);
        for (int i = 1; i < n; i++) scanf("%d", &v[i]);
        int mi = INT_MAX;
        LL ans = 0, s = 0;
        for (int i = 1; i < n; i++) {
            scanf("%d", &a[i]);
            s += v[i];
            mi = min(mi, a[i]);
            if (s > 0) {
                ans += (s + d - 1) / d * mi;
                s -= (s + d - 1) / d * d;
            }
        }
        printf("%lld\n", ans);
        return 0;
    }
    

    解密C++AC版

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    int main(){
    	ll n,d,e;
    	ll t;
    	cin>>t;
    	while(t--){
    		ll p,q;
    		cin>>n>>d>>e;
    		ll m=n-e*d+2;
    		
    		ll o=sqrt(m*m-4*n);
    		
    		p=(m+o)/2;
    		q=m-p;
    		if(p*q==n){
    			cout<<min(p,q)<<" "<<max(p,q)<<endl;
    		}
    		else{
    			cout<<"NO"<<endl;
    		}
    	}
    	
    	
    } 
    

    numC++AC代码

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	//freopen("num.in","r",stdin);
    	//freopen("num.out","w",stdout);
    	string a;
    	cin>>a;
    		while(a[0]!='9'){
    			 
    			for(int i=0;i<a.size();i++){
    				if(a[i]=='9'){
    					a[i]='0';
    				}
    				else{
    					a[i]=char(a[i]+1);
    				}
    			}
    		}	
    	
    	int p=0;
    	for(int i=0;i<a.size();i++){
    		if(a[i]!='9'&&p==0){
    			cout<<char(a[i]+1);
    			p=1;
    		}
    		else{
    			cout<<a[i];
    		}
    	}
    	
    }
    
    

    回文串AC代码

    #include<bits/stdc++.h>
    using namespace std;
    int s[5],b[5];
    int main(){
    	//freopen("str.in","r",stdin);
    	//freopen("str.out","w",stdout);
    	
    	string a;
    	cin>>a;
    	
    	long long n=a.size(),l;
    	int ans=0;
    	for(int i=0;i<=n/2;i++){
    		if(a[i]!=a[n-i-1]){
    			ans++; 
    			l=i;
    			if(int(a[i])<int(a[n-i-1])){
    				a[n-i-1]=a[i];
    				
    			}
    			else{
    				a[i]=a[n-i-1];
    			}
    		}
    	}
    	if(ans==2){
    		cout<<a;
    	}
    	else if(ans==1){
    		int s=0;
    		if(a[l]=='a'){
    			s++;
    		}
    		if(a[n-l-1]=='a'){
    			s++;
    		}
    		a[l]='a';
    		a[n-l-1]='a';
    		if(s!=0&&n%2==1){
    			a[n/2]='a';
    		} 
    		cout<<a;
    		
    	}
    	else{
    		for(int i=0;i<n;i++){
    			if(a[i]!='a'){
    				a[i]='a';
    				a[n-i-1]='a';
    				break;
    			}
    		}
    		cout<<a;
    	}
    	
    	
    	return 0;
    	
    }
    

    运动会AC代码

    #include<iostream>
    #include<cmath>
    #include<algorithm> 
    #include<list>
    #include<cstring>
    #include<string>
    #include<vector> 
    #include<queue>
    #include<deque>
    #include<stack>
    #include<map>
    #include<set>
    #include<ctime>
    using namespace std;
    typedef long long ll;
    int a[1000010];
    int b[1000010];
    int maxn[1000010];
    int main(){
    	int n,k;
    	cin>>n>>k;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	sort(a+1,a+1+n);
    	int l=1,r=1,cnt=1;
    	while(l<=r){
    		if(a[r]-a[l]<=k){
    			if(r==n){
    				b[l]=cnt;
    				cnt--,l++;
    			}else{
    				r++,cnt++;
    			}
    			
    		}else{
    			cnt--;
    			b[l]=cnt;
    			l++;
    		}
    	}
    	
    	for(int i=n;i>=1;i--){
    		maxn[i]=max(maxn[i+1],b[i]);
    	}
    	int ans=0;
    	for(int i=1;i<=n;i++){
    		ans=max(ans,b[i]+maxn[i+b[i]]);
    	}
    	cout<<ans<<"\n";
    	return 0;
    }
    

    strAC代码

    #include<bits/stdc++.h>
    using namespace std;
    int s[5],b[5];
    int main(){
    	//freopen("str.in","r",stdin);
    	//freopen("str.out","w",stdout);
    	
    	string a;
    	cin>>a;
    	
    	long long n=a.size(),l;
    	int ans=0;
    	for(int i=0;i<=n/2;i++){
    		if(a[i]!=a[n-i-1]){
    			ans++; 
    			l=i;
    			if(int(a[i])<int(a[n-i-1])){
    				a[n-i-1]=a[i];
    				
    			}
    			else{
    				a[i]=a[n-i-1];
    			}
    		}
    	}
    	if(ans==2){
    		cout<<a;
    	}
    	else if(ans==1){
    		int s=0;
    		if(a[l]=='a'){
    			s++;
    		}
    		if(a[n-l-1]=='a'){
    			s++;
    		}
    		a[l]='a';
    		a[n-l-1]='a';
    		if(s!=0&&n%2==1){
    			a[n/2]='a';
    		} 
    		cout<<a;
    		
    	}
    	else{
    		for(int i=0;i<n;i++){
    			if(a[i]!='a'){
    				a[i]='a';
    				a[n-i-1]='a';
    				break;
    				
    			}
    		}
    		cout<<a;
    	}
    	
    	
    	return 0;
    	
    }
    

    书的复制AC

    #include<iostream>
    #include<fstream>
    #include<algorithm>
    #include<cstring>
    #include<cmath>
    using namespace std;
    
    long long n,m;
    long long a[505];
    int x[505],y[505];				//记录输出
    
    bool check(int s) {				//检查
    	int num=1,t=0;
    	for(int i=n;i>=1;i--) {		//倒序
    		if(t+a[i]>s) t=0,num++;	//换下一人
    		t+=a[i];
    	}
    	return num<=m;				//人数是否足够
    }
    
    int find(int low,int high) {	//二分
    	int mid;
    	while(low+1<high){
    		mid=low+(high-low)/2;
    		if(check(mid))
    			high=mid;
    		else
    			low=mid;
    	} 
    	return high;				//注意返回high
    }
    
    int main() {
    	long long low=0,high=0;
    	cin>>n>>m;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    		high+=a[i];				//上界为所有书的和
    		low=max(low,a[i]);		//下界为最厚书的页数
    	}
    	int s=find(low,high);		//获取最优值
    	int t=0,num=1;
    	for(int i=1;i<=m;i++)		//初始化输出数组
    		x[i]=y[i]=0;
    		
    	y[1]=n;						//第一人结束点为n
    	for(int i=n;i>=1;i--) {		//倒序
    		if(t+a[i]>s) {
    			t=0;
    			x[num]=i+1;			//第num人开始编号定为i+1
    			y[++num]=i;			//第num+1人结束编号为i
    		}
    		t+=a[i];
    	}
    	x[num]=1;					//最后一人起始点为1
    	
    	for(int i=m;i>=1;i--)		//倒序
    		cout<<x[i]<<" "<<y[i]<<endl;
    	return 0;
    }
    
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	long long n,a[110];
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i]; 
    	}cout<<a[1]<<" ";
    	for(int i=1;i<=n-1;i++){
    		if(a[i]>a[i+1]){
    			for(int j=a[i]-1;j>=a[i+1];j--) cout<<j<<" ";
    		}
    		else{
    			for(int j=a[i]+1;j<=a[i+1];j++) cout<<j<<" ";
    		}
    		
    	}
    	
    	return 0;
    } 
    
  • 最近活动

  • Stat

  • Rating