<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[liamaking的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/liamaking</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; liamaking]]></copyright><item><title><![CDATA[[ARC080F] Prime Flip]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/146151873</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/146151873</guid><author>liamaking</author><pubDate>Mon, 10 Mar 2025 13:18:39 +0800</pubDate><description><![CDATA[网络流黑题]]></description><category></category></item><item><title><![CDATA[FFT NTT模板]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/127991297</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/127991297</guid><author>liamaking</author><pubDate>Tue, 22 Nov 2022 22:20:55 +0800</pubDate><description><![CDATA[fft、ntt]]></description><category></category></item><item><title><![CDATA[求最小交换次数]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/127937403</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/127937403</guid><author>liamaking</author><pubDate>Sat, 19 Nov 2022 15:27:39 +0800</pubDate><description><![CDATA[排序的最小交换次数]]></description><category></category></item><item><title><![CDATA[7-3 哈夫曼树与哈夫曼编码]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/127794084</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/127794084</guid><author>liamaking</author><pubDate>Thu, 10 Nov 2022 18:35:39 +0800</pubDate><description><![CDATA[为使不等长编码为前缀编码(即要求一个字符的编码不能是另一个字符编码的前缀)，可用字符集中的每个字符作为叶子结点生成一棵编码二叉树，为了获得传送报文的最短长度，可将每个字符的出现频率作为字符结点的权值赋予该结点上，显然字使用频率越小权值越小，权值越小叶子就越靠下，于是频率小编码长，频率高编码短，这样就保证了此树的最小带权路径长度效果上就是传送报文的最短长度。所谓树的带权路径长度，就是树中所有的叶结点的权值乘上其到根结点的路径长度（若根结点为0层，叶结点到根结点的路径长度为叶结点的层数）。记录着本题的符号表。]]></description><category></category></item><item><title><![CDATA[浅挖路由跟踪工具的原理]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/124971528</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/124971528</guid><author>liamaking</author><pubDate>Wed, 25 May 2022 22:34:02 +0800</pubDate><description><![CDATA[tracert and traceroute]]></description><category></category></item><item><title><![CDATA[PPP与PPPoE的学习]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/124547871</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/124547871</guid><author>liamaking</author><pubDate>Tue, 03 May 2022 01:14:35 +0800</pubDate><description><![CDATA[PPP与PPPoE]]></description><category></category></item><item><title><![CDATA[codeforces 1625.C. Road Optimization DP]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/122516270</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/122516270</guid><author>liamaking</author><pubDate>Sat, 15 Jan 2022 21:28:28 +0800</pubDate><description><![CDATA[https://codeforces.com/contest/1625/problem/C
C. Road Optimization
time limit per test3 seconds
memory limit per test128 megabytes
inputstandard input
outputstandard output
The Government of Mars is not only interested in optimizing space flights, but also]]></description><category></category></item><item><title><![CDATA[ST表模板]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/122515905</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/122515905</guid><author>liamaking</author><pubDate>Sat, 15 Jan 2022 21:02:40 +0800</pubDate><description><![CDATA[#include &lt;bits/stdc++.h&gt;
using namespace std;
const int N = 1e5 + 100;
int f[N][100];
int mn[N];
int n, m;
int rmq(int l, int r)
{
    int k = mn[r - l + 1];
    return max(f[l][k], f[r - (1 &lt;&lt; k) + 1][k]);
}
int main()
{
    scanf("%d%d", &amp]]></description><category></category></item><item><title><![CDATA[洛谷 P3369 【模板】普通平衡树--平板电视stl大法]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/121935443</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/121935443</guid><author>liamaking</author><pubDate>Tue, 14 Dec 2021 18:20:06 +0800</pubDate><description><![CDATA[题目描述
您需要写一种数据结构（可参考题目标题），来维护一些数，其中需要提供以下操作：
插入 xx 数
删除 xx 数(若有多个相同的数，因只删除一个)
查询 xx 数的排名(排名定义为比当前数小的数的个数 +1+1 )
查询排名为 xx 的数
求 xx 的前驱(前驱定义为小于 xx，且最大的数)
求 xx 的后继(后继定义为大于 xx，且最小的数)
输入格式
第一行为 nn，表示操作的个数,下面 nn 行每行有两个数 \text{opt}opt 和 xx，\text{opt}opt 表示操作的序号( 1 ]]></description><category></category></item><item><title><![CDATA[biweekly_contest_67_leetcode2102. 序列顺序查询]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/121913897</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/121913897</guid><author>liamaking</author><pubDate>Mon, 13 Dec 2021 20:46:24 +0800</pubDate><description><![CDATA[一个观光景点由它的名字 name 和景点评分 score 组成，其中 name 是所有观光景点中 唯一 的字符串，score 是一个整数。景点按照最好到最坏排序。景点评分 越高 ，这个景点越好。如果有两个景点的评分一样，那么 字典序较小 的景点更好。
你需要搭建一个系统，查询景点的排名。初始时系统里没有任何景点。这个系统支持：
添加 景点，每次添加 一个 景点。
查询 已经添加景点中第 i 好 的景点，其中 i 是系统目前位置查询的次数（包括当前这一次）。
比方说，如果系统正在进行第 4 次查询，那么需要返]]></description><category></category></item><item><title><![CDATA[weekly_contest_271_leetcode2106. 摘水果]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/121913629</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/121913629</guid><author>liamaking</author><pubDate>Mon, 13 Dec 2021 20:35:52 +0800</pubDate><description><![CDATA[在一个无限的 x 坐标轴上，有许多水果分布在其中某些位置。给你一个二维整数数组 fruits ，其中 fruits[i] = [positioni, amounti] 表示共有 amounti 个水果放置在 positioni 上。fruits 已经按 positioni 升序排列 ，每个 positioni 互不相同 。
另给你两个整数 startPos 和 k 。最初，你位于 startPos 。从任何位置，你可以选择 向左或者向右 走。在 x 轴上每移动 一个单位 ，就记作 一步 。你总共可以走 最多]]></description><category></category></item><item><title><![CDATA[weekly_contest_271_leetcode2104. 子数组范围和]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/121912636</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/121912636</guid><author>liamaking</author><pubDate>Mon, 13 Dec 2021 19:42:14 +0800</pubDate><description><![CDATA[给你一个整数数组 nums 。nums 中，子数组的 范围 是子数组中最大元素和最小元素的差值。
返回 nums 中 所有 子数组范围的 和 。
子数组是数组中一个连续 非空 的元素序列。
示例 1：
输入：nums = [1,2,3]
输出：4
解释：nums 的 6 个子数组如下所示：
[1]，范围 = 最大 - 最小 = 1 - 1 = 0
[2]，范围 = 2 - 2 = 0
[3]，范围 = 3 - 3 = 0
[1,2]，范围 = 2 - 1 = 1
[2,3]，范围 = 3 - 2 = 1
[]]></description><category></category></item><item><title><![CDATA[特殊拓扑排序]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/121844165</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/121844165</guid><author>liamaking</author><pubDate>Thu, 09 Dec 2021 21:03:23 +0800</pubDate><description><![CDATA[字典序最小:正向建图,小根堆取数.
优先考虑编号小者:反向建图,大根堆取数,反向输出.

]]></description><category></category></item><item><title><![CDATA[2021_CCPC_harbin_I. Power and Zero]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/121686076</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/121686076</guid><author>liamaking</author><pubDate>Thu, 02 Dec 2021 20:52:17 +0800</pubDate><description><![CDATA[传送门:https://codeforces.com/gym/103447/problem/I
二分+二进制拆分
题目大意：给定一个数组，每次操作可以选择任意个元素（可重复选择），对这多个元素分别 -1，-2，-4，-8…。
求最少操作多少次使得数组变为全0数组。
I. Power and Zero
time limit per test1 second
memory limit per test512 megabytes
inputstandard input
outputstandard output
]]></description><category></category></item><item><title><![CDATA[可持久化线段树--主席树]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/121374073</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/121374073</guid><author>liamaking</author><pubDate>Wed, 17 Nov 2021 11:25:08 +0800</pubDate><description><![CDATA[洛谷P3834
题目背景
这是个非常经典的可持久化权值线段树入门题——静态区间第 kk 小。
数据已经过加强，请使用可持久化权值线段树。同时请注意常数优化。
题目描述
如题，给定 nn 个整数构成的序列 aa，将对于指定的闭区间 [l, r][l,r] 查询其区间内的第 kk 小值。
输入格式
第一行包含两个整数，分别表示序列的长度 nn 和查询的个数 mm。
第二行包含 nn 个整数，第 ii 个整数表示序列的第 ii 个元素 a_ia
i
​
。
接下来 mm 行每行包含三个整数 l, r, kl,r,]]></description><category></category></item><item><title><![CDATA[7-57 表达式树括号 (10 分)]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/121372496</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/121372496</guid><author>liamaking</author><pubDate>Wed, 17 Nov 2021 10:35:33 +0800</pubDate><description><![CDATA[7-57 表达式树括号 (10 分)
请编写程序将表达式树按中缀表达式输出，并填加必要的括号，要求括号不能冗余，即保证正确运算次序所需的最少括号。如a∗(b+c)和a+(b−c)中的括号是必要的，而a+(b∗c) 的括号则是冗余的。假定表达式树中的运算均为二元运算，只涉及加、减、乘、除运算。
输入格式:
输入为一行字符串，表示带空指针信息的表达式树先根序列，空指针信息用#表示，操作数为a-z的小写字母，运算符为+、-、*、/。
输出格式:
输出为一行字符串，表示填加必要括号后的中缀表达式。
输入样例1:
a]]></description><category></category></item><item><title><![CDATA[3-1 括号匹配 (20 分)]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/121331725</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/121331725</guid><author>liamaking</author><pubDate>Mon, 15 Nov 2021 11:48:48 +0800</pubDate><description><![CDATA[数据结构实验_20软件03班
实验3-1 括号匹配 (20 分)
检查一段C语言代码的小括号( )、 中括号 [ ] 和大括号{ } 是否匹配。
输入格式:
在一行中输入一段C语言代码，长度不超过1000个字符（行末以换行符结束）。
输出格式:
第一行输出左括号的数量和右括号的数量，中间以一个空格间隔。
若括号是匹配的，在第二行打印YES，否则打印NO。
输入样例1:
for(int i=0; i&lt;v; i++){ visited[i] = 0; for(int j=0; j&lt;v; j++) s]]></description><category></category></item><item><title><![CDATA[3-2 层序遍历二叉链表 (25 分)]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/121331566</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/121331566</guid><author>liamaking</author><pubDate>Mon, 15 Nov 2021 11:43:57 +0800</pubDate><description><![CDATA[数据结构实验_20软件03班
实验3-1 括号匹配 (20 分)
检查一段C语言代码的小括号( )、 中括号 [ ] 和大括号{ } 是否匹配。
输入格式:
在一行中输入一段C语言代码，长度不超过1000个字符（行末以换行符结束）。
输出格式:
第一行输出左括号的数量和右括号的数量，中间以一个空格间隔。
若括号是匹配的，在第二行打印YES，否则打印NO。
输入样例1:
for(int i=0; i&lt;v; i++){ visited[i] = 0; for(int j=0; j&lt;v; j++) s]]></description><category></category></item><item><title><![CDATA[欧拉筛与素数判定]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/120247074</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/120247074</guid><author>liamaking</author><pubDate>Sun, 12 Sep 2021 09:52:18 +0800</pubDate><description><![CDATA[欧拉筛模板
for(int i=2;i&lt;=n;i++){
		if(!vis[i]){
			prime[++tot]=i;
		}
		for(int j=1;j&lt;=tot &amp;&amp; prime[j]*i&lt;=n;j++){
			vis[prime[j]*i]=1;
			if(i%prime[j]==0) break;
		}
}


]]></description><category></category></item><item><title><![CDATA[二分模板（整数、浮点）]]></title><link>https://blog.youkuaiyun.com/liamaking/article/details/118828382</link><guid>https://blog.youkuaiyun.com/liamaking/article/details/118828382</guid><author>liamaking</author><pubDate>Fri, 16 Jul 2021 22:31:51 +0800</pubDate><description><![CDATA[划分成[l, mid]和[mid + 1, r]
int bsearch_1(int l, int r)
{
    while (l &lt; r)
    {
        int mid = l + r &gt;&gt; 1;
        if (check(mid)) r = mid;
        else l = mid + 1;
    }
    return l;
}

划分成[l, mid - 1]和[mid, r]时
int bsearch_2(int l, int r)
{
]]></description><category></category></item></channel></rss>