UNIQUE VISION Programming Contest 2023 Autumn(AtCoder Beginner Contest 323)

这篇具有很好参考价值的文章主要介绍了UNIQUE VISION Programming Contest 2023 Autumn(AtCoder Beginner Contest 323)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

A - Weak Beats

链接 : 

A - Weak Beats

思路 : 

模拟即可,如果在偶数位上出现了非'0'得元素,直接输出"No"后返回即可,循环顺利结束的话,就直接输出"Yes";

代码 : 

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'

using namespace std;
typedef long long LL;
int gcd(int a,int b){ return b==0 ? a : gcd(b,a%b); }
int lcm(int a,int b){ if(a==0||b==0) return 0; return (a*b)/gcd(a,b); }
bool is_prime(int x){if(x<2) return false;
for(int i=2;i<=x/i;i++) if(x%i==0) return false; return true;}
//numbers.erase(std::unique(numbers.begin(), numbers.end()), numbers.end()); // 去重操作
const int N = 2e5+10;
string s;

inline void solve(){
	cin>>s;
	s = ' ' + s;
	for(int i=2;i<=16;i++){
		if(i%2==0){
			if(s[i]!='0'){
				cout << "No" << endl;
				return ;
			}
		}
	}
	cout << "Yes" << endl;
	return ;
}
 
int main()
{
    IOS
    int _ = 1;
    // cin >> _;
    while(_ --) solve();
    return 0;
}

B - Round-Robin Tournament

链接 : 

B - Round-Robin Tournament

思路 : 

这一题考察得就是排序;

将题目给的数据读入之后,按照题目所给得条件排序即可 : sort(p,p+n,cmp),cmp是自己重写得比较方法;

代码 : 

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'

using namespace std;
typedef long long LL;
int gcd(int a,int b){ return b==0 ? a : gcd(b,a%b); }
int lcm(int a,int b){ if(a==0||b==0) return 0; return (a*b)/gcd(a,b); }
bool is_prime(int x){if(x<2) return false;
for(int i=2;i<=x/i;i++) if(x%i==0) return false; return true;}
//numbers.erase(std::unique(numbers.begin(), numbers.end()), numbers.end()); // 去重操作
const int N = 110;
int n;
string s[N];
struct P{
	int nb;
	int win;
}p[N];

bool cmp(const P& p1,const P& p2){
	if(p1.win != p2.win)
		return p1.win > p2.win;
	return p1.nb < p2.nb;
}

inline void solve(){
	cin>>n;
	for(int i=0;i<n;i++) cin>>s[i];
	for(int i=0;i<n;i++){
		p[i].nb = i;
		int wi = 0;
		for(int j=0;j<n;j++){
			if(s[i][j]=='o') wi++;
		}
		p[i].win = wi;
	}
	sort(p,p+n,cmp);
	for(int i=0;i<n;i++){
		cout << p[i].nb + 1 << " ";
	}
	return ;
}
 
int main()
{
    IOS
    int _ = 1;
    // cin >> _;
    while(_ --) solve();
    return 0;
}

C - World Tour Finals

链接 : 

C - World Tour Finals

思路 : 

  1. 将m道题中每道题的分数记录在a数组中;
  2. 将n个选手的做题情况记录在s数组中;
  3. 在数组s的读入过程中,将n位选手的当前分数记录在nb数组中
  4. 然后开始结果的处理,得到n位选手中当前得分的最大值ma;
  5. 对于每位选手,如果要成为第一,那么按照贪心的思想,应该先做分数较大且未做的题目,然后模拟即可;

代码 : 

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'

using namespace std;
typedef long long LL;

const int N = 108;
int n,m;
int a[N];
int nb[N];
string s[N];


inline void solve(){
	cin>>n>>m;
	for(int i=1;i<=m;i++) cin>>a[i];//m道题的分数 
	int ma = 0; 
	for(int i=1;i<=n;i++){
		cin>>s[i];
		int nbv = 0;
		for(int j=0;j<m;j++){
			if(s[i][j]=='o') nbv += a[j+1];
		}
		nb[i] = nbv + i;
		ma = max(ma,nb[i]);
	}
	for(int i=1;i<=n;i++){
		int cha = ma - nb[i];
		if(cha == 0){
			 cout << 0 << endl;
			 continue;
		}
		vector<int> num;
		for(int j=0;j<m;j++)
			if(s[i][j]=='x') num.push_back(a[j+1]);
		sort(num.begin(),num.end());
		int t = 0;
		for(int k=num.size()-1;k>=0;k--){
			cha -= num[k];
			t++;
			if(cha <= 0) break;
		}
		cout << t << endl;
	}
	return ;
}
 
int main()
{
    IOS
    int _ = 1;
    // cin >> _;
    while(_ --) solve();
    return 0;
}



D - Merge Slimes

链接 :

D - Merge Slimes

思路 : 

用hash表按照题意模拟即可;

注意要开long long !!!

代码 : 

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);

using namespace std;
typedef long long LL;
int n,ans;
map<LL,LL> mp;

