Toyota Programming Contest 2024#1(AtCoder Beginner Contest 337)
Toyota Programming Contest 2024#1(AtCoder Beginner Contest 337)
A - Scoreboard
思路
简单的模拟,统计一下总分数就可以了
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long 
void solve(){
	int n;
	int ans1=0;
	int ans2=0;
	cin>>n;
	for(int i=1;i<=n;i++){
		int x,y;cin>>x>>y;
		ans1+=x;
		ans2+=y;
	}
	if(ans1>ans2){
		cout<<"Takahashi"<<endl;
		return ;
	}
	else if(ans2>ans1){
		cout<<"Aoki"<<endl;
		return ;
	}
	else{
		cout<<"Draw"<<endl;
		return ;
	}
}
signed main(){
	int t=1;
	while(t--) solve();
	return 0;
}
B - Extended ABC
思路
在给定的字符串中只要出现s[i+1]<s[i]就是不合法字符串,否则就是合法的
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long 
void solve(){
	string s;
	cin>>s;
	// if(s.size()==1){
	// 	if(s[0]!='A'&&s[0]!='B'&&s[0]!='C'){
	// 		cout<<"NO"<<endl;
	// 		return ;
	// 	}
	// 	else{A
	// 		cout<<"YES"<<endl;
	// 		return ;
	// 	}
	// }
	for(int i=0;i<s.size();i++){
		if(s[i]-s[i-1]<0){
			cout<<"No"<<endl;
			return ;
		}
	}
	cout<<"Yes"<<endl;
	return ;
	
}
signed main(){
	int t=1;
	while(t--) solve();
	return 0;
}
C - Lining Up 2
思路
只要用map函数哈希一下就可以了
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long 
void solve(){
	int n;
	cin>>n;
	int st=0;
	std::vector<int> a(n+1);
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(a[i]==-1){
			st=i;
		}
	}
	st=-1;
	
	std::map<int , int> mp;
	for(int i=1;i<=n;i++){
		mp[a[i]]=i;
		// mp2[i]=st;
	}
	// cout<<st;
	for(int i=1;i<=n;i++){
		cout<<mp[st]<<" ";
		st=mp[st];
	}
	
}
signed main(){
	int t=1;
	while(t--) solve();
	return 0;
}
Toyota Programming Contest 2024#1(AtCoder Beginner Contest 337)
A - Scoreboard
思路
简单的模拟,统计一下总分数就可以了
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long 
void solve(){
	int n;
	int ans1=0;
	int ans2=0;
	cin>>n;
	for(int i=1;i<=n;i++){
		int x,y;cin>>x>>y;
		ans1+=x;
		ans2+=y;
	}
	if(ans1>ans2){
		cout<<"Takahashi"<<endl;
		return ;
	}
	else if(ans2>ans1){
		cout<<"Aoki"<<endl;
		return ;
	}
	else{
		cout<<"Draw"<<endl;
		return ;
	}
}
signed main(){
	int t=1;
	while(t--) solve();
	return 0;
}
B - Extended ABC
思路
在给定的字符串中只要出现s[i+1]<s[i]就是不合法字符串,否则就是合法的
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long 
void solve(){
	string s;
	cin>>s;
	// if(s.size()==1){
	// 	if(s[0]!='A'&&s[0]!='B'&&s[0]!='C'){
	// 		cout<<"NO"<<endl;
	// 		return ;
	// 	}
	// 	else{A
	// 		cout<<"YES"<<endl;
	// 		return ;
	// 	}
	// }
	for(int i=0;i<s.size();i++){
		if(s[i]-s[i-1]<0){
			cout<<"No"<<endl;
			return ;
		}
	}
	cout<<"Yes"<<endl;
	return ;
	
}
signed main(){
	int t=1;
	while(t--) solve();
	return 0;
}
C - Lining Up 2
思路
只要用map函数哈希一下就可以了
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long 
void solve(){
	int n;
	cin>>n;
	int st=0;
	std::vector<int> a(n+1);
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(a[i]==-1){
			st=i;
		}
	}
	st=-1;
	
	std::map<int , int> mp;
	for(int i=1;i<=n;i++){
		mp[a[i]]=i;
		// mp2[i]=st;
	}
	// cout<<st;
	for(int i=1;i<=n;i++){
		cout<<mp[st]<<" ";
		st=mp[st];
	}
	
}
signed main(){
	int t=1;
	while(t--) solve();
	return 0;
}
D - Cheating Gomoku Narabe
思路
前缀和处理一下'x'和'.'的个数,横向纵向都处理一下,然后在找最小值就可以了,模拟实现可以,滑动窗口也行

        Toyota Programming Contest 2024#1(AtCoder Beginner Contest 337)A~C
    
                
            
        
浙公网安备 33010602011771号