第 28 场 蓝桥入门赛 ACM赛制
入门赛
本场比赛为「蓝桥·算法双周赛」第二十八场蓝桥入门赛,赛题共计 6 题,比赛时间为 2025 年 04 月 05 日(星期六),下午 19:00 ~ 21:00,共 2 小时。参赛奖励最高200元。
报名参赛
已有4148人参加
积分≥1200 本场比赛不记分
距开赛还有 03天23小时52分钟

⬆ 扫码加入竞赛交流群,入群反馈&抽奖&赛后赛题直播解析~

❗️关于蓝桥算法双周赛赛事调整的重要通知

竞赛积分大于等于 1200 的用户,参加本场比赛无积分、无奖励,不会计入排行榜,请移步参加蓝桥月赛。

对算法赛有任何的意见和建议,都可以填到表中哦👉算法赛问题收集表

一、比赛时间

  • 本场比赛为「蓝桥·算法双周赛」第二十八场蓝桥入门赛
  • 本场比赛时间为 2025 年 04 月 05 日(星期六),下午 19:00 ~ 21:00,共 2 小时

二、本场比赛信息

  • 出题人:待定。
  • 验题人:待定。

三、参赛奖励

图片描述
*nn 为自然数。
*若 100×2n1+1答题人数<100×2n100\times 2^{n-1}+1 ≤ 答题人数 < 100\times 2^{n},则计入上一周期。

抽奖代码
import random


class Gift:
    """
    抽检类
    """

    def __init__(self, user_count):
        self.user_count = user_count

    @staticmethod
    def get_luck_body(start, end, count=2):
        if start == end:
            return [start]
        luck_list = []
        while len(luck_list) < count:
            luck = random.randint(start, end)
            if luck not in luck_list:
                luck_list.append(luck)
        return luck_list

    def prize_draw(self):
        """
        抽奖函数
        """

        if self.user_count < 100:
            print("抽奖人数不足100人")
            return

        # 4-10名,赛后直播随机抽取1人,¥100
        luck_body = self.get_luck_body(4, 10, count=1)
        print("第4∼10名,赛后直播随机抽取1人,¥100,中奖名单为:{luck_body}".format(luck_body=luck_body))

        pre_section = [11, 100]
        n = 1
        while True:

            section_start = 100 * pow(2, n - 1) + 1
            section_end = min(100 * pow(2, n), self.user_count)

            if pre_section[0] <= 100:
                num_count = 4
                reward_amount = 50
            else:
                num_count = 5
                reward_amount = 20

            # 如果这个周期不是满,就用这个周期的人数加上上个周期的人数去抽奖 结束循环
            if section_end < 100 * pow(2, n):
                section_start = pre_section[0]
                luck_body = self.get_luck_body(section_start, section_end, count=num_count)
                print(
                    "第{section_start}∼{section_end}名,每个区间,赛后直播随机抽取{num_count}名,每人¥{reward_amount},中奖名单为:{luck_body}".format(
                        section_end=section_end, section_start=section_start, num_count=num_count,
                        reward_amount=reward_amount, luck_body=luck_body))
                break
            # 如果这个周期是满的 则继续循环
            else:
                pre_section_start, pre_section_end = pre_section
                luck_body = self.get_luck_body(pre_section_start, pre_section_end, count=num_count)
                print(
                    "第{section_start}∼{section_end}名,每个区间,赛后直播随机抽取{num_count}名,每人¥{reward_amount},中奖名单为:{luck_body}".format(
                        section_end=pre_section_end, section_start=pre_section_start, num_count=num_count,
                        reward_amount=reward_amount, luck_body=luck_body))
                pre_section = [section_start, section_end]

            n += 1


if __name__ == '__main__':
    user_count = input()
    gift = Gift(int(user_count))
    gift.prize_draw()
copy

四、赛后真题解析

  • 比赛赛后将提供免费直播讲解,主讲人:待定。
  • 时间:04 月 05 日(比赛当日)晚 21 时
  • 观看直播地址:http://live.bilibili.com/4798053

五、赛事交流

六、注意事项

  • 本场比赛采用 ACM 赛制,答题时可自行选择语言,提交后即出成绩,统一评分不分组,自动生成全国、全省、全校排名。
  • 本次比赛会计算等级分(可在个人中心查看),基础积分 1000 分,根据等级分计算方式,比赛结束后等级分会根据排名上下变动,请您知悉。
  • 🚫严禁开小号/和他人分享答案以达成任何目的,或者直接套用非本人编写的代码。本次比赛将使用反作弊系统,因为任何原因被反作弊系统发现(包括多人套用同一个互联网公开的代码)、被举报或在抽查代码时发现选手有影响比赛成绩公平性的行为,视情节严重性给予取消成绩、警告性封禁或者封号的处罚。
  • 如果发现比赛有原题或其他影响公平性的因素,请私聊学姐反馈,而不要以任何方式公开
  • 奖励在比赛结束后1个月内,发放给各位。
  • 此活动最终解释权归蓝桥云课运营中心所有。


    ⬆ 私聊学姐反馈~