⚡⚡⚡史上最区吃薯片之我在地铁站坐地铁时合成能量水晶,结果奶气冲天引发群鸟迁徙,被最强奶龙 shuqiang 贬至 D 国研发基地⚡⚡⚡
chenzhixuan2010 · · 生活·游记
注:本文含有大量 MARETU 图片,我会放到折叠框里面。
::::info[省流] 对于能否拿到 1= be like:
::::
Day -inf
在初赛前发现今年 NOIP 时间刚好是我生日,猜猜我的生日是在机房里过还是在家里过(
你说得对,但是考 NOIP 的时候是 @chenzhixuan2010 的生日,只要转发这条信息就能吊打 @chenzhixuan2010,我试过了,是假的,因为 NOIP 还有一个月,但 NOIP 那天真的是 @chenzhixuan2010 的生日。
初赛游记不写了,毕竟都是猜过的。
Day -1
学校初中校运会,高中生要上课还不给看难受了。
考前认为今年极有可能出大模拟。最强奶龙 shuqiang 说重现赛有个大模拟题,遂报名重现赛打大模拟,过了样例然后挂了。我咋这么区。
然后发现全机房都报名了这个信心赛,到底是咋找到的我咋不知道。🤔遂报名看看这个信心赛是啥。怎么还有
诶不是这个 T4 我 TLE 几个意思。然后改了 inf 分钟发现快读会 TLE,cin 会 WA,改成 scanf 过了。好神圣。此时同机房巨佬臭氧层已经切 H 了。%%%。
放学前老师交代要检查 cmd 能不能用,我因此被批了一顿说是 GZOI 的时候考前没检查考时才出问题。不是我上一年在那里考 CSP 的时候 cmd 也没禁啊,自己忘记解禁 cmd 怎么还怪上我了。愤怒。
回家之后果断选择复习 whk,因为要期中考了。
Day 0
J 组没报,所以爆了。
J 组解包密码怎么是 Trick||Treat!,这么雷霆,那我猜一手 S 组解包密码是 H@ppy&&H@||oween!。
最强奶龙 shuqiang 考完说四道都是红,他 AK 了。%%%。然后他发现自己 T1 看错题把 F 看成 E 了直接爆炸。这下真变奶龙了,奶气冲天。
什么叫 J 组 T3 还有原?
::::info[做干净的奥赛?] ::::
下午打 S 组,认为自己没有
去的路上严肃听了ホワイトハッピ、ゴキブリの味、ダーリン、いのちのおどり、ニャン。你别问为什么都是 MARETU 的,因为豪庭。😋为什么我们全校都没几个听土的,难受。
进考场前突然听到神秘吵闹声,转头一看原来是最强晓康的准考证被风拐走了。准考证纷纷何所似?撒 NaCl 空中差可拟未若柳絮因风起。奶气冲天了。
依旧提前发密码,不是这个密码怎么是 Oct31==Dec25?,CCF 提前过圣诞节吗。我宣布今天是圣诞节。还是因为上一年 You have no egg! 所以只剩一个蛋了。
开始看题。我去四题都给
14:30 准时开打。本来是差分的,打完缺省源发现自己假了。我好弱。但我发现先排序,然后双指针就做完了。大喜,遂开写,并在 14:53 通过大样例。看一下 checker,不是怎么无法识别题目文件夹。哦原来是要我自己填题目名称啊。这都不帮我填,怎么这么懒。看了一手边界情况,都过了,那我直接对拍。
此时开 T2,题目这么长不会是大模拟吧。10min 看完发现是图论,不豪。发现地铁线路才
诶不对啊那我点数不就
不怼,这个最小的样例怎么跑了
开 T3 罢,猜了 30min 结论,写完发现第
回看 T2,发现每条线路联通的所有点可以
那我最短路会经过
::::info[T2 思考路径 be like] ::::
我造怎么刚拍第一组就错了,之前推的好像也没问题吧。难道我暴力错了?那我用暴力跑一下最大那个样例。
ok 趁我的 T2 暴力还在跑,看看 T3。然后就坐牢了,因为写了
坐牢 30min 后 T2 暴力跑完了。不是怎么过大样例了,那我到底对没对啊,这个大样例这么水吗。爆炸。
::::info[发现暴力跑过大样例的我 be like] :::: ::::info[钦定自己是暴力写炸正解没炸时 be like]
| 其实并非谎言,因为还真没炸( |
|---|
最后 T4 写了暴力但是也炸了,T3 直接总司令全部输出
考完出来了,发现一圈人会 T2。完了怎么被大众题击败了,我是大区。
等了 30min 开自测。不是这个黄绿紫紫何意味啊,这个 T2 有这么简单?这个 Floyd 真的是人类思路?先测 T2,发现过了,大喜。然后测 T1。不豪怎么
居然有
::::info[今年吃薯片 be like] ::::
事实上我在最后 shuqiangakioi 和在注释里写 abs('D' - 'F') != 1 !!!!!!!!!!!(
贴一下复现的 T1 T2 code 罢。
::::info[T1]
#include<bits/stdc++.h>
#define int long long
using namespace std;
namespace Fast{
inline int fr(){
int x = 0,f = 1;
char c = getchar();
while (c < '0' || c > '9'){
if (c == '-') f = 0;
c = getchar();
}
while (c >= '0' && c <= '9'){
x = (x << 1) + (x << 3) + (c ^ 48);
c = getchar();
}
return (f ? x : -x);
}
inline void fw(int x){
if (x == 0) return putchar('0'),void();
if (x < 0) x = -x,putchar('-');
stack <char> stk;
while (x){
stk.push(x % 10 + '0');
x /= 10;
}
while (!stk.empty()){
putchar(stk.top());
stk.pop();
}
}
}
using namespace Fast;
int n,k;
int a[500005];
signed main(){
n = fr(),k = fr();
for (int i = 1;i <= n;i++) a[i] = fr();
sort(a + 1,a + n + 1);
int l = 1,sum = 0,ans = 1;
for (int i = 2;i <= n;i++){
sum += (i - l) * (a[i] - a[i - 1]);
while (l < i && sum > k){
sum -= (a[i] - a[l]);
l++;
}
ans = max(ans,i - l + 1);
}
fw(ans);
return 0;
}
:::: ::::info[T2]
#include<bits/stdc++.h>
#define int long long
using namespace std;
namespace Fast{
inline int fr(){
int x = 0,f = 1;
char c = getchar();
while (c < '0' || c > '9'){
if (c == '-') f = 0;
c = getchar();
}
while (c >= '0' && c <= '9'){
x = (x << 1) + (x << 3) + (c ^ 48);
c = getchar();
}
return (f ? x : -x);
}
inline void fw(int x){
if (x == 0) return putchar('0'),void();
if (x < 0) x = -x,putchar('-');
stack <char> stk;
while (x){
stk.push(x % 10 + '0');
x /= 10;
}
while (!stk.empty()){
putchar(stk.top());
stk.pop();
}
}
}
using namespace Fast;
const int MAXM = 5e5 + 5;
const int MAXN = 505;
const int INF = 0x3f3f3f3f3f3f3f3f;
int c,n,m,d,q;
int w[MAXM],cnt[MAXM],idx[MAXM][25],tdis[MAXM][25];
int dp[MAXN][MAXN];
signed main(){
c = fr(),n = fr(),m = fr(),d = fr(),q = fr();
for (int i = 1;i <= m;i++) w[i] = fr(),cnt[i] = 0;
for (int i = 1;i <= n;i++){
int len = fr();
for (int j = 1;j <= len;j++){
int a = fr(),t = fr();
cnt[a]++;
idx[a][cnt[a]] = i;
tdis[a][cnt[a]] = t;
}
}
memset(dp,0x3f,sizeof(dp));
for (int i = 0;i <= n;i++) dp[i][i] = 0;
for (int i = 1;i <= m;i++){
for (int j = 1;j <= cnt[i];j++){
for (int k = j + 1;k <= cnt[i];k++){
int x = idx[i][j],y = idx[i][k];
dp[x][y] = min(dp[x][y],tdis[i][j] + tdis[i][k]);
dp[y][x] = min(dp[y][x],tdis[i][j] + tdis[i][k]);
}
}
}
for (int k = 1;k <= n;k++){
for (int i = 1;i <= n;i++){
for (int j = 1;j <= n;j++){
dp[i][j] = min(dp[i][j],dp[i][k] + dp[k][j]);
}
}
}
for (int i = 1;i <= q;i++){
int u = fr(),v = fr();
int ans = INF;
for (int j = 1;j <= cnt[u];j++){
for (int k = 1;k <= cnt[v];k++){
int x = idx[u][j],y = idx[v][k];
int res = w[u] + w[v] + tdis[u][j] + tdis[v][k];
ans = min(ans,res + dp[x][y]);
}
}
fw(ans),putchar('\n');
}
return 0;
}
::::