CSP-S2023 CQ 奇人大赏
学 OI 哪有不疯的????
使用 vscode 进行统计。
如有不妥,可以私信我撤下。也可以在评论区让我添加没有找到的奇人。
今年居然是我第三年做奇人大赏了吗。我都快退役了。
神秘文件人
//freopen
CQ-S00006(悲):
int main() {
// freopen("lock.in", "r", stdin);
// freopen("lock.out", "w", stdout);
scanf("%d", &n);
for (int i = 1; i <= 5; i++) {
scanf("%d", &s[i]);
}
(此处省略一大堆)
}
CQ-S00192 彻底放弃大模拟:
signed main() {
//freopen("struct.in","r",stdin);
//freopen("struct.out","w",stdout);
ios::sync_with_stdio(false);
scanf("%lld", &n);
while (n--) {
int a;
scanf("%d", &a);
if (a == 1) {
a1();
} else if (a == 2) {
a2();
} else if (a == 3) {
a3();
} else {
a4();
}
}
return 0;
}
CQ-S00197 虚晃一枪:
//freopen("lock.in","r",stdin);
freopen("lock.in","r",stdin);
freopen("lock.out","w",stdout);
他还有一个未完成的暴力():
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
int res = 0,f = 0,ch = getchar();
while(!isdigit(ch)) f |= ch == '-',ch = getchar();
while( isdigit(ch)) res = (res << 3) + (res << 1) + (ch ^ 48),ch = getchar();
return f ? -res : res;
}
int main()
{
//freopen(".in","r",stdin);
//freopen("tree.in","r",stdin);
//freopen("tree.out","w",stdout);
(是的没错他连大括号都没来得及打完)
CQ-S00258 连输出大样例都放弃了:
#include<bits/stdc++.h>
using namespace std;
int main()
{
//freopen("lock.in","r",stdin);
//freopen("lock.out","w",stdout);
int n,a[10][6];
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=5;j++)
{
cin>>a[i][j];
}
}
if((a[1][1]==a[1][2]&&a[1][3]==a[1][4])||(a[1][1]==a[1][2]&&a[1][5]==a[1][4])||(a[1][3]==a[1][2]&&a[1][5]==a[1][4]))
{
cout<<81;
return 0;
}
if(n==2&&((a[1][1]==a[2][1])&&(a[1][3]==a[2][3])&&(a[1][2]==a[2][2])&&(a[1][5]!=a[2][5])&&(a[1][4]==a[2][4])))
{
cout<<10;
return 0;
}
else
{
cout<<10-n;
return 0;
}
return 0;
}
CQ-S00259 和 CQ-S00531 是同道中人。前者的 T3 操作一写了一大堆,有输出但注释了文件;后者的 T4 写了性质 A,有输出但注释了文件。我也不懂是不是冲正解冲完了没来得及开文件()
CQ-S00491 的 T4 全文:
#include<bits/stdc++.h>
using namespace std;
int main(){
//freopen("tree.in","r",stdin);
//freopen("tree.out","w",stdout);
return 0;
}
CE 人
我需要 7.2\times 10^6 TB 的运行内存
CQ-S00117 的 T3 狂暴开了
const long long int N = 1e18;
struct stru {
int dx;
int zy;
}a[N];
did you mean "freopen"/"stdin"/"stdout"?
CQ-S00470 的 T1:
froepen("lock.in","r",stdin);
freopen("lock.out","w",stdout);
上面写了一堆 DFS,应该是正解。
CQ-S00272 的 T2:
freopen("game.in","r",stdin);
freopen("game.out","w",stdot);
后随一个
代码内容
【详细揭秘】谁是 2023 年度指针之王
CQ-S00178 的 T3 贡献了 ->(下图仅为密度最高的一段代码):
CQ-S00129 的 dsu 也贡献了 ->,CQ-00065 的 Trie 则贡献了
#define 之王
CQ-S00028 的代码中检索到 #define,为 CQ 缺省源 #define 数量第一:
#define ll long long
#define ull unsigned ll
#define fr1(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)
#define fr2(i,a,b) for(int (i)=(a);(i)>=(b);(i)--)
#define fv(i,p) for(int (i)=0;(i)<(p).size();(i)++)
#define pii pair<int,int>
#define pll pair<ll,ll>
#define ld long double
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define il inline
下北泽赛区
CQ-S00019 看到数据范围
#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct node
{
int nxt,to;
}e[114514<<1];
int head[114514],cnt;
void add(int u,int v)
{
e[++cnt].to=v;
e[cnt].nxt=head[u];
head[u]=cnt;
}
ll w[114514];
bool cmp(int x,int y)
{
return w[x]>w[y];
}
int id[114514];
ll a[114514],b[114514],c[114514];
int n;
int flaga=1,flagb=1,flagc=1,flagd=1;
ll ans;
int f[114514],dep[114514];
int vis[114514];
CQ-S00419 是他的同道中人:
int ton[114514],liq[114514];
struct nd{
int nex,to;
}edge[114514<<1];
struct nn{
int a,b,c;
}vl[114514];
int head[114514],tot,vis[114514];
void add(int x,int y)
{
edge[++tot].nex = head[x];
edge[tot].to = y;
head[x] = tot;
}
int ver[114514] = {};
此外还有一堆用
另一个七位数字也有
B = (long long)rd() * rd() % (long long)1145141919810;
love sth. 人
在 love。
CQ-S00503 在玩碧蓝档案:
//我永远喜欢天童爱丽丝
【详细揭秘】谁贡献了 200 个 love
CQ-00313 的四题缺省源:
每份代码各五十个 I love StayAlone & CCF。截止发稿前 @StayAlone 正在磕 ABC 没有做出回应。
歌手
CQ-S00012 放了一整个《Enchanted》的歌词(共
他在另一题放了《Yesterday》的歌词:
他的 game 一题也有英文歌歌词,这里就不放了。是 《Idioteque》 但是 bunker 拼成了 banker()
他的 struct 一题有如下注释并狂码 5K,码力高强:
// I Love Malaoshi!
// and I Love Xulaoshi!
// Ai, xinyue! Gen xinyue Pin Le!
人 win
CQ-S00028 的 ifdef:
#define Griffin love
int main(){
#ifdef Griffin
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
#endif
CQ-S00131 的缺省源第一行:
/*
SYQ will always love XT.
*/
CQ-S00256 正在 T1 发疯和质问大样例:
//let's debug~~~~~~~~~~~~~~~~~~~~~ now~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//why less 4?
//all less 4?
//I love debug but debug dont love me
//if I all add 4?
//oh here not too
//why simple 2 is 10?not8?qwp
CQ-S00290 爱 CCF 当且仅当没有特殊性质:
cin >> op;
if (op == 1)
{
cout << "I love CCF\n";
}
CQ-S00315 在手搓神秘小样例:
/*
10
1 Hutao 3
int life
long love
short level
2 Hutao play
2 int an
2 short po
*/
我们的老熟人 CQ-S00395 今年还在 love XiaoTing:
T1:
//15:20 60pts
//16:46 ac
//16:47 accepted the max data
//I Will Always Love XiaoTing!
T2:
//16:21 change to T1
//accepted T1 back to T2 16:48
//35pts 16:57
//17:04 go to T3
//17:35 try to AC T2
//XiaoTing is my lovely girlfriend!
T3:
//thank you struct
//i can't finish this problem
//but I love XiaoTing
T4:
//opps a_i <= 1e18
//thank you
//last CSP-S
//maybe 140pts even less
//I love XiaoTing
//Luogu ID:suyunqiaoKID
遗憾的是他今年好像就要退役了……
CQ-S00420 不 love CCF 但 love CCF's implementation:
/*
1. 开 freopen;
2. 算好 long long 与空间;
3. 不要用结构化绑定!!
4. I love CCF's implementation!!!
*/
CQ-S00424 的爱人有点略多:
不文明现象
CQ-S00**5 的 T3 正在使用脸滚键盘 fuck debug:
//printf("dofucked:effeffefefefffe\n");
CQ-S00**9 的 T1 正在自动化 fuck():
auto fuck = [&](int i) {
CQ-S00**4 的 T2 最后一行:
//cnm!!!!!
他写的
检查 ** 子串
CQ-S00**7 的 T4 有了头绪,但没有成功想出,比较遗憾:
#include <bits/stdc++.h>
using namespace std;
//接近正确解法了,但不多
//贪心加二分答案(话说怎么这么喜欢考这两个
//我们肯定是要去优选长的慢的对吧(不然你先选长得快的不优秀)
//那我们就可以确定一个顺序,用二分答案确定最少的天数,答案就出来了
//所以说时间复杂度最高会被菊花图卡到O(n*n*lgx)
const int N=1e5+5;
long long n,a[N],b[N],c[N],d[N],p[N],day,cnt=1;
vector <int> e[N];
bool vis[N];//wtf,他那个数据不保证单调性我***
//那就设计一个dp
//wtf,没有无后效性
//暴力出奇迹吧
CQ-S00384 的 T4 空代码有点崩溃:
/* 服了啊
什么都记不到了
裸考啊
啊啊啊啊啊啊啊啊啊啊啊啊啊
不会要tarjan吧
这都什么**玩意儿
好怕啊
先看t1吧
还什么省一
不保龄就不错了
旁边的男的看上去好牛逼
我得假装牛逼才行
嗯,t1已经有30分了,不怕不怕
罗老师,我想你了
笑死了朋友们描述一下现在的状态
我左边的人刚刚吃完橘子 在飞速地打代码
我在哭
我右边的人在睡觉 */
很想查询一下旁边是谁。
考试文档人
CQ-S00177 正在报时并写游记:
//我永远喜欢初音未来!!
/*
# CSP-S
---
## 闲话
题要一道一道读嘛。
**17:30**
TAD:离结束还有30min。
ZGY:???
## T1
**??:??**
看懂题意就是胜利,怎么看都是爆搜。
对了,check不要写锅。
## T2
**14:42**
CCF经典不卡常,于是这道题要 $\mathcal{O}(n)$?
(省略一段)
不是……不会你-S考Manacher吧……
## T3
**14:55**
有一种被T2雷到的感觉,决定先看看别的。
(省略一段)
**15:22**
CCF个Joker,样例解释出错了hhh。
**16:31**
完了,样例2是什么东西……
**17:30**
太恐怖了,我为什么要开T3?
## T4
**15:03**
首先肯定是要想树形DP的。
注意到树的贡献就很……的难算。
(省略一段)
用淀粉质能够达到 $\mathcal{O}(n\log^3 n)$,CCF的老爷机能过就有鬼了。
在这里需要考虑优化,但有没有可能我们直接做就是 $\mathcal{O}(n\log^2 n)$……
耐人寻味。
注意到有样例,不妨一试。
*/
LQ2024:他最后两分钟调过 T3 /bx/bx/bx
CQ-S00171 好像把 T1 搞复杂了?
/*
分析时间复杂度:
枚举一个密码锁能到达的状态 数量
给一个 810 万条边 10 万个点的图
给你 8 个点
问有多少个点能走到这 8 个点
A->B 一定 B->A
判是否联通即可。
并查集
**注意这 n 个状态都不是正确密码。**
就是这个联通块大小减去n
注意到不是同一个联通块则输出0
*/
CQ-S00360 的 T3 比较遗憾,没有写出:
/*有开大模拟的勇气,却没有打完的实力,你不是小丑谁是?*/
int main()
{//有嵌套,快跑!
freopen("struct.in","r",stdin);
freopen("struct.out","w",stdout);
read(n);
printf("1 8 4\n16 8\n0\n4\nx.bb\n");
}
CQ-S00150 心态爆炸:
/*
感觉像大模拟,不是很难的感觉
应该比T2更可做
15:25来打的
【】!过大样例了!
17:35
还有不到1h,先把T4暴力打了
*/
朦胧地想到一种思路,枚举两个位置(相同字符),看中间一段是否可以匹配
不对,还有两边不同的情况
还是先打一个区间dp吧
区间dp是对的,但是不好优化
换一种打法?好像不行
【】想到n^2做法了
就是括号匹配!
能不能优化
黔驴技穷了吗
我不要啊啊啊啊啊
/*
不会打暴力,摆
好像有思路了?
先二分答案
对于每个地块,算出要满足要求的条件下最晚是多久在这里种树
然后由叶子回溯到根,计算出根最晚多久种
然后判断这个时间和二分的时间大小关系?
【】!好像是对的,没时间打了!
【】!这肯定是对的!我【】的!没时间打了!
去年为了打T4暴力放弃了T3正解!
今年为了打T2暴力放弃了T4正解!
【】【】【】【】【】
CCF我爱你!
*/
CQ-S00090 已经想出了 T2 加强版(CF1223F)的一大半:
/*
找有多少合法括号序列
左右括号啥的不管
想到一个做法,但是需要矩阵乘法……
去他的。
不一定矩阵,只要有结合律而没有交换律即可。
造不出来
*/
检索 AFO 子串
只是放出,不予置评。希望大家都还有美好的未来。
CQ-S00286:
/*
AFO哈哈哈
---------
Melody
脑海中的旋律转个不停
爱过你
有太多话忘了要告诉你
请不要离去
---------
*/
CQ-S00398:
//no hope.just a loser.wait for die.may be afo?
CQ-S00504:
/*
T1是水题,
T3是个模拟,和普及一样,不算太难
T2打了个字典树,感觉会被卡
T4摆烂
我是废物
感觉这次还行,希望不会像去年那样
应该能一等
咸鱼应该ak了
队爷也是,兔子也应该差不多了
回头可以问问力老师学校最高的楼在哪里
晚上还有abc,愚蠢的gm
*/
CQ-S00427:
/*
总体来说比去年好不了多少……
上不了200CQ肯定一等不了……
AFO……
*/
CQ-S00469:
/*
树上dp?
估计也是紫
乱写一通
AFO了,6
*/
CQ-S00300:
scanf("%d", &Q);
for(int cas = 1; cas <= Q; ++cas)
{
puts("AFO?AFO!");
}
return 0;
检索 AK 子串(区分大小写)
CQ-S00304 达成成就:
//5:00 hao xiang AK le !!!!
CQ-S00438 取得伟大胜利但是相信 CCF:
/*
I AK IOI,NOI,CSP-S,NOIP,WC,APIO
举报CCF
T2是我出给我团队的一道题目的弱化版,它只求了[1,n]的答案,我出的那个是q次询问[l,r]
luogu zyxawa期待你的关注
卧槽,我自己用脚都能卡掉我的算法,结果过了除了栈溢出的所有大样例=如果T123正解没挂+T4数据水我就能AK
吾乃毁灭世界之人,颤抖吧,沉浸在伊邪之美中吧!!!
吾乃毁灭世界之人,颤抖吧,沉浸在伊邪之美中吧!!!
吾乃毁灭世界之人,颤抖吧,沉浸在伊邪之美中吧!!!
*/
CQ-S00465 一直在使用 FJSAKD 子串。
考场神秘情况人
CQ-S00178 有点无语:
// 斜对面的 @E_firework 开始唱歌了。
// 在 windows 下调试失败了好久。
// 一看命令行 /usr/bin/g++ tree.cpp ...
// 切系统切的。
作家
CQ-S00407 感人肺腑:
// 我知道,哪怕窗外寒风凛冽,你也会给我一个蹦蹦跳跳的春天。
CQ-S00152 will never give up!
//Never give up.............................
//I will go back............................
//Either I am AFO,or get prize..............
合乎周礼
CQ-S00177 的代码合乎周礼:
/*
T3 struct
模拟题是吧?数据这么小……
主要一个操作4就需要我们特别注意,其它没啥了。
实现细节全部放在代码里,怎么想都非常难调。
想起早上水的“小周老师”说:用 `cin/cout` 一定 0pts。
乐了,你以为 `string` 是啥。
实现没有压常数,要被卡就卡吧,我倒是无话可说。
*/
CQ-S00065 也深受小周老师影响:
#include<fstream>
std::ifstream fin("game.in");//freopen 狗都不写!!1
std::ofstream fout("game.out");//freopen 狗都写!!1
霸树中学
方法:检索 PosVII 子串()
CQ-S00304 AK 之后的生活比较无聊于是甚至在默写《师说》:
/*
Fw @Deepskycore is my wife!!!!!!
Fw @zwh2008 is my grandson!!!!!!
Strong @hhpq is my grandfather!!
Strong @j1n91ha0ZoZb created the universe!!!
Cute @_l_l_ got compile error.
Sb @PosVII has a d1ck, but @Deepskycore has no d1ck!!!
I have won IBO2022 and I will win IBO2023 too.
@_l_l_ can just get the gold medal but no champion because I am too strong.
Chemistry rk4 + Biology rk1000+ = total rk-=2, wtf!!!!!!!!
mobai @Talaodi, @Prean, @serene_xxx(wang le), @mazihang2022, @system_tish, etc(you wang le)
stO Genshin Orz:
bless me successfully AK!!!
古之学者必有师,师者,所以传道授业解惑也。人非生而知之者,孰能无惑?
惑而不从师,其为惑也,终不解矣。生乎吾前,其问道也固先乎吾,吾从而师之。
生乎吾后,其问道也亦先乎吾,吾从而师之,吾师道也,夫庸知其年之先后生于吾乎?
是故无贵无贱,无长无少,道之所存,师之所存也。
嗟乎!世道之不传也远矣,欲人之无惑也难矣,古之圣人,其出人也远矣,尤且从师而问之。
今之众人,其下圣人也远矣,而耻学于师。是故圣益圣,愚益愚,圣人之所以为圣,
愚人之所以为愚,其皆出于此乎?爱其子,择师而教之,于其身者,则耻师焉,惑矣。
彼童子之师,授其书而习其句读者,非吾所谓传其道解其惑者也。
懒得写了。
*/
CQ-S00303 的 T4 全文(共 cqyz 子串。当然,他就是 @_l_l_。):
/*
! This file was created in UTF-8 mode
4:25
1h40min 冲 t4,这波稳了
所以关注 109114 谢谢喵
noi linux 输入法怎么这么难打
// freopen("tree.in", "r", stdin);
// freopen("tree.out", "w", stdout);
才想起来 -j 的时候没有整活(恼
关注 PosVII 谢谢喵
关注 DeepSkyCore 谢谢喵
关注 Iratis 谢谢喵
关注 zwh2008 谢谢喵
关注 Augen_stern (忘记怎么拼了)谢谢秒
关注 hhpq 谢谢喵
关注 LinkWish 谢谢喵
关注 hj23308 谢谢喵
关注 jason_sun 谢谢喵
没写的都是忘了怎么拼的(恼
5:34 done. The end.
最后重测了所有的样例,感谢他们陪伴这我度过了决定性的 4h
5:45
我*怎么还有半个小时的
*算错时间了
蚌埠
New Start:
*/
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
long long a[MAXN], b[MAXN], c[MAXN], t[MAXN], dp[MAXN];
struct edge {int to, nxt;} edges[MAXN << 1]; int head[MAXN], tot;
void add(int u, int v) {edges[++tot].to = v; edges[tot].nxt = head[u]; head[u] = tot;}
int checkcheck(int i, int mid) {
int l = 0, r = mid + 1; while (l + 1 < r) {
int mmid = (l + r) >> 1; __int128 ans;
if (c[i] >= 0) {
ans = b[i] * (mid - mmid + 1); ans += (__int128)(c[i] * (mid + mmid)) * (mid - mmid + 1) / 2;
}
else {
long long cut = (b[i] - 1) / (-c[i]);
if (mmid > cut) ans = mid - mmid + 1;
else ans = mid - cut, ans += b[i] * (cut - mmid + 1), ans += (__int128)(c[i] * (cut + mmid)) * (cut - mmid + 1) / 2;
}
if (ans >= a[i]) l = mmid; else r = mmid;
// printf("?? %d %d\n", l, r);
}
// printf("ck %d %d %d\n", i, mid, l);
return l;
}
int fa[MAXN];
void dfs(int u, int f) {
fa[u] = f; for (int i = head[u]; i; i = edges[i].nxt) {
if (edges[i].to != f) dfs(edges[i].to, u);
}
}
// int sz[MAXN];
// vector<pair<long long, int> > vc;
// void dfs(int u, int f) {
// // printf("dfs %d %d\n", u, f);
// int sons = 0;
// sz[u] = 1; for (int i = head[u]; i; i = edges[i].nxt) {
// if (edges[i].to != f) dfs(edges[i].to, u), sz[u] += sz[edges[i].to], sons++;
// }
// if (sons == 0) return dp[u] = t[u], void();
// for (int i = head[u]; i; i = edges[i].nxt) {
// if (edges[i].to != f) vc.push_back({dp[edges[i].to], sz[edges[i].to]});
// }
// sort(vc.begin(), vc.end(), [](pair<long long, int> a, pair<long long, int> b) {
// return a.first + a.second > b.first + b.second;
// }); long long ddl = 0x3f3f3f3f3f3f3f3f;
// for (int i = 0; i < (int)vc.size(); i++) {
// ddl = min(ddl - vc[i].second, vc[i].first);
// }
// dp[u] = ddl - 1; vc.clear();
// // printf("dp %d %lld\n", u, dp[u]);
// }
bool vis[MAXN]; multiset<pair<int, int> > st; vector<int> vc;
int main() {
freopen("tree.in", "r", stdin); freopen("tree.out", "w", stdout);
int n; scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%lld %lld %lld", &a[i], &b[i], &c[i]);
}
for (int i = 1; i < n; i++) {
int u, v; scanf("%d %d", &u, &v); add(u, v); add(v, u);
}
dfs(1, 1);
int l = 0, r = 1000000001;
// int l = 4, r = 6;
while (l + 1 < r) {
int mid = (l + r) >> 1; bool tag = 1; for (int i = 1; i <= n; i++) {
t[i] = checkcheck(i, mid);
if (t[i] == 0) tag = 0;
}
if (tag) {
// dfs(1, 1); if (dp[1] >= 1) r = mid; else l = mid;
memset(vis, 0, sizeof vis); st.clear();
for (int i = 1; i <= n; i++) st.insert({t[i], i});//, printf("ins %d %d\n", t[i], i);
int tt = 0; bool ans = 1;
while (st.empty() == 0) {
int u = (*st.begin()).second;
while (vis[u] == 0) vis[u] = 1, vc.push_back(u), u = fa[u];
reverse(vc.begin(), vc.end());
for (int i = 0; i < (int)vc.size(); i++) {
tt++; if (tt > t[vc[i]]) ans = 0;
// printf("era %d %d\n", t[vc[i]], vc[i]);
st.erase(st.find({t[vc[i]], vc[i]}));
}
vc.clear();
}
if (ans) r = mid; else l = mid;
}
else l = mid;
// printf("? %d %d\n", l, r);
}
printf("%d\n", r);
}
/*
stu@cqyz:/mnt/share/CQ-S00303$ diff lock.out lock.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff lock1.out lock1.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff game1.out game1.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff game2.out game2.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff game3.out game3.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff game.out game.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff struct.out struct.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff struct1.out struct1.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff struct2.out struct2.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff tree.out tree.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff tree1.out tree1.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff tree2.out tree2.ans
stu@cqyz:/mnt/share/CQ-S00303$ diff tree3.out tree3.ans
1c1
< 33577725
---
> 33577724
stu@cqyz:/mnt/share/CQ-S00303$ g++ -o -Wall -Wextra -Wshadow -Wconversion -std=c++14 -O2 -o tree tree.cpp -Wno-unused-result
stu@cqyz:/mnt/share/CQ-S00303$ ./tree
stu@cqyz:/mnt/share/CQ-S00303$ diff tree3.out tree3.ans
stu@cqyz:/mnt/share/CQ-S00303$
吓死我了我靠
tetris 启动!
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
所以关注 109114 谢谢喵
*/