上海月赛kk

发布于:2025-08-02 ⋅ 阅读:(10) ⋅ 点赞:(0)

1.十六进制

#include<bits/stdc++.h>
using namespace std;

int n;

int main(){
	cin>>n;
	stack<int>re;
	
	if(n<16)cout<<0;
	
	while(n){
		re.push(n%16);
		n/=16;
	}
	
	while(!re.empty()){
		int x=re.top();
		re.pop();
		if(x<10)cout<<x;
		else cout<<char('A'+x-10);
	}
	return 0;
}

2.游戏

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+10;

int t,n;

int main(){
	ios::sync_with_stdio(false);
	cin>>t;
	while(t--)
	{
		vector<pair<ll,ll>>p;
		cin>>n;
		for(int i=0;i<n;++i)
		{
			ll a,b;
			cin>>a>>b;
			p.push_back({a,b});			
		}
		
		sort(p.begin(),p.end());
		ll ans=p[0].first;
		
		for(int i=1;i<n;++i)
		{
			ll a=p[i-1].second-p[i].second;
			ll b=p[i].first-p[i-1].first;
			ans+=min(a,b);
		}
		
		ans+=p[n-1].second;
		
		cout<<ans<<'\n';
	}

	return 0;
}

4.染色

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=4e5+10;

int t;
int n,a;
ll sum;

int main(){
	ios::sync_with_stdio(false);
	cin>>t;
	while(t--)
	{
		sum=0;
		cin>>n;
		for(int i=0;i<n;++i)
		{
			cin>>a;
			sum+=a;
		}
		if(n<2||sum%2!=0){
			cout<<0<<'\n';
			continue;
		}
		else cout<<n*(n-1)/2<<'\n';
	}
	return 0;
}

5。不要回文

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=3e5+10;

int q,n;
string s;

int main(){
	cin>>q;
	
	while(q--){
		cin>>n>>s;
		int c[30]{0};
		for(auto i:s)c[i-'a']++;
		vector<int>who;
		for(int i=0;i<26;++i){
			if(c[i])who.push_back(c[i]);
		}
		sort(who.begin(),who.end());
		int l=0,f=1;
		for(auto i:who){
			//cout<<i<<" ";
			if(i>max(l/2+1,0)){
				f=0;break;
			}
			l+=i;
		}
		if(f)cout<<"Yes\n";
		else cout<<"No\n";		
	}
	return 0;
}

6.面包

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=3e5+10;

int n;
ll d,p,r,sum=0;
vector<array<ll,3>>who;

int main(){
	cin>>n;
	for(int i=1;i<=n;++i){
		cin>>d>>p>>r;
		who.push_back({d,i,1});
		who.push_back({p,i,2});
		who.push_back({r,i,3});
	}
	sort(who.begin(),who.end());
	int c[N]{0},t=0,q[4]{0};
	for(int i=who.size()-1;i>=0;--i){
		auto x=who[i];
		if(t==n){
			sum+=x[0];
		}
		else if(c[x[1]]==0){
			if(3-q[1]-q[2]-q[3]>=n-t&&q[x[2]]){
				sum+=x[0];
			}
			else{
				c[x[1]]=1;t++;
			    q[x[2]]=1;
			}
		}
		else{
			sum+=x[0];
		}
	}
	cout<<sum;
	return 0;
}