文章目录
- 学习记录(2023.11.11~12.31)
- 2023
- Nov.(2023.11)
- 1 1 t h 11^{th} 11th, S a t . Sat. Sat.(2023.11.11)
- 1 8 t h 18^{th} 18th, S a t . Sat. Sat.(2023.11.18)
- 1 9 t h 19^{th} 19th, S u n . Sun. Sun.(2023.11.19)
- 2 1 s t 21^{st} 21st, T u e . Tue. Tue.(2023.11.21)
- 2 3 r d 23^{rd} 23rd, W e d . Wed. Wed.(2023.11.23)
- 3 0 t h 30^{th} 30th, T h u r . Thur. Thur.(2023.11.30)
- Dec.(2023.12)
- 1 s t 1^{st} 1st, F r i . Fri. Fri.(2023.12.1)
- 2 e d 2^{ed} 2ed, S a t . Sat. Sat.(2023.12.2)
- 7 t h 7^{th} 7th, T h u r . Thur. Thur.(2023.12.7)
- 8 t h 8^{th} 8th, F r i . Fri. Fri.(2023.12.8)
- 9 t h 9^{th} 9th, S a t . Sat. Sat.(2023.12.9)
- 1 1 s t 11^{st} 11st, M o n . Mon. Mon.(2023.12.11)
- 1 2 n d 12^{nd} 12nd, T u e . Tue. Tue.(2023.12.12)
- 1 4 t h 14^{th} 14th, T h u r . Thur. Thur.(2023.12.14)
- 1 5 t h 15^{th} 15th, F r i . Fri. Fri.(2023.12.15)
- 1 7 t h 17^{th} 17th, S u n . Sun. Sun.(2023.12.17)
- 1 8 t h 18^{th} 18th, M o n . Mon. Mon.(2023.12.18)
- 1 9 t h 19^{th} 19th, T u e . Tue. Tue.(2023.12.19)
- 2 0 t h 20^{th} 20th, W e d . Wed. Wed.(2023.12.20)
- 2 1 s t 21^{st} 21st, T h u r . Thur. Thur.(2023.12.21)
- 2 2 n d 22^{nd} 22nd, F r i . Fri. Fri.(2023.12.22)
- 2 3 r d 23^{rd} 23rd, S a t . Sat. Sat.(2023.12.23)
- 2 5 t h 25^{th} 25th, M o n . Mon. Mon.(2023.12.25)
- 2 7 t h 27^{th} 27th, W e d . Wed. Wed.(2023.12.27)
- 3 0 t h 30^{th} 30th, S a t . Sat. Sat.(2023.12.30)
学习记录(2023.11.11~12.31)
2023
Nov.(2023.11)
1 1 t h 11^{th} 11th, S a t . Sat. Sat.(2023.11.11)
-
Morning
KMP,倍增(算吧,过了几道题) -
Afternoon
Trie树及应用,AC自动机 -
留了一道题——奇怪的厨师
1 8 t h 18^{th} 18th, S a t . Sat. Sat.(2023.11.18)
受不了了,整个下午都在改 Phone List
真该死啊啊啊啊啊
以为几分钟就改得出来,结果到 18:53:14 还没改出来
不想改了
放弃吧
1 9 t h 19^{th} 19th, S u n . Sun. Sun.(2023.11.19)
开始改字典树的 F. The XOR-longest Path 了。。。
RE,0,有可能是数组开小了,等我看看
vector 没 resize …
2 1 s t 21^{st} 21st, T u e . Tue. Tue.(2023.11.21)
啊啊啊啊啊啊
Phone List 没清空完啊啊啊啊啊啊啊啊啊啊
end没清空啊啊啊啊啊啊啊
2 3 r d 23^{rd} 23rd, W e d . Wed. Wed.(2023.11.23)
-
Noon
机房旁边的饮水机太好用了。一摁 “开水” 键,开水就呈360°无死角状分布。
-
Afternoon
把AC自动机T1 A. Keywords Search 改完了。好多离谱错误……
3 0 t h 30^{th} 30th, T h u r . Thur. Thur.(2023.11.30)
我知道了,我们学校的饮水机肯定很久没人接过水。
但凡摁一下,水就飘出来。
……
今天还是把很久以前没A的题改了吧。
顺便写写社团作业。
Dec.(2023.12)
1 s t 1^{st} 1st, F r i . Fri. Fri.(2023.12.1)
13:01:49
好困啊,写一下最小生成树吧。
算了,还是做字典树吧。但是想不起来网址了……
只能做最小生成树了。
2 e d 2^{ed} 2ed, S a t . Sat. Sat.(2023.12.2)
笑亖我了
if ((cnt *= 2) >= mod)
(cnt*=2) 没加括号。。。
7 t h 7^{th} 7th, T h u r . Thur. Thur.(2023.12.7)
改 十一迷宫 改疯了。
服了。
改了一周了。
其他同学来改还是没改出来……
8 t h 8^{th} 8th, F r i . Fri. Fri.(2023.12.8)
机房新添了一个饮水机。
……或者说叫水壶?
12:54:38,准备继续死磕 十一迷宫。
双向广搜,记住你了。
中午请同学帮我改,改了一中午玄学问题,依然没有效果……
连样例都T,输出 “No solution!” 的点一直跑不出来,输出16的点跑了6400多ms。
各种卡常、玄学……(比如把4个使用map的地方换成了2个,自增加括号)之后降到了6100ms。
直到最后5分钟,把本来 value 是2个int的结构体的 map 换成了2个 value 是int的 map,正、反方向各一个。
结果输出16的点直接变成78ms,输出 “No solution!” 的点瞬间跑出来!
交上去居然过了!
现在也没弄明白到底哪里玄学了。
9 t h 9^{th} 9th, S a t . Sat. Sat.(2023.12.9)
推了一个多小时的思维题,整整两页草稿纸,极其复杂的公式,然后题解的公式:
( n − 1 ) ( m − 1 ) + 1 (n-1)(m-1)+1 (n−1)(m−1)+1
心态崩了。
1 1 s t 11^{st} 11st, M o n . Mon. Mon.(2023.12.11)
哎,做做 奇怪的厨师 吧。
13:24:35
在老师和题解的亲切帮助下,总算是搞懂了。
但是要睡觉了……剩下的交给明天吧(* ̄︶ ̄)
1 2 n d 12^{nd} 12nd, T u e . Tue. Tue.(2023.12.12)
-
Noon
12:43:04
惊喜!
我居然是全机房创新编程大赛总分最高的!!!😄先定个小目标,这周周考除了思维题,一定要再A一道。至少200pts!
破题能力还是太弱了啊。(;′⌒`)
还是把 奇怪的厨师 做了吧。
-
Afternoon
14:54:44
现在才知道,居然是年级第一!
1 4 t h 14^{th} 14th, T h u r . Thur. Thur.(2023.12.14)
吉夫特 写了一半……
1 5 t h 15^{th} 15th, F r i . Fri. Fri.(2023.12.15)
今天还是把 吉夫特 做完吧。
13:20:16
做完了( ̄▽ ̄)~*
1 7 t h 17^{th} 17th, S u n . Sun. Sun.(2023.12.17)
反思:
T1:
A. 粮仓 rice
题目描述
很久很久以前,有一个非常富有的国王,在他的手中,有非常非常多的粮食。为了存储这些粮食,他下令建造了一个巨大的粮仓,他要把所有的谷物都放进这个粮仓当中。在这个粮仓当中,最多可以容纳个谷物,一开始时,粮仓是满的。可是,这个粮仓的底下有一些小洞,每天都有鸟飞来拿走一些谷物飞走。每只小鸟可以叼走一粒谷物,第一天有一只小鸟飞来叼走谷物,第二天有两只小鸟飞来叼走谷物,第三天有三只小鸟, … \dots …,第 i i i 天有 i i i 只小鸟,以此类推。为了补上这些小鸟带来的谷物损失,国王命令每天带上个谷物前往粮仓填补亏空,直到将个谷物用完或补满粮仓为止。请问,照此下去,国王的粮仓将在第几天变空。(对于每天而言,国王会先补上粮食,然后才会被小鸟吃掉。)
数据范围与提示
对于40%的数据, 1 ≤ n , m ≤ 1 0 9 1 \le n,m \le 10^9 1≤n,m≤109
对于100%的数据, 1 ≤ n , m ≤ 1 0 18 1 \le n,m \le 10^{18} 1≤n,m≤1018
T1明明思路是对的,可是暴力的前40分挂了。
这是考试交的:((;へ:)想写二分,结果写错了,一怒之下直接解一元二次方程)
#include <cstdio>
#include <cmath>
typedef long long ll;
int main() {
freopen("rice.in", "r", stdin);
freopen("rice.out", "w", stdout);
ll n, m;
scanf("%lld%lld", &n, &m);
double k1 = (-1 + sqrt(1 + 8 * (n - m))) / 2;
ll k = ll(k1 + 0.99999);
printf("%lld", m + k);
/*
// n-m > (1+k)k/2
ll l = 0, r = 1e9, mid, ans = -1;
ll res = 2 * (n - m);
while (l <= r) {
mid = (l + r) / 2;
if (res > (1 + mid)*mid)
l = mid + 1, ans = mid;
else
r = mid - 1;
printf("l=%lld r=%lld mid=%lld (1 + mid)*mid=%lld\n"
, l, r, mid, (1 + mid)*mid);
}
printf("%lld", m + ans + 1);
*/
}
结果。。。
忏悔录:
#include <cstdio>
#include <cmath>
typedef long long ll;
int main() {
ll n, m;
scanf("%lld%lld", &n, &m);
// 不知道为什么,考试没想到特判
if (n <= m) {
printf("%lld", n);
return 0;
}
// 精度问题
long double k1 = (sqrtl(1 + 8 * (n - m)) - 1) / 2;
ll k = ll(k1 + (long double)0.9999999999);
printf("%lld", m + k);
}
T2:
其中的一行:
// 仔细想一下,到底贪没贪对
不出意外,挂掉。
T3:
就一个子集枚举,50pts 的部分分都没拿到。
上午把创新编程大赛复赛考了。
1 8 t h 18^{th} 18th, M o n . Mon. Mon.(2023.12.18)
今天把几乎和 ABC214E(Atcoder)/ABC214E(洛谷) 一模一样的题做了。
优先队列忘开小根堆了  ̄へ ̄
1 9 t h 19^{th} 19th, T u e . Tue. Tue.(2023.12.19)
-
Noon
听了一下 USACO 18FEB 的并查集做法。
-
Afternoon
继续做 USACO 18FEB。
-
Evening
20:17:33
还是继续做 USACO 18FEB。听听课吧。
21:33:45
啊啊啊啊啊
现在还没做完。
2 0 t h 20^{th} 20th, W e d . Wed. Wed.(2023.12.20)
用一种奇怪的方法做 P3834 【模板】可持久化线段树 2,因为并没有用可持久化线段树做。
看直播写代码都写错了。(T_T)
稀里糊涂的,改崩溃了。
然后稀里糊涂的过了。
真的稀里糊涂。
2 1 s t 21^{st} 21st, T h u r . Thur. Thur.(2023.12.21)
12:43:54
看一下分块吧。
顺便把 USACO 18FEB 改改。
13:36:10
实在无语了,已经数不清改了多少个地方了。
还是老师厉害。
看看这惨烈的战场:
#include <cstdio>
#include <bitset>
#include <algorithm>
// 积雪和靴子合并处理,要开两倍空间
// d = 0 表示是积雪
struct node {int s, d, id;} a[200003];
// f、fa、size表示的是积雪,只用开1e5
// 改了2次,smax初值应是0,因为开始没有积雪
int f[100003], fa[100003], size[100003], smax;
inline int find(const int& x)
{return x == fa[x] ? x : fa[x] = find(fa[x]);}
inline void merge(int x, int y) {
// 本来不用判,由于涉及size的操作,要判
x = find(x), y = find(y);
if (x == y) return;
fa[y] = x;
size[x] += size[y];
if (size[x] > smax)
smax = size[x];
}
// ans表示的是靴子,vis表示的是积雪
std::bitset<100003>ans, vis;
inline bool cmp(const node& x, const node& y) {
if (x.s != y.s) return x.s > y.s;
return x.d > y.d;
}
int main() {
int n, b;
scanf("%d%d", &n, &b);
// snow
for (int i = 1; i <= n; i++) {
scanf("%d", &f[i]);
a[i].id = i, a[i].s = f[i];
// 居然写成f[i] = i了
fa[i] = i, size[i] = 1;
}
// 合并处理,特殊处理编号
// boot
for (int i = 1; i <= b; i++) {
scanf("%d%d", &a[i + n].s, &a[i + n].d);
a[i + n].id = i;
}
// 应该从大到小排序
std::sort(a + 1, a + 1 + n + b, cmp);
for (int i = 1; i <= n + b; i++)
// a[i] : boot
if (a[i].d)
// 改了2次...
ans[a[i].id] = a[i].d > smax;
// a[i] : snow
else {
// 第1个积雪无法合并,需要特判
if (smax == 0) smax = 1;
vis[a[i].id] = 1;
if (vis[a[i].id - 1])
merge(a[i].id, a[i].id - 1);
if (vis[a[i].id + 1])
merge(a[i].id, a[i].id + 1);
}
for (int i = 1; i <= b; i++)
puts(ans[i] ? "1" : "0");
}
把 165E - Codeforces 过了。
2 2 n d 22^{nd} 22nd, F r i . Fri. Fri.(2023.12.22)
13:48:58
看了一下分块,顺便过了道模板。
唉。
2 3 r d 23^{rd} 23rd, S a t . Sat. Sat.(2023.12.23)
-
Morning
周考炸了。
T1:
虽然这次第一次9分钟就想出T1,但是调了40多分钟。
可这是T1啊!各种神奇错误, i 、 j i、j i、j 写反都算不得稀奇了。
快读快写错了3次。
质数筛都写错。大样例错了2次,甚至一度怀疑自己推错了。
再推,突然瞟到快读快写的位运算写错了。真的服了,T1都能改出来这么多错。
关键最后还眼瞎了,调快读快写的时候中间过程没删。
但是因为输入只有一次换行,Windows下检查不出来,因为只有一个’\n’。
可是Linux下是’\n’和’\r’。
不想说了,自己看吧。while ((c = getchar()) < '0' || c > '9') printf("c=%c", c);
后面的题也应该有部分分的,可是1分都没有。
然后就爆零了。
虽然就只有几个人(包括我,年级第二)进了创新编程大赛决赛,但是还是不开心。
(╯︵╰)10:04:01
等等,好像没爆零基本都有思路,但都没拿全分。
10:44:16
啊啊
疯了T3本来是80分,方便调试把数组开到23,只剩20分了啊啊啊啊啊啊啊啊啊啊
-
Noon
对于本次周考深刻的反思:
考试结束前15~20分钟一定不要做了,如果做得出来早就做出来了。
一定检查一下所有源文件,有没有低级错误。
一定要检查!!!全部耐心地看一遍!!!
唉,惨痛的教训。
-
Afternoon
16:48:18
把以前的知识复习了一些。
2 5 t h 25^{th} 25th, M o n . Mon. Mon.(2023.12.25)
嗯~~
今天是圣诞节(好像是吧,如果没记错的话,是12.25吧)
虽然和我没什么关系。
唉,不放假
上周其他校区都 春游 冬游了。
今天把 Atcoder AGC036B 改出来了。
看看我写的都是什么:
这是一直RE,33分的
for (int i = 1; i <= maxa; i++)
if (!p[a[i]].empty()) {
for (int j = 0; j < (int)p[i].size() - 1; j++)
nxt[p[i][j]] = p[i][j + 1];
nxt[p[i].back()] = p[i][0];
}
这是改之后的
#define now p[a[i]]
for (int i = 0; i < n; i++)
if (!now.empty()) {
for (int j = 0; j < (int)now.size() - 1; j++)
nxt[now[j]] = now[j + 1];
nxt[now.back()] = now[0];
}
好吧,现在又开始狂改 Atcoder ABC107D 了。
2 7 t h 27^{th} 27th, W e d . Wed. Wed.(2023.12.27)
2023年就要结束了。
昨天艺术节,中午化妆,来不了机房,整个下午候场+表演,信息课也没有了。
最关键的是,晚自习居然忘了要上课!!
脑子不好使了。
3 0 t h 30^{th} 30th, S a t . Sat. Sat.(2023.12.30)
服了。
一整个下午都在改 #6278. 数列分块入门 2 - 题目 - LibreOJ。
关键还没改出来(╬ ̄皿 ̄)
再看看这些,都是什么人类智慧?
#4. Quine - 题目 - LibreOJ
#5. 猜数字 1 - 题目 - LibreOJ
现在满脑子都是怎么输出自己。
现在是2023年12月30日20:49:27
这是这篇文章最后一次更新了。
下篇文章见。