“语法周赛”改名为“挖土机周赛”,将分为三个等级:语法场、入门场、提高场
入门场和提高场的考纲设置参考 NOI 大纲 的入门级和提高级对应的考点。
语法场的考纲基于 NOI 大纲有筛选,仅保留语法阶段内容,详细见:挖土机周赛语法场考纲
采用乐多赛制、灵活时间模式限时两小时。
每场比赛对挖土机学员发放至少 硬币的奖励,分配规则如下(以下名次指挖土机学员中排名):
幸运奖分配规则:按得分为权重(分数越高抽到的概率越大),使用随机数代码直播抽出。
抽奖代码(DevC++ 下、-std=c++14 -O2
运行)
// 最暴力的抽奖代码
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000;
int n, m;
int id[MAXN + 5]; // 编号
int score[MAXN + 5]; // 成绩
string seedS;
mt19937 rnd;
void chou()
{
int sum = 0;
for (int i = 1; i <= n; i++)
sum += score[i];
int x = rnd() % sum;
for (int i = 1; i <= n; i++)
{
if (x < score[i])
{
cout << id[i] << " ";
for (int j = i; j <= n - 1; j++)
{
id[j] = id[j + 1];
score[j] = score[j + 1];
}
n--;
break;
}
else
x -= score[i];
}
}
int main()
{
cout << "最后一次提交的记录地址:";
cin >> seedS;
unsigned seed = 0;
for (int i = 0; i < seedS.size(); i++)
seed = seed * 128 + seedS[i];
rnd.seed(seed);
cout << "总人数:";
cin >> n;
cout << "抽奖人数:";
cin >> m;
assert(m <= n);
cout << "每个人得分:\n";
for (int i = 1; i <= n; i++)
{
id[i] = i;
cin >> score[i];
}
for (int i = 1; i <= n; i++)
cout << id[i] << ":" << score[i] << "\n";
for (int i = 1; i <= m; i++)
chou();
return 0;
}
可以咨询对应教务老师本周能否在校区线下参赛。线下参赛没有额外奖励。
语法周赛的题目旨在给刚入门的新手体验比赛的乐趣。
如果你掌握了更多知识,建议参加每周六晚 AtCoder 的 AtCoder Beginner Contest 比赛。
乐多赛制、四道题目、两个小时、周末(周五 19:00 ~ 周日 23:00)随时开始。
随时开始:指的是比赛时间期限内你可以任选开始时间,开始之后你需要在最多 2 小时内完成比赛,如果在那之前比赛结束了,那么你也将无法作答。
从 Round 5 开始,难度上分为奇数场和偶数场,奇数场的题目会比较基础。偶数场的题目会稍微加一点思维难度。
涉及到的知识点仅包括 NOI 大纲中的部分 “C++ 程序设计 1”、“入门算法”、 “基础算法” 与“数学”内容。详见:语法周赛知识点。
其中四道题目分别进一步限制为:
乐多 赛制下,选手可以多次提交一道题目,并获得实时评测结果。
乐多 赛制下,多次提交会导致选手的得分被扣除,排行榜将显示用户的最高得分。
乐多 赛制下,每道题的最终得分为:。 分别代表本次得分和本次提交前的尝试次数。
乐多 排名规则为:按照如上规则折算后的分数从高到低排名。
从 23 年 12 月 29 日的“语法周赛 - 测试轮”开始,挖土机的公益赛事已经举办了十场,累计近千人次参赛。很多同学都拿到了自己喜欢的小徽章,拿到了硬币奖励。
从本周开始,挖土机公益赛事的第二阶段会正式开启!
周赛的开始时间调整为每周五晚上 19:00。我们将在每周五晚上的 19:00 ~ 21:00 组织线下一起打比赛的活动,会实时直播比赛情况并有老师进行解说。
对于语法阶段毕业的选手,可能会觉得周赛太无聊了,我们也提供了难度更高的“一起打 AT”活动,每个有 AtCoder 比赛的周六,我们会带着大家一起与全球选手同台竞技。
本周五就会开启第一场线下语法周赛活动,线下参赛所带来的紧张感是线上赛很难提供的,希望各位同学踊跃参加,提前习惯赛场氛围,提高以后正式比赛的稳定性!本周的比赛信息如下:
取消“周赛 AK 获得徽章”这个单一的奖励制度,所有奖励都会转化为硬币。用户可以通过参加周赛等方式获得硬币,目前奖励规则如下:
有了硬币自然是可以兑换想要的礼品。第一批奖励我们准备了网站的“定制徽章”,以及实物的 “定制可乐”、“CPU 钥匙扣”、“红宝石”、“乐高” 等奖品。大家可以在讨论区的置顶帖子中进行兑换。
后期我们还会上线学校热度排名功能,大家可以消耗硬币为自己的学校投票,敬请期待!