欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 【蓝桥杯集训·每日一题2025】 AcWing 4888. 领导者 python

【蓝桥杯集训·每日一题2025】 AcWing 4888. 领导者 python

2025/3/18 18:28:41 来源:https://blog.csdn.net/2401_87245677/article/details/146233600  浏览:    关键词:【蓝桥杯集训·每日一题2025】 AcWing 4888. 领导者 python



AcWing 4888. 领导者

Week 4
3月12日

题目描述

N N N 头奶牛站成一排,从左到右依次编号为 1 ∼ N 1 \sim N 1N

每头奶牛要么是根西牛(用 G 表示),要么是荷斯坦牛(用 H 表示)。

每头奶牛都写下了一份奶牛名单,其中第 i i i 头奶牛写下的名单中包含 [ i , E i ] [i,E_i] [i,Ei] i ≤ E i ≤ N i \le E_i \le N iEiN)范围内的所有奶牛。

现在,我们要在每个品种的奶牛当中选出一个领导者。

要求,每个领导者写下的奶牛名单应满足以下两个条件中的至少一个:

  • 名单中包含其品种的所有奶牛。
  • 名单中包含另一品种的领导者。

请问,一共有多少个满足条件的选择方案。

输入格式

第一行包含整数 N N N

第二行包含一个长度为 N N N 的由 GH 构成的字符串,其中第 i i i 个字符表示第 i i i 头奶牛的品种(G 为根西牛,H 为荷斯坦牛)。

第三行包含 N N N 个整数 E 1 , E 2 , … , E N E_1,E_2,…,E_N E1,E2,,EN

输出格式

一个整数,表示满足条件的选择方案数量。

数据范围

2 ≤ N ≤ 1 0 5 2 \le N \le 10^5 2N105,
i ≤ E i ≤ N i \le E_i \le N iEiN,
保证根西牛和荷斯坦牛的数量均不小于 1 1 1
保证至少存在一个满足条件的选择方案。

输入样例1:
4
GHHG
2 4 3 4
输出样例1:
1
样例1解释

唯一满足条件的方案是选择奶牛 1 1 1 和奶牛 2 2 2 作为领导者,奶牛 1 1 1 的名单中包含奶牛 2 2 2(另一品种的领导者),奶牛 2 2 2 的名单中包含所有同品种奶牛。

其它方案均不满足条件,例如,选择奶牛 2 2 2 和奶牛 4 4 4 作为领导者就不可行,因为奶牛 4 4 4 的名单中既不包含另一品种的领导者,也不包含所有同品种奶牛。

输入样例2:
3
GGH
2 3 3
输出样例2:
2
样例2解释

一共有 2 2 2 种满足条件的选择方案:

  • 选择奶牛 1 1 1 和奶牛 3 3 3
  • 选择奶牛 2 2 2 和奶牛 3 3 3

分类讨论


AC_code

n = int(input())  
s = [0] + [0 if x == 'G' else 1 for x in input()]  
e = [0] + list(map(int, input().split()))  l = [-1, -1]  # 第一次出现的位置  
r = [-1, -1]  # 最后一次出现的位置  for i in range(1, n + 1):  x = s[i]  if x == 0 and l[0] == -1:  l[0] = i  elif x == 1 and l[1] == -1:  l[1] = i  if l[0] != -1 and l[1] != -1:  break  for i in range(n, 0, -1):  x = s[i]  if x == 0 and r[0] == -1:  r[0] = i  elif x == 1 and r[1] == -1:  r[1] = i  if r[0]!= -1 and r[1]!= -1:  break  ans = 0  
if e[l[0]] >= r[0] and e[l[1]] >= r[1]:  ans += 1  a = s[1]  
b = a ^ 1  
if e[l[b]] >= r[b]:  for i in range(1, l[b]):  if e[i] >= l[b]:  ans += 1  if e[1] >= r[a] and e[1] >= l[b]:  ans -= 1  
print(ans)

END
如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢谢

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词