博客更新记录
2026-01-27 更新文章:注意力机制
2026-01-24 上传文章:注意力机制
2026-01-16 上传文章:三蓝一棕:傅里叶变换
2025-12-22 上传文章:关于雅思
2025-04-21 上传文章:2021SCCPC
2025-04-17 更新文章:XCPC模板
2025-03-06 更新头像
2025-02-25
更新文章:hexo+github个人网站开发
2024-12-31
上传文章:2024,更新文章:19thZJCPC
2024-11-22
上传文章:2024CCPC山东邀请赛,更新文章:19thZJCPC
2024-10-25
上传文章:2024ICPC昆明邀请赛
2024-09-18
上传文章:2024JXCPC
2024-07-26
上传文章:2024SXCPC
2024-07-24
上传文章:2024SCCPC
2024-07-18
上传文章:文件管理系统的搭建
2024-07-01
更新文章:关于linux(Ubuntu),调整了一些文章的优先级以及标签分类等
2024-06-29
更新文章:关于Ubuntu->关于linux(Ubuntu ...
XCPC模板
DSU12345678910111213141516171819202122232425262728#define N 200005struct DSU { int n; vector<int> par, h; explicit DSU(int _n) : n(_n + 1), par(_n + 1), h(_n + 1) { for (int i = 1; i <= _n; ++i)par[i] = i; }; int find(int x) { return par[x] != x ? par[x] = find(par[x]) : par[x]; } void unite(int x, int y) { x = find(x); y = find(y); if (x == y)return; if (h[x] == h[y]) { h[x]++; ...
trick
本文用来记录一些做题时看到的小技巧以及踩过的坑
技巧
bool可以直接作为参数传递:1234567891011bool f(int i,int j,int m,int n,int next){ if(next>=8){ s[i][j]=1; return 1; } if(a[i+m][j+n]==k[next]) if(f(i+m,j+n,m,n,next+1)){ s[i][j]=1; return 1; } return 0;
清除缓冲区printf(“字符串”);后面加fflush(stdout);cout使用endl。
bool类型可以用bitset代替C++ bitset用法_牛客博客
递归可以实现倒序十进制转二进制输出123456 int r; r = num%2; if(num>=2) toBin(num/2); if(r) cout<<1; else cout<<0;}使用递归解决了倒取余数的问题而递 ...
注意力机制
Attention in transformers, step-by-step | Deep Learning Chapter 6
How might LLMs store facts | Deep Learning Chapter 7
重要的概念query、key和value。这三个词翻译成中文就是查询、键、值。
可以理解为一种行为:当厨师在锅里准备放下一个调料时,他会看一眼菜谱。书会将他的查询query映射到书中相关的标签key,如辣椒,盐等等,然后书中会展示最匹配的调料value。
Source 和 Target。Source(源)指的是输入。这里是菜谱。Target(目标)指的是输出。这里是锅里正在炒的菜(以及厨师脑子里已经生成的做菜步骤)
Self-Attention与Attention。上述的行为其实是属于 Attention(或者叫 Cross-Attention),而不是 Self-Attention。Attention 是拿着钥匙(Query)去开别人家的锁(Key)。
Self-Attention 是“把家里所有的零件(Q, K, V)摆在地上,看看谁和谁能拼在一起 ...
三蓝一棕:傅里叶变换
记录But what is the Fourier Transform? A visual introduction.的学习。主要是对傅里叶变换的理解:图形上看是旋转
物理上看是重心与频率的关系
数学上看是复平面、欧拉公式和无限积分。
应用上有去噪、图片处理和降噪耳机等。
核心定义:从“时域”到“频域”的翻译傅里叶变换的核心功能是拆解。简单来说,给你一瓶紫色的颜料(叠加后的波形),它能精确地告诉你这瓶紫色是由 40% 的红色、30% 的蓝色和 30% 的白色混合而成的。从音乐的角度理解,交响乐由各种乐器(小提琴、大提琴、长笛)同时演奏,它们的声波叠加在一起。傅里叶变换有绝对音感,能从波形中分辨出里面包含了哪些频率的纯音。
在这张图片中,
时域(上方的黄色波): 告诉我们信号在每一秒钟的强度是多少。
频域(下方的彩色波): 告诉我们信号里包含了哪些频率,以及每个频率的强度(振幅)是多少。
抽象一些的说法就是如果把复杂的波形看作是一个向量,那么那些简单的纯正弦波(彩色波)就是一组坐标轴。傅里叶变换的本质,是计算这个复杂信号在每一个特定频率的“坐标轴”上有多少分量。这就好比把一个颜色(如 ...
关于雅思
这几个月发生了很多事情导致博客好久没更新,主要是一直在被雅思折磨。前几天终于考过了,记录一下我学雅思的过程。
时间线
从原本计划的学两个月之后9月去考一直拖到10月份中旬去考,我选的是机考,考了第一次成绩是5 8.5 6 6:
考试一开始的时候很迷,听力直接考崩了(5.0相当于40到题目错了20多道),因为申请的国家大多都是支持单科重考的,所以后来想着单科重考一次试试,然后考的成绩还是挺意外,居然能上7,最终成绩:
英语高考100多分四级525六级没过,所以这个分数差不多就是我目前的英语极限了,短期内应该不会想着再去刷分了。纯学英语有点折磨希望这是最后一次考试吧。
书本网课/前期准备练习题主要是剑雅全套,当然如果机考可以选择直接在新东方雅思上练,来不及的话可以就做最新的四五套,如果有钱可以买躺着学的SVIP,里面有一个邪修题库,这里面基本都是考试真题的还原题:
不是很建议买,感觉真的是在摸奖,我听力阅读全部刷完都没有遇到过一个(同校有人确实是8月份碰到了一篇阅读),而且吃相是真的难看,之前只要89块一个月就能刷题库现在要好几百,客服说的话也没几句是真的,说什么“剑雅是真题就是误人 ...
2021SCCPC
题面:
24年的好像打完了……从cf上随便找了一个打着玩。
四川的依然还是那么简单,单挑差两题ak(cf上的没有C I J题)。
签到/简单题A题就是求方程x+y=k的解的个数。直接枚举就行。
M题在说有n个旅客在位置0同时出发赶飞机,飞机的位置是x。每个人都是按一定的速度匀速运动。初始时,飞机预定在时刻p0起飞。有m 个广播,第i个广播表示在某个时刻(可能早于p0时刻)告诉所有旅客飞机延误到了pi, 保证ti和pi是递增的。每个旅客在每个时刻都会根据当前自己的位置、当前自己的速度和当前预定的起飞时间来决定行动:如果赶得上飞机就继续移动,否则就原地停留,求总共有多少人可以顺利登机。问最终有多少个旅客赶得上飞机。先预处理姜所有的广播时间和p0比较,如果早于p0就改成p0,然后计算其总共延长的时间,找到最大的延长时间,如果这段时间按该乘客的移动速度可以到达机场就说明这个乘客能登机,遍历一遍就可以统计出有多少人能顺利起飞。这题是简单题里面通过率最低的一个,我感觉还是题目实在是太绕了导致的(我至少读了20min的题面还没理解wa了一次)。怎么会有这么反人类的题目背景 ...
2024CCPC山东邀请赛
题面:
I - Left Shifting签到题,从左往右检查字符串中有没有相邻两个一样的位置,注意有可能一开始就已经是首尾相同的。
12345678void solve() { string s; cin>>s; if(s.front() == s.back()) return cout<<0<<endl,void(); for(int i = 1;i<si(s);++i) if(s[i] == s[i-1]) return cout<<i<<endl,void(); cout<<-1<<endl;}
A - Printer一道很明显的二分题,二分最后的时间,固定时间根据能产生多少的试题来左移或者右移mid,注意直接统计能产生的试题个数的时候可能会爆longlong,可以写int128或者check的时候如果大于k就直接返回true。
12345678910111213141516171819202122 ...
2024HNCPC
题面:
C - easy math给出一个长度为n整数数组a。数组a中的每一个整数$ a_i $都是2的幂。求满足$ \prod_{i=1}^{n} a_i \leq 2024^b $的最小整数b。
注意到每个数都是2的幂所以可以直接对每个元素取对数让乘法变加法,最后直接用换底公式搞一下2024的b次方把b提出来就行。
123456789101112131415void solve(){ int n; cin>>n; vector<int> a(n); int sum = 0; for(int i = 0;i<n;++i){ cin>>a[i]; a[i] = (int)log2(a[i]); sum += a[i]; } long double base = log(2024),p = log(2); long double logg = p/base; int ans = (ceil)(s ...
2024ICPC昆明邀请赛
题面:
B - Gold Medal签到题,很显然先分配那些补较少人数就能产生牌子的比赛,那么补全了之后如果还有剩的直接除k向下取整就行。
12345678910111213void solve() { int n,k; cin>>n>>k; vector<int> a(n); int ans = 0; for(int i = 0;i<n;++i) cin>>a[i],ans += a[i] / k,a[i] %= k; int m,p = 0; cin>>m; sort(all(a),greater()); while(p < n && m - (k - a[p]) >= 0) ans++,m -= (k - a[p++]); ans += m / k; cout<<ans<<endl;}
G - Be Positive观察样例可以发现当n == 4 || n == 1的时候归零了。
首先不难看出0,1,2,3;4,5, ...
