Farewell, OI

Farewell, OI

NOIP2020之后我度过了高中的第一个年头。这一年里我可以说没怎么准备OI了,也没怎么刷题,时间全花在学业和自己钻研的一些项目(比如Qt)上了。 转眼间就到了NOIP(CSP-S)2021报名的日子,而在别的OIer都在准备初赛的同时…… 我选择了提前退役。
回首三年的OI生涯, 我既学到了不少大学CS课程的内容(虽然并没学的很懂),也结交了不少OIer, 有了许多不一般的经历,而OI也成为了我生活中, 不,我生命中重要的一部分,甚至一定程度上塑造了我的一部分人格. 而我现在除了不舍,更多的可能还是不甘 - 到最后,还是以两个省二的成绩遗憾谢幕。

Read more
Goodbye macOS: aisuneko 的 Debian 使用心得

Goodbye macOS: aisuneko 的 Debian 使用心得

写在前面

距离上次重装 macOS 已经过去了三年(那次是因为装 Ubuntu 双系统试图 fix 分区间互传文件的权限问题给整坏了), 逐渐发现整个系统变得越来越 cursed, 甚至时常五国, 便寻思着什么时候安排一下重装. 朋友先是建议我直接升 macOS Big Sur, 见我不愿意又百般劝说我直接换 GNU/Linux……. 经不住朋友软磨硬泡, 在朋友(长达数小时的)耐心指导下成功 fresh install Debian bullseye. 目前已使用一个月有余, 在这里简单写点心得体会吧.

Read more
「Windows 11 Installer, Reimagined」: 用 Windows 11 的方式打开各类安装程序
GitHub Discussions GraphQL API 初体验

GitHub Discussions GraphQL API 初体验

最近在关注这个项目,看到讨论群里有 dev 表示收集到的数百条问卷数据人工处理难以应对,便萌生了帮助实现自动化的想法。

于是花了一点时间学习了 GraphQL 的基本操作,并研究了今年刚刚公测且鲜为人知的 GitHub Discussions GraphQL API, 实现了一个往 repo 中的 Discussions 上传数据 (Create Discussions) 的 PoC…… 奈何群里反应冷淡,dev 似乎忙于处理其他事务无暇顾及自动化, 就权且把大致流程写在这里吧。

Read more
Fell into oblivion: aisuneko's story

Fell into oblivion: aisuneko's story

又是一次砸掉的考试, 又是一次煎熬的家长会。

被家长责骂过的我,躺在床上,一句话也说不出;良久,我勉强擦干泪水,坐到电脑前写了点东西。

Read more
P1189 SEARCH 题解

P1189 SEARCH 题解

应该是第一道没有看任何题解自己做出来的绿题了

Read more
aisuneko's 2020 Recap

aisuneko's 2020 Recap

2020 确实是不寻常的一年, 而总结下来, 我的这一年也过的很不一般……

大概是五味杂陈吧, 没法准确概括.

Read more

CSP-S 2020 / NOIP2020 游记

今年主要是想看看相比去年有没有什么长进, 当然也不抱什么希望.

实际上结果还是跟去年差不多……

Read more

Untitled

NOIP考前在这里发一首随便写的arknights doujin poem吧.

她下意识看了看身上悬浮的矿石

带着蓝绿色花纹的戒指

她出了门

外面的建筑上栖息着绚丽的晶体

和熊熊燃烧的火焰

在冰冷的空气中肆意起舞

远处传来机械的轰鸣

她感到大地似乎也跟着移动

穿行于一片又一片废墟间

望着偌大的陨石落在不远处

她看见无数在街旁痛苦呻吟的人们

望见他们身体上悬浮在空中的矿石

她知道

她也是他们中的一员

而她无法也无力停住脚步

她还有更重要的事情要做

她走到了地平线的边缘

rp++.

NOIP2012TG D1T1 Vigenère密码 题解

考前发一波题解

去年输在了那道格雷码上, 今年吸取教训, 狂刷历年tg d1t1, 其中碰到了这道字符串好题.

看到中间给的加密规则表, 立马想到可以打表, 就先打了个表.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
string abc[26]= {
"ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"BCDEFGHIJKLMNOPQRSTUVWXYZA",
"CDEFGHIJKLMNOPQRSTUVWXYZAB",
"DEFGHIJKLMNOPQRSTUVWXYZABC",
"EFGHIJKLMNOPQRSTUVWXYZABCD",
"FGHIJKLMNOPQRSTUVWXYZABCDE",
"GHIJKLMNOPQRSTUVWXYZABCDEF",
"HIJKLMNOPQRSTUVWXYZABCDEFG",
"IJKLMNOPQRSTUVWXYZABCDEFGH",
"JKLMNOPQRSTUVWXYZABCDEFGHI",
"KLMNOPQRSTUVWXYZABCDEFGHIJ",
"LMNOPQRSTUVWXYZABCDEFGHIJK",
"MNOPQRSTUVWXYZABCDEFGHIJKL",
"NOPQRSTUVWXYZABCDEFGHIJKLM",
"OPQRSTUVWXYZABCDEFGHIJKLMN",
"PQRSTUVWXYZABCDEFGHIJKLMNO",
"QRSTUVWXYZABCDEFGHIJKLMNOP",
"RSTUVWXYZABCDEFGHIJKLMNOPQ",
"STUVWXYZABCDEFGHIJKLMNOPQR",
"TUVWXYZABCDEFGHIJKLMNOPQRS",
"UVWXYZABCDEFGHIJKLMNOPQRST",
"VWXYZABCDEFGHIJKLMNOPQRSTU",
"WXYZABCDEFGHIJKLMNOPQRSTUV",
"XYZABCDEFGHIJKLMNOPQRSTUVW",
"YZABCDEFGHIJKLMNOPQRSTUVWX",
"ZABCDEFGHIJKLMNOPQRSTUVWXY"
};

然后开始写.

中间遇到了各种各样的小问题. 比如忘了需要把得到的ascii码在这里转换为下标, 再比如当中出现了奇怪的字符, 调了好一会儿才调对.

等到终于能用了, 测了测样例才发现, 原来刚才写的其实是加密…… 为了改成解密就在每一行里枚举一遍找对应的字符获取明文. 其实本来可以通过改打表的方式实现, 但懒得写了 (

最后提交, AC, 24ms.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath>
using namespace std;
string abc[26] = (...)
int main(){
string k, s;
cin >> k;
cin >> s;
for(int i = 0; i <= 5; i++) k += k;
for(int i = 0; i < s.length(); i++){
int K= (k[i] >=65 && k[i]<=90) ? (int)(k[i]-65):(int)(k[i]-97);
char S = (s[i] >= 97 && s[i] <= 122) ? s[i]-32:s[i];
for(int j = 0; j < 26; j++){
if(abc[K][j]==S){
if(s[i] >= 97 && s[i] <= 122) cout << (char) (j+97);
else cout << (char) (j+65);
break;
}
}
}
return 0;
}

原谅我奇怪的码风

下午rp++, 争取 AC T1 ()