UOJ Logo vfleaking的博客

博客

UOJ NOI Round #4 排行榜

2020-08-13 18:10:25 By vfleaking

下面宣布 UOJ NOI Round #4 总排行榜!(自动鼓掌,瓜几瓜几瓜几瓜几……

因为参赛人数比预期多,所以金银铜牌数量都进行了扩充。

祝取得高分的选手在 NOI 中继续保持高水平!

没参加笔试还拿到牌牌的选手在 NOI 中一定要记得参加笔试哦(大雾)

(知乎吐槽传送门: https://www.zhihu.com/question/413718499

阅读更多……

深切哀悼逝世同胞

2020-04-04 01:50:05 By vfleaking

2020 年 4 月 4 日,是中华传统节日清明节,也是纪念所有因此次新冠肺炎疫情逝世的同胞的全国哀悼日。

在这个充满哀思的日子里,UOJ 全站切换为了黑白色,以表达深切的哀悼。

我是土生土长的武汉人,UOJ 也是在湖北武汉备案的网站。曾经武汉是那么的热闹,清晨的热干面铺子,总是人挤人。

但不知何时,这场天灾悄悄地来到人世间,突然在我的家乡爆发。我看到了很多身边人受苦受难,看到了现代文明是如此地不堪一击。

愿每一个因疫情离开我们的人都能被人铭记。

愿每一个因疫情陷入窘迫的小人物都能早日走出困境。

愿我们弱小而无知的人类,能从这段历史中不断反思、总结。

愿我们弱小而无知的人类,永远保持谦虚,永远敬畏自然,永远相信科学和理性。

最后,愿我们每一个热爱计算机科学的 OIer,退役之后仍能走在科技的最前沿,成为人类技术进步浪潮中的一朵浪花。

毕竟,能对抗天灾的,不是傲慢,而是科学。

与君共勉。

近期UOJ的一些改动

2020-03-29 17:08:56 By vfleaking

大扎吼,我四渣渣k,贪玩懒J,介四里没有挽过的船新版本。挤需体验三番钟,里造会赶我一样,爱象节款OJ!(大雾)

咳咳,说人话。就是最近觉得 UOJ 实在是太年久失修了!强迫症的我这两周改了一发各种不爽。

当然在强迫症的眼里不爽的地方太多了,与我自身能付出的时间极度不匹配。所以我只能先改一部分了。。。

已经完成的改动

题目中的图片问题

由于有些题目时间比较久了,图挂掉了。这是因为有些图片是放在奇奇怪怪的网站的,然后有些没能经受起大风大浪,就倒闭了。。。

所以我通过各种方式先把挂掉的图找了回来(主要是找出题人要),然后把所有现存的题目中的图片移动到了 UOJ 的图床 img.uoj.ac 下。

这样只要 UOJ 不倒,图片就不会挂啦!

Mathjax 的问题

博客评论里面,如果对一个评论的回复超出了一页,那么翻页的时候 Mathjax 不会被重新加载。去年 9 月 就有良心用户报告过这个问题。这显然是个 bug,现在已经修好辣!

以及 UOJ 使用的 Mathjax 原来是 2.6.0,有点老了。为了紧跟潮流,现在升级到 2.7.7 辣。当然如果 Mathjax 3 更好用的话会考虑再升级一下。

CE 时的错误信息长度

原来 UOJ 存储时为了节省空间,在大家 CE 的时候会把错误信息只截取前 500 个字节保存下来。

但我寻思着你交个代码就几 KB 没了,何必节省这种空间。。毕竟通常来说只截取前 500 个字节会看得人一脸懵逼。

所以现在把长度限制改成 10KB 了,感觉肯定够用了。

Markdown 教程的链接

UOJ 博客编辑器右上方会有个 “这玩意儿怎么用” 的链接,链到 UOJ博客使用教程

里面附了一个完整的 Markdown 教程链接,但是不知什么时候链接挂掉了。去年 8 月就有良心用户报告过这个问题。

现在我已经把该链接从 http://wowubuntu.com/markdown/ 更换为了 https://www.w3cschool.cn/markdownyfsm/

如果你是考古爱好者,可以在这里找到原来的链接的存档。

即将上线

HTTPS

如果你戳戳 https://uoj.ac 就会发现 UOJ 已经可以通过 HTTPS 访问勒。。

当然我还没有设置把 HTTP 强制跳转到 HTTPS,估计在某个夜深人静的晚上我就会设置了。

交互库加密

UOJ 一直以来都是使用输出 token 的策略来防止交互库被 hack 的,但 UOJ 上有些 CTF 选手水平非常高超,一眼就看穿了怎么把 UOJ 的交互库给 hack 掉,程序跑得比谁都快:#277631, #352160

为了防止世界被破坏,我研究了下怎么更好地防御攻击,做了一个小小的带加密的交互库(见 #509 下方的说明,mt19937_64 未来会改为 AES)。

当然肯定不能杜绝交互库被 hack 的行为,因为你的程序和交互库编译在了一起,熟悉存储结构的 CTF 选手可能仍然有很多绕开密码学的攻击方式。例如 #388739 曾经就获得了满分,还有这种直接改交互库的 srand 的 #205655。。我也会再研究下怎么更好地防御这些攻击。。不过我觉得这里的哲学应该是:只要我们让交互库被 hack 的难度和代码量足够大,大到选手觉得 hack 交互库还不如直接写个正解的话,这种行为就自然被杜绝了。即使真的被 hack 了,我们也会移除此类提交,保证他们不在 AC 的排行榜上出现。

当然有同学就会问了:为什么不直接使用标准输入输出进行交互?这里的主要问题其实是效率问题。如果交互量不大(比如 #545),当然可以采取这种方式。但如果交互量大到了 $10^7$,效率其实是非常低的。所以为了支持所有可能的题目,UOJ 未来将把通过函数交互和通过标准输入输出交互两类题目的支持做得更好。

等到我确定 #509 的有效防御方式之后将会把 UOJ 上所有函数交互的题目加上此类防御,欢迎大家最近踊跃尝试一下有哪些 hack 掉 #509 的交互库的方式并及时告诉我。

准备解决的问题

  • 仿照 UOJ 社区版直接通过 UOJ 系统生成时间空间限制以及样例下载链接,避免出题人手打出错
  • 题库搜索
  • 支持 C++ 14、C++ 17
  • 邮箱认证
  • Runtime Error 和使用危险系统调用的时候给予更多的提示信息
  • ……

解决不了的问题

题目中的维基链接

UOJ 上有些题目(#75, #83, #475)上面有指向维基的链接,但由于众所周知的原因,你不用“一些网络技术”,是没法直接访问的。这些题目链接了维基,主要是因为当时传题的时候维基还是个可以正常访问的网站。为了保持历史的原始风貌,就只能让这些不能直接访问的链接留着了(不过之后可能会换上个镜像。。。吧)

2020.6.6 更新

有点鸽,默默地把标题上的“【持续更新】”去掉了

2020.8.19 更新

  • 评论回复上限从140个字节改为500个字节(因为现在这个时代模仿微博没有任何意义。。)
  • 新增博客按最后回复时间排序的功能

2020.8.24 更新

  • 题面和博客中的列表增加两格缩进,被包含于列表、引用、表格等之内的段落取消自动缩进
  • 博客总览页显示评论数和点赞数

2020.8.30 更新

  • 终于加上了题库搜索。。。之前一直没加的原因其实是我想做个比较完整的站内搜索功能,但我也并没有多少开发时间。意识到这一点之后,我今天趁着有空快速写了个简易的题库搜索功能凑合凑合,参考了点 UOJ 社区版的代码 orz

2020.9.14 更新

  • 所有 http 请求强制跳转到 https

2020.9.22 更新

  • Markdown 支持表格、引用用户名

UOJ #34 多项式乘法已更换部分测试数据

2020-03-13 16:14:18 By vfleaking

前两天有良心用户 negiizhao 发现:UOJ #34 多项式乘法有 4 个测试点数据范围虽然很大,但带有特殊性质,导致按运行时间排序的排行榜上出现了一批靠特判数据性质排在前面的选手。

根据 negiizhao 在 UOJ 用户群发起的投票,有 40 票赞成更换数据,13 票反对。所以刚刚我替换掉了原来的第 3、4、11、12 号测试点,把原测试点移动到了 extra test。现在这题正在重测。

感觉这个形式很好,欢迎大家通过民主投票的方式表达自己对 UOJ 的建议哦

超人熊

统计下现在有多少UOJ?

2018-05-10 15:18:49 By vfleaking

Hi,大家好,大家还记得我吗?

好像最近大家在 CTSC + APIO,可是我看到了十五人的成绩单的时候却发现只有几个名字我熟悉了。。。然后又后知后觉地发现 PYOJ 早就消失了。。

我可能淡出 OI 太久了吧。。。突然有点伤感

想起我 NOI 那年是 2014 年,竟然已有四年之远了 (那些年的比赛还是不会搞丢选手程序的 [滑稽])

转眼我已经大三了。。我记得我大一的时候努力适应着大学的新生活,大二的时候立志要做点学术,大三上学期焦头烂额地找春季研修。。。渐渐地就忘记管 UOJ 什么事了。。。看到大家仍然还在孜孜不倦地交题感到很感动。

我有点怀念从前啊,所以大概想近期闲的时候稍微填一些坑,但也不知道最后会填多少。。。

以及我想调查下现在有多少人建了自己的 UOJ 诶,可以在评论区留下言吗?

vfleaking Avatar