cosmicAC's Blog

Some dying memory...

NOI2020游记

Day -1 今天上午乘火车来到了长沙,是人生第一次坐高铁一等座,觉得好像和二等座也没什么区别(?)。下午来到了学校报到,宿舍里像xyx曾经描述过的一样,洗澡时脚下是一个万丈深渊。 这几天看见了B站上的一个视频,本来前几天我就想看看这个能不能在wine中跑起来的,结果一直没时间搞。今天在火车上(以及下午)没有任何事干,就加了群,下载了很多的以撒mod,包括第一人称、GoodTrip、跳...

Rust测速

此文章比较了一些常用数据结构和算法的C++实现和Rust实现的速度。 此处的C++,指g++ 10.0.1和clang++ 10.0.0;Rust指rustc 1.43.0。C++的编译参数是-Ofast -march=native -std=c++20;Rust的编译参数是-C opt-level=3 -C target-cpu=native。速度,指user time。 为了排除读...

关于basic_string的+=重载的CE问题

NOI Linux就是垃圾,不接受反驳

(完全合法的)C++代码: struct st{int x,y;}; basic_string<st> a; int x=10; a+={x,0}; 在某些吃了屎的编译器中就会CE,正常的人类可用的编译器都可以得出正确的结果。 以下是使用LOJ的C++11(NOI)选项进行黑盒测试时,得出的一些猜想。 错误的测试方法 最开始我没有使用变量x,写成了a+={0,1};。结...

从vector迭代器的非法化谈起

好久没写博客了,然而真的没什么想写的,只好瞎水一篇了。 众所周知,如果一个std::vector的capacity()被改变了,所有迭代器都会被非法化。今天在LA群里有人谈到过这个问题,并且之前校内训练时也有人因为这个原因调试了很久。 这个“非法化”到底是什么意思呢?zh.cppreference.com中没有给出详细的解释。但是很容易猜测,原来的内存已经被释放了,访问已经被释放了的内...

cos的求和

\[\begin{aligned} \sum_{k=0}^{n}\cos{(kx)}&=\Re\left(\sum_{k=0}^{n}e^{ikx}\right) \\ &=\Re\left(\frac{1-e^{ix(n+1)}}{1-e^{ix}}\right) \\ &=\Re\left(\frac{1-\cos((n+1)x)-i\sin((n+1)x)}{1...

2020省选记

我的最后一次省选了。高一时写的省选记回顾:(Round 2和Round 1)。 Day -1 觉得这多半会是我人生中的最后一天OI训练了,据说是信心赛,然而貌似这个信心只有高一的大佬们收到了:他们全部理论AK,我却不会。 下午首先是准备会。xyx告诉了我们一点人生的经验。然后大家都回家了,机房里就只剩下几个人。我开了一局以撒,夏娃,白嫖成功了,最后获得了白猫头硫磺火。觉得 rp--。 ...

加密测试

密码123456。 Password: Submit 密文 不可见

Rust体验:编写n皇后

这辈子不想写第二个Rust程序了!(真香)

这几个月反复看见知乎等等各种地方很多人狂吹Rust,说这是将来可以取代C / C++的语言,我就忍不住好奇,去尝试了一下。结果令我相当的不爽,以后再也不写Rust了。 安装 apt大法好 sudo apt install rustc 吐槽 我曾经学过的语言中,Pascal让我感到严谨但冗长,C / C++是飞快却危险,Python是简洁优美却龟速,JavaScript是无任何限...

关于全局平衡二叉树等

我写这篇文章是因为前几天看到了一个知乎问题。我看到这篇文章的第一反应就是:你这个复杂度还不如全局平衡二叉树呢,而且看起来比全局平衡二叉树难写一万倍,真是没事找事。然而转念一想:全局平衡二叉树是怎么路径修改的?我还没有仔细考虑过这个问题呢!于是就具体实现了一下。 实现完之后,我发现我是在重新造轮子,第一篇提出这个数据结构的论文就提到了做法(虽然很不清晰)。 下面讲述了路径加常数/路径求最大...

C++20部分语法介绍

这篇文章姗姗来迟了。按照之前的惯例,我升级Ubuntu系统至20.04之后尝试了一下 C++20 的新语法。在g++-10和clang++-10中已经有了-std=c++20的编译选项,支持的 C++20 语法特性已经比一年前多了很多。现在我来由浅入深地总结一下自己觉得有用的内容。 编译环境:g++ 10.0.1;clang 10.0.0;Ubuntu 20.04 LTS。 参考资料:...