社区讨论

2023 年洛谷愚人节月赛赛后总结

站务版参与者 75已保存回复 80

讨论操作

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

当前回复
80 条
当前快照
1 份
快照标识符
@lo2s0acf
此快照首次捕获于
2023/10/23 18:49
2 年前
此快照最后确认于
2023/10/28 13:41
2 年前
查看原帖
2023 年洛谷愚人节月赛在昨天晚上落下帷幕。

得分情况

本次比赛共有 6078 人提交代码,3730 人有分。以下为每个题目的得分情况
题目编号AC 人数平均得分(仅针对提交过该题的人)
A285864.94
B102225.58
C107233.20
D24812.50
E813.33
F40556.23
G16026.98
H14520.27
I43145.18
J118.05
K00.93
L00.00
M07.20
N10.63
O02.82
P6127.56
Q02.85
R00.00
S169.46

获奖情况

VinstaG173 的奖励的条件为:
获取《四月是你的谎言》一题中的彩蛋,并在赛时给 VinstaG173 发送正确的私信的首位选手
第一个正确发送私信的选手为 Mine_King,获得奖品:一张价值 19rmb 的四谎色纸或 15 元微信红包。请私信 VinstaG173 兑奖。

WYXkk 的奖励的条件为:
称 T316300 为原题,U113725 为隐藏题。按以下优先级发放两份奖品,发完为止:如果隐藏题通过至少一人,隐藏题第一个 AC 者;如果隐藏题通过至少两人,隐藏题其余 AC 者中随机一位;原题第一位 AC 者,与第一条重复则顺延;原题其余 AC 者中随机一位。使用种子为 20230401 的 mt19937 作为生成器,std::uniform_int_distribution<int> 作为随机生成算法。按照排行榜顺序给待抽奖的选手编号。
隐藏题的第一个 AC 者为 QwQ666_666。其余 AC 者用以下代码进行随机选取:
CPP
#include<bits/stdc++.h>
#include<random>
using namespace std;
string s[]={
"蔡竣凯 #2",
"sunzz3183 #18",
"cannotdp #20",
"_PMAC_ #34",
"xwh_Marvelous #44",
"lw21144 #46",
"OI_LOSER_CGY #53",
"听取MLE声一片 #57",
"cff_0102 #63",
"zct_sky #246",
"xjy2333 #325",
"wjq1 #345",
"Kindolph #745",
"wenlebo #1754",
"wangjingtian1234 #1962"
};
int main()
{
    mt19937 rd(20230401);
    uniform_int_distribution<int> distrib(0,14);
    cout<<s[distrib(rd)];
}
输出结果为 sunzz3183 #18
恭喜 QwQ666_666sunzz3183获得奖品:一份 14 Minesweeper Variants,或其它价格不超过 29 元的解谜游戏,或 25 元微信红包。请私信 WYXkk 兑奖。

LeavingZ 的奖励的条件为:
投最少的硬币数通过《一万巫女》,若相同取最早的提交
最少的硬币数为 xiaomuyun的 512 个,获得奖品:华中科技大学文创纪念品。请私信 LeavingZ 兑奖。

E_Space 的奖励的条件为:
赛时在《回忆录》一题中获得 200 分,若有多个取最早的提交记录
没有人获奖。奖品为 250 元红包。

kkksc03 的奖励的条件为:
排行榜首位获得奖励。在 1 到所有选手得分总和中等概率随机选取一个整数 x。同分按照排行榜上的顺序,若所有排名高于自己的选手得分总和小于 x,且所有排名不低于自己的选手得分总和大于等于 x 的选手获得奖励。同一选手不重复获得奖励。重复直到一共 5 名选手获得奖励。使用种子为 20230401 的 mt19937_64 作为生成器,std::uniform_int_distribution<long long> 作为随机生成算法。
使用以下代码进行抽取:
CPP
#include<bits/stdc++.h>
#include<random>
using namespace std;

char name[4005][300];
int score[4005];
bool award[4005];

int main()
{
	FILE *f=fopen("Contest_105199_scoreCsv.csv","r");
	char c=0;while((int)c!=-65) fscanf(f,"%c",&c); // remove csv header
	int n=4000;
	long long total_score=0;
	char tmp[500];
	for(int i=1;i<=n;i++)
	{
		fscanf(f,"%s",tmp);
		int commapos=0;
		while(tmp[commapos]!=',')++commapos;
		tmp[commapos]=0;
		sprintf(name[i],"#%d %s",i,tmp);
		sscanf(tmp+commapos+1,"%d",&score[i]);
		total_score+=score[i];
	}
	printf("Total score is %lld.\n",total_score);
	mt19937_64 rd(20230401);
	uniform_int_distribution<long long> d(1,total_score);
	int awardcnt=1;
	award[1]=true;
	printf("%s is awarded.\n",name[1]);
	while(awardcnt<5)
	{
		long long x=d(rd);
		int cur=1;
		while(score[cur]<x) {x-=score[cur];cur++;}
		if(!award[cur])
		{
			award[cur]=true;
			printf("%s is awarded.\n",name[cur]);
			++awardcnt;
		}
	}
	return 0;
}
输出结果为:
CPP
Total score is 733459.
#1 Mine_King is awarded.
#639 zzk2010 is awarded.
#80 redsky is awarded.
#325 xjy2333 is awarded.
#1226 OptimisticForever is awarded.
恭喜 Mine_Kingzzk2010redskyxjy2333OptimisticForever获得奖品:带签名的盗版《深入浅出程序设计竞赛 - 基础篇》一本。请联系 kkksc03 兑奖。

其他链接

B 站直播没有录播回放。如果需要文字版题解请加入洛谷用户群:
一群:768286139
二群:129677940
一群只允许 uid 末尾奇数的用户加,二群只允许 uid 末尾偶数的用户加。蓝金钩不受 uid 限制。
加群时,要将自己的 QQ 号写在个人介绍的最开始且无多余内容。机器人审核。
加群每天限量。

回复

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

正在加载回复...