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'和'.'的个数,横向纵向都处理一下,然后在找最小值就可以了,模拟实现可以,滑动窗口也行

posted @ 2024-01-21 11:34  du463  阅读(39)  评论(0编辑  收藏  举报