社区讨论

「CyOI」Round 1 赛后总结帖

学术版参与者 100已保存回复 136

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
136 条
当前快照
1 份
快照标识符
@me8gpofp
此快照首次捕获于
2025/08/12 19:32
6 个月前
此快照最后确认于
2025/11/04 06:22
4 个月前
查看原帖
你好,我们是 CyOI!

比赛概况

本场比赛共有 2.4×1032.4\times10^3 人报名,其中非零分选手 389389 人,AK 选手 00 人。
各题具体情况如下:
题目提交次数通过人数通过率^\dagger预期
A2503250355552.20%2.20\%符合预期
B42804280110.02%0.02\%远低于预期
C63363317172.69%2.69\%略高于预期
D328328220.61%0.61\%符合预期
^\dagger 通过率为 通过人数 除以 提交次数。
题目题解已公开。题目将会加入主题库,其中 C 题将被加强。

致歉

  • 由于一些原因,我们在比赛审核阶段没有落实团队的奖项认证情况,未能与审核进行充分交流,导致了今天上午 T1 因为出题人资质问题被临时撤下,进而导致整体难度过高,在此表示歉意。
  • 追忆 一题被爆标。std 的原复杂度为 O(n53)O(n^{\frac{5}{3}}),实际上,可以做到 O(n32)O(n^{\frac{3}{2}})
  • 本帖发布较晚。

杂言

正如并不后记的后记里写到,CyOI 是一个临时拼凑的团队,大家因不同的原因偶然相遇,在此之后也是必然四散离开。
但无论如何,作为 NOI 2026 举办校的学生,希望大家都可以在 NOI 2026 的舞台上相聚。希望大家,都能拥有一个美好的未来。
获奖名单
排名奖
rk1\texttt{rk1} BreakPlus56r
rk2\texttt{rk2} clyclycly28r
rk3\texttt{rk3} zhenghanyun19r
rk4\texttt{rk4} dream1014r
rk5\texttt{rk5} Graphcity11r
一血奖
A\texttt{A} dream108r
B\texttt{B} thomaswmy15r
C\texttt{C} zhenghanyun29r
D\texttt{D} waaadreamer57r
幸运奖
中奖编号排名: 9 17 20 21 28 33 43 47 56 64 的用户。
Moon_WindGold14526Waterspherexujiangnan1014trp_hyZ_Z_YDFM_OdxbtWater__ProblemfairfriendZ各获得 5r。
生成程序 by deepseekCPP
#include <iostream>
#include <vector>
#include <unordered_set>
#include <random>
#include <algorithm>

using namespace std;

vector<int> drawLottery(int n, const unordered_set<int>& excluded, int winnersCount) {
    // 检查参数是否有效
    if (n <= 0 || winnersCount <= 0) {
        cerr << "Error: n and winnersCount must be positive." << endl;
        return {};
    }
    
    if (excluded.size() >= n) {
        cerr << "Error: Too many excluded numbers." << endl;
        return {};
    }
    
    if (n - excluded.size() < winnersCount) {
        cerr << "Error: Not enough candidates after exclusion." << endl;
        return {};
    }

    // 准备候选池
    vector<int> candidates;
    for (int i = 1; i <= n; ++i) {
        if (excluded.find(i) == excluded.end()) {
            candidates.push_back(i);
        }
    }

    // 随机打乱候选池
    random_device rd;
    mt19937 g(rd());
    shuffle(candidates.begin(), candidates.end(), g);

    // 取前winnersCount个作为中奖者
    vector<int> winners(candidates.begin(), candidates.begin() + winnersCount);
    sort(winners.begin(), winners.end()); // 排序结果便于查看

    return winners;
}

int main() {
    // 输入参数
    int n = 65;          // 总人数
    unordered_set<int> excluded = {1,2,3,4,5,58,65}; // 排除的编号
    int winnersCount = 10; // 中奖人数

    // 抽奖
    vector<int> winners = drawLottery(n, excluded, winnersCount);

    // 输出结果
    if (!winners.empty()) {
        cout << "中奖编号为: ";
        for (int num : winners) {
            cout << num << " ";
        }
        cout << endl;
    }

    return 0;
}
我将在两日内联系您并发送奖金,请注意“私信接受设置”需要为“所有人”。 您也可以主动联系 QQ:3640233006

回复

136 条回复,欢迎继续交流。

正在加载回复...