摘要: 倍增法求解LCA 不限于二叉树 pow(2,k-1)+pow(2,k-1)=pow(2,k) 倍增法的关键数组f[a][i]表示节点a的第2i个祖先,f[a][0]就是a的父亲 先DFS一遍,预处理f数组,再求解lca 求解lca的函数是先让更深的点上跳到另一点的深度,再让两者一起往上跳,直到两者l 阅读全文
posted @ 2026-03-02 01:01 江蝶 阅读(4) 评论(0) 推荐(0)
摘要: 链式前向星 相当于手写链表见图 有向图 #define N 100005 struct Edge{ int next,to; }e[N]; int cnt; int head[N]; void Add_edge(int from,int to){ e[++cnt].to=to;//新一条边所指向的点 阅读全文
posted @ 2026-03-02 00:02 江蝶 阅读(3) 评论(0) 推荐(0)
摘要: nth_element函数的用法 此函数的作用是将数组或vector中第n小的元素放到数组第n个地址(0-based就是第n-1个,此句后半句也是0-based),同时在第n个地址前的所有元素全部小于a[n-1],后面的所有元素全部大于a[n-1] nth_element接受三个参数,第一是区间首地 阅读全文
posted @ 2026-01-28 22:23 江蝶 阅读(5) 评论(0) 推荐(0)
摘要: Hello 2026练习 B - Yet Another MEX Problem 观察一下样例就能够发现其实答案就是整个数组的mex和k-1取min,但是一开始写这个题目的时候多虑了要去重,就当是练习去重好了 void solve(){ int n,k; cin>>n>>k; vi a(n); fo 阅读全文
posted @ 2026-01-23 00:14 江蝶 阅读(5) 评论(0) 推荐(0)
摘要: bitset学习 背景 使用bitset要用到std. bitset是一个存储0/1的大小不可变容器,而vector<bool>是可变的 使用bitset主要是因为可以用来优化常熟时间(变为原本时间/机器位数),并且有很多方便的库函数 声明 指定头文件 #include<bitset> 指定大小 s 阅读全文
posted @ 2026-01-16 15:47 江蝶 阅读(8) 评论(0) 推荐(0)
摘要: 1072 Div3练习 今天是1.14,1.4且114 想回一下手感,但是。。。把CP editor装好了,但是感觉还是VScode更方便,不过在任何设备上都能敲上代码就足够了 A题不说了 B.Hourglass 这个题目思想很朴素,一开始题目没看明白想得太多就容易绕进去。 反正沙漏分两种情况,一个 阅读全文
posted @ 2026-01-14 23:35 江蝶 阅读(12) 评论(0) 推荐(0)
摘要: Codeforces Round 1065 (Div. 3)题解 A. Shizuku Hoshikawa and Farm Legs 签到题,第一眼看到的时候以为要解鸡兔同笼,但是直接观察就能得出答案了 #include<bits/stdc++.h> using namespace std; #d 阅读全文
posted @ 2025-11-21 02:01 江蝶 阅读(382) 评论(0) 推荐(1)
摘要: 11_15做题总结 今天来讲两个题目,一个是昨天的D1,一个是自己找的D4的E D1 序列一开始从1到1e12 输入x,y,k做x次操作,然后找到每次在数列中删掉下标是y的倍数的数,求操作完之后第k号数 先特判,如果y=-1或者暴力的边更新边删完x次n/y后n<k,那么就输出-1 否则从最后一次反解 阅读全文
posted @ 2025-11-16 00:09 江蝶 阅读(8) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2025-10-15 14:52 江蝶 阅读(2) 评论(0) 推荐(0)
摘要: 问题: B. Labyrinth 代码: #include<bits/stdc++.h> using namespace std; #define int long long #define ll long long #define fi first #define se second #defin 阅读全文
posted @ 2025-10-12 16:40 江蝶 阅读(4) 评论(0) 推荐(0)