计分板 - 贪心

题目描述

计分板
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 131072KB;其他语言 655360KB
题目描述:
假设你正在参加一场比赛,这场比赛有A,B,C…M一共13题。现在,你已经通过了n题,此时你注意到,大屏幕上有一个计分板,
里面记录了每一道题目前有多少人通过。你想知道,在剩下的还没有做出来题目当中,
哪一道题才是通过人数最多的题目?如果有多个这样的题目,取题号靠前的。

import sys


n = int(input().split()[0])    # 通过的题目数目n
abcd = [x for x in input()]    # 已经通过的题目ABED...
numbers = [int(x) for x in input().split()]
all_abcd = list(range(65, 77+1))  # A,B,C...M 13道题的ASCALL码  想不起来用  ord('A') chr(65)

not_done_abcds = all_abcd.copy()  # 没有通过的题目列表
for done_abcd in abcd:
    not_done_abcds.remove(ord(done_abcd))


# 下面先找到通过人数最多的题目 用贪心策略
max_number = float('-inf')
max_index = float('inf')
for not_done in not_done_abcds:
    if numbers[all_abcd.index(not_done)] > max_number   or (numbers[all_abcd.index(not_done)] == max_number and all_abcd.index(not_done) < max_index):
        max_index = all_abcd.index(not_done)
        max_number = numbers[max_index]

sys.stdout.write(str(chr(all_abcd[max_index])))

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你想了解有关 FPGA 篮球记分器的 Verilog 代码,是吗?那么,我可以为你提供一些参考信息。 首先,FPGA 篮球记分器是一种数字电路,在 Verilog 中实现,该代码可以通过 Vivado 工具进行综合、实现和仿真。在设计过程中,需要考虑如何读取输入信号(例如,球员得分、计时器、暂停时间等),如何进行计算并更新得分,并如何控制输出信号。 以下是一个简单的 Verilog 代码示例,用于实现一个双方得分的篮球记分器: ``` module basketball_scoreboard ( input wire clk, input wire rst, input wire team1_score_inc, input wire team2_score_inc, output reg [7:0] team1_score, output reg [7:0] team2_score ); always @(posedge clk) begin if (rst) begin team1_score <= 8'b00000000; team2_score <= 8'b00000000; end else begin if (team1_score_inc) begin team1_score <= team1_score + 1; end if (team2_score_inc) begin team2_score <= team2_score + 1; end end end endmodule ``` 这是一个简单的记分模块,其中包括一个时钟和复位输入,两个输入用于增加两个团队的得分,以及两个输出,用于显示两个团队的当前得分。每当收到时钟上升沿时,代码将检查是否有一个或两个团队的得分增加,然后适当地更新得分。如果复位输入为高电平,则得分将重置为零。 当然,这只是一个简单的例子,实际的篮球记分器通常需要更多的输入和输出信号,以及更复杂的计算和控制逻辑。但是,这个例子应该可以帮助你开始编写自己的 FPGA 篮球记分器 Verilog 代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值