首页 > 编程语言 >A.World Final? World Cup! (I)【2023牛客寒假算法基础集训营1】

A.World Final? World Cup! (I)【2023牛客寒假算法基础集训营1】

时间:2023-01-18 17:35:55浏览次数:66  
标签:进球数 Cup -- 罚球 bw aw World 集训营

A.World Final? World Cup! (I)

原题链接

题意

  • AB两队ABABABABAB形式轮流罚球共10次,给出01串代表每次罚球的结果,问是否能在第x球后知道比赛结果,能则输出x,若10轮内没有分出胜负则输出-1

思路

  1. 胜利条件:胜球数多
  2. 如果第x球后就知道比赛结果,获胜的一队的【进球数】便大于失败的一队的【进球数+剩余罚球机会】(即使后面罚球中该队全不中,另一队全中,也不能够对结果产生影响) -> 需要记录各自【进球数】和【剩余罚球机会】
  3. 如果10轮内不能分出胜负即最后【罚球机会】均为0 且 【进球数】相等

代码

点击查看代码
#include<iostream>

using namespace std;

#define prep(i,a,b) for(int i = (a); i <= (b); i ++)
#define rrep(i,a,b) for(int i = (a); i >= (b); i --)

typedef long long LL;
const char nl = '\n';
int T, n, m;
char a[11];
int aw,bw,ar = 5,br = 5;

void solve() {
    aw = 0,bw = 0,ar = 5,br = 5;	//每次需要进行初始化
	cin >> a + 1;	//字符串的输入
	prep(i,1,10){
	//奇偶判断AB
		if(i%2)ar--;	//罚球机会--
		else br--;

		if(a[i] == '1'){
			if(i%2)aw++;	//进球数++
			else bw++;
		}
        if(aw > bw + br || bw > aw + ar){
            cout << i << nl;
            return;
        }
	}
	if(aw == bw)cout << -1 << nl;

}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);

	cin >> T;
	while (T--) {
		solve();
	}

	return 0;
}


细节

  1. 记得初始化

标签:进球数,Cup,--,罚球,bw,aw,World,集训营
From: https://www.cnblogs.com/J-12045/p/17060265.html

相关文章

  • 2023牛客寒假算法基础集训营1
    2023牛客寒假算法基础集训营1AA题目大意是AB两个个人点球,给你一个长度为10的字符串,1即为成功,否则失败,问多少场可以结束(得出谁输谁赢),否则输出-1我们可以记录到某一点的......
  • 2023牛客寒假算法基础集训营1 ACDEFGHKLM
    比赛链接A题解知识点:模拟。显然。(用char输入到一半直接给答案跳出,WA了两小时,无话可说。时间复杂度\(O(1)\)空间复杂度\(O(1)\)代码#include<bits/stdc++.h>#d......
  • 2023牛客寒假算法基础集训营1题解
    写在前面全文收集了部分学长以及我自己的代码,本蒟蒻第一次写博客,效果不好请见谅TwT原题链接:https://ac.nowcoder.com/acm/contest/46800#questionA:WorldFinal?WorldC......
  • Codeforces Round #844 (Div. 1 + Div. 2, based on VK Cup 2022 - Elimination Rou
    C.EqualFrequencies(贪心)题目大意给定一个由小写字母构成的字符串\(s\),若该字符串中所有字母出现次数相等,则称其为“平衡字符串”。给定一个字符串\(s\),问将其修改为......
  • 【2023牛客寒假算法基础集训营1】小复盘
    AWorldFinal?WorldCup!(I)4种情况,想全就过。A先踢numaA当前踢进的数量numbB当前踢进的数量①A踢完/A必赢/B还能踢k脚numa>numb+k②A踢完/B必赢/A还能踢k脚nu......
  • Codeforces Round #844 (Div. 1 + Div. 2, based on VK Cup 2022 - Elimination Round
    比赛链接A题意设计一条线路要贴着6个墙面走,从\((a,b)\)到\((f,g)\),线路长度最短。题解知识点:模拟。分类取最短即可。时间复杂度\(O(1)\)空间复杂度\(O(1)\)......
  • 2023牛客寒假算法基础集训营1
    2023牛客寒假算法基础集训营1https://ac.nowcoder.com/acm/contest/46800过了7题,写一半没撑住去睡觉了。官方难度预期:果然我还是很菜哇qaqA-WorldFinal?WorldCu......
  • 2023牛客寒假算法基础集训营1 A题
    原题链接#include<bits/stdc++.h>usingnamespacestd;intmain(){intcnt1,cnt2,n,flag=0,a,b;cin>>n;stringstring1;while(n--){cnt1=c......
  • Codeforces Round #844 (Div. 1 + Div. 2, based on VK Cup 2022 - Elimination Round
    Preface打的好鸡啊这把,C写的糙了,100行不说还犯了好多nt错误,最后1min看出来一个符号写反了才过下次卡题的时候一道题挂三次以上就要换题了的说,这次的D基本一眼秒的,如果先......
  • 01:Hello, World!
    ​​原题链接​​总时间限制:1000ms内存限制:65536kB描述对于大部分编程语言来说,编写一个能够输出“Hello,World!”的程序往往是最基本、最简单的。因此,这个程序常常作......