Q1:  C - Minimum Glutton

AtCoder_abc364(题目链接)

#include<iostream>
#include<algorithm>
using namespace std;

//typedef long long ll;

void solve() {
	int n;
	long long x,y;
	cin>>n>>x>>y;
//	sum(Ai)>X or sum(Bi)>Y
	int a[n],b[n];
	for(int i = 0; i < n; i++) {
		cin>>a[i];
	}
	for(int i = 0; i < n; i++) {
		cin>>b[i];
	}
	sort(a,a+n,greater<int>());
	sort(b,b+n,greater<int>());
	int ans = 0;
	long long sum1 = 0,sum2 = 0;
	for(int i = 0; i < n; i++) {
		sum1 += a[i];
		sum2 += b[i];
		ans++;
		if(sum1>x||sum2>y) break;
	}
	cout<<ans;
}

int main() {
	solve();
	return 0;
} 

Q2:  C - Move It

题目链接:AtCoder_abc360

#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;

void solve() {
	int n;
	cin>>n;
	map<int,vector<int>> mp;
	int a[n],w[n];
	for(int i = 0; i < n; i++) {
		cin>>a[i];
	}
	for(int i = 0; i < n; i++) {
		cin>>w[i];
	}
	for(int i = 0; i < n; i++) {
		mp[a[i]].push_back(w[i]);
	}
	
	int ans = 0;
	for(auto it = mp.begin(); it != mp.end(); it++) {
		if(it->second.size()>1) {
			sort(it->second.begin(),it->second.end());
			for(int i = 0; i < it->second.size()-1; i++) {
				ans += it->second[i];
			}
		}
	}
	cout<<ans;
}
int main() {
	solve();
	return 0;
}

Q3:  D. I Love 1543

题目链接:CodeForces_2036D

#include<iostream>
#include<algorithm>
using namespace std;

void solve() {
	int n,m;
	cin>>n>>m;
	string str[n];
	for(int i = 0; i < n; i++) {
		cin>>str[i];
	}
	
	int layer = min(n,m)/2;
	int ans = 0;
	for(int k = 0; k < layer; k++) {
		string target;
		string ch3;
		int cnt = 0;
		
		for(int j = k; j < m-1-k; j++) {
			target += str[k][j];
			if(cnt<3) {
				ch3 += str[k][j];
				cnt++;
			}
		}
		for(int i = k; i < n-1-k; i++) {
			target += str[i][m-1-k];
			if(cnt<3) {
				ch3 += str[i][m-1-k];
				cnt++;
			}
		}
		for(int j = m-1-k; j > k; j--) {
			target += str[n-1-k][j];
			if(cnt<3) {
				ch3 += str[n-1-k][j];
				cnt++;
			}
		}
		for(int i = n-1-k; i > k; i--) {
			target += str[i][k];
		}
		target += ch3;
		size_t pos = 0;
		
		while((pos = target.find("1543",pos)) != string::npos) {
			ans++;
			pos += 4; 
		}
	}
	cout<<ans<<"\n";
}
int main() {
	int t;
	cin>>t;
	while(t--) {
		solve();
	}
	return 0;
}

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