inline void solve(){
	cin>>n;
	for(int i=1;i<=n;i++){
		int s,c ; cin>>s>>c;
		mp[s] = c;
	}
	for(auto it : mp){
		ans += it.second % 2;
		mp[it.first * 2] += it.second /2 ;
	}
	cout << ans;
}
 
int main()
{
    IOS
    int _ = 1;
    while(_ --) solve();
    return 0;
}

欢迎交流文章来源地址https://www.toymoban.com/news/detail-726309.html

到了这里,关于UNIQUE VISION Programming Contest 2023 Autumn(AtCoder Beginner Contest 323)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AtCoder Beginner Contest 348

    给定 (n) ,输出 (ooxooxoox...) ,长度为 (n) 。 按题意模拟即可。 神奇的代码 给定 (n) 个点,对每个点,求出与其距离最远的点的下标。 (n) 只有 (100) ,对于每个点,花 (O(n)) 遍历每个点最大化距离,时间复杂度为 (O(n^2)) 。 神奇的代码 (n) 个豌豆,每个豌豆有美味值

    2024年04月08日
    浏览(42)
  • AtCoder Beginner Contest 300

    给定一个元素互不相同的数组 (c) 和 (a,b) ,找到 (i) 使得 (c_i = a + b) 直接 for 循环寻找即可。 神奇的代码 给定两个矩阵 (A,B) ,问能否对 (A) 进行若干次变换操作得到 (B) 。 变换分两种,一种是将第一列放到最后一列,另一种是将第一行放到最后一行。 范围不大,直

    2024年02月01日
    浏览(58)
  • AtCoder Beginner Contest 331

    给定一年的月数和一月的天数,以及当天日期,问次日的日期。 一个简单的进制加法运算,超出进制数则向前加一。 神奇的代码 给定 (6,8,12) 根胡萝卜的价格。 问买至少 (n) 根胡萝卜的最小花费。 由于 (n) 只有 (100) ,花 (O(n^3)) 枚举这三类胡萝卜的购买次数,取花费最

    2024年02月05日
    浏览(43)
  • AtCoder Beginner Contest 302

    给定怪物的血量 (a) 和你每次攻击扣除的血量 (b) ,问打多少次怪物才会死。 答案即为 (lceil frac{a}{b} rceil = lfloor frac{a + b - 1}{b} rfloor) 神奇的代码 给定一个二维网格,格子上有字母,找到一连串位置,使得其字符串为 (snuke) ,要求这一连串位置俩俩相邻,即有共边或

    2024年02月05日
    浏览(78)
  • AtCoder Beginner Contest 304

    依次给定每个人的姓名和年龄,排成一圈。从年龄最小的人依次输出姓名。 找到年龄最小的,依次输出就好了。 神奇的代码 给定一个数字,如果其超过三位数,则仅保留其最高三位,低位数字全部置为0。 读一个 string ,直接赋值即可。 神奇的代码 给定 (n) 个人的坐标,第

    2024年02月07日
    浏览(39)
  • AtCoder Beginner Contest 344

    给定一个字符串,包含两个 | ,将 | 和两个 | 之间的字符消去。 按照题意模拟即可。 Python 比较简洁。 神奇的代码 给定 (n) 个数,倒序输出。 储存这 (n) 个数,然后倒着输出即可。 神奇的代码 给定三个数组 (a,b,c) ,回答 (q) 次询问。 每次询问,给定 (x) ,问能否从三

    2024年03月10日
    浏览(60)
  • AtCoder Beginner Contest 329

    劳累一天不该写题,启发式合并都写错了 给定一个字符串,将每个字符输出出来,中间留个空格。 遍历输出即可。 神奇的代码 给定一个数组,找出次大的数。 遍历一下,从非最大的数求一个最大值即可。 神奇的代码 给定一个字符串,问有多少个连续的子串,其由一个字母

    2024年02月05日
    浏览(75)
  • AtCoder Beginner Contest 339

    给一个网址,问它的后缀是多少。 找到最后的\\\'.\\\'的位置,然后输出后面的字符串即可。 python 可以一行。 神奇的代码 二维网格,上下左右相连,左上原点。初始全部为白色,位于原点,面朝上。 进行 (n) 次操作,每次操作,将当前格子颜色黑白反转,然后 如果原来是白色

    2024年02月19日
    浏览(31)
  • AtCoder Beginner Contest 340

    给定等差数列的 首项 、 末项 、 公差 。 输出这个等差数列。 从 首相 依次累加 公差 到 末项 即可。 神奇的代码 依次进行 (Q) 次操作,分两种。 1 x ,将 x 放到数组 (a) 的末尾。 2 k ,输出数组 (a) 的倒数第 (k) 项。 用 vector 模拟即可,操作 2 可快速寻址访问。 神奇的代

    2024年02月19日
    浏览(33)
  • AtCoder Beginner Contest 314

    怎么好多陌生单词 审核怎么这么逆天,半小时还没审完 给定 (pi) 的值以及数 (n) ,要求保留 (n) 位小数输出,不四舍五入。 字符串形式储存然后截取末尾即可。 神奇的代码 (n) 个人玩轮盘赌游戏,简单说就是一个转盘有 (37) 个数字以及一个箭头,箭头会等概率停在某

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包