<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Cosmic_Tree的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Cosmic_Tree</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Cosmic_Tree]]></copyright><item><title><![CDATA[B3647 【模板】Floyd]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/147155861</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/147155861</guid><author>Cosmic_Tree</author><pubDate>Fri, 11 Apr 2025 23:01:21 +0800</pubDate><description><![CDATA[【代码】B3647 【模板】Floyd。]]></description><category></category></item><item><title><![CDATA[P3367 【模板】并查集]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/147155529</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/147155529</guid><author>Cosmic_Tree</author><pubDate>Fri, 11 Apr 2025 22:39:09 +0800</pubDate><description><![CDATA[【代码】P3367 【模板】并查集。]]></description><category></category></item><item><title><![CDATA[P3372 【模板】树状数组 3（ 区间修改 + 区间查询 ）]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/147155093</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/147155093</guid><author>Cosmic_Tree</author><pubDate>Fri, 11 Apr 2025 22:02:39 +0800</pubDate><description><![CDATA[【代码】P3372 【模板】树状数组 3（ 区间修改 + 区间查询 ）]]></description><category></category></item><item><title><![CDATA[Codeforces Beta Round #68 - B- Train ( 贪心模拟 )]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/122499620</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/122499620</guid><author>Cosmic_Tree</author><pubDate>Fri, 14 Jan 2022 18:12:41 +0800</pubDate><description><![CDATA[题目链接：点击进入
题目


题意
偷渡者和控制者玩以下游戏。
火车由 n 节车厢表示，车厢从头到尾用 1 到 n 的正整数编号。偷渡者和控制者最初在两辆不同的货车中。火车每分钟都可能处于两种状态移动或空闲。控制者每分钟都在移动。
控制器有运动方向——火车头或火车尾。在移动期间，控制者对应于其移动方向移动到相邻的货车。如果在他的移动结束时，控制者进入第 1 辆或第 n 辆货车，那么他将移动方向更改为另一侧。换句话说，控制者在整个游戏过程中循环地从火车的头部到尾部然后再返回，在每次移动期间移动一辆车。请注意，]]></description><category></category></item><item><title><![CDATA[Codeforces Round #171 (Div. 2) - E - Beautiful Decomposition（ 贪心 ）]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/122492520</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/122492520</guid><author>Cosmic_Tree</author><pubDate>Fri, 14 Jan 2022 14:47:13 +0800</pubDate><description><![CDATA[题目链接：点击进入
题目

题意
给你一串值为 n 的二进制串，一个加数可以是 ( + / - ) 2 ^ k ( k &gt;= 0 ) ，求最少的加数凑成 n （ 没有前导零 ）
思路
若这个串只有一个1，显然只需要一次即可；
否则，我们可以用减法来求得这个数，例如：11010 = 100000 + 00010 - 01000
反过来就是 11010 - 00010 + 01000 = 100000 ，也就是用最小的加数使原数(x位)变成2^x（ 若原数是11…就是变成2 ^ x，若原数是10…就是变成]]></description><category></category></item><item><title><![CDATA[Codeforces Round #764 (Div. 3) - G - MinOr Tree ( 贪心 )]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/122475630</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/122475630</guid><author>Cosmic_Tree</author><pubDate>Thu, 13 Jan 2022 16:13:53 +0800</pubDate><description><![CDATA[题目连接：点击进入
题目



题意
n 个点 m 条边，求最小或 ( or ) 生成树，即树的所有边或值最小。
思路
由于是求最后所有边或的值最小，或值即对于生成树的所有边来说，他们的每个对应位只要有一个 1 那么这位最终就是 1 ，要是想结果尽可能小，那么我们当然是希望每个对应位都是  0 才好，如果无法为 0 ，那么这一位越低越好，因此我们可以从高位往低位枚举每一位，如果这一位全 0 的边能够凑成一棵生成树，那么这一位为 1 的边就可以不要，那么最终结果的这一位就可以为 0 。要是凑不成，那么说明需要]]></description><category></category></item><item><title><![CDATA[Educational Codeforces Round 32 - G. Xor-MST ( 01字典树 + 分治 )]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/122455768</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/122455768</guid><author>Cosmic_Tree</author><pubDate>Wed, 12 Jan 2022 16:21:07 +0800</pubDate><description><![CDATA[题目链接：点击进入
题目

题意
给你 n 个点的值，n 个点加边生成一棵树，边权就是两点的异或值，要求最后所有边权和最小。输出最小边权和。
思路
将 n 个数插入到01字典树上，对于树上的每个节点，记录这个节点保存有原数组的那些数（就是原数组中有哪些数经过这个节点），因为这些数可能在原数组中是无序的所以不好保存，因此我们可以将原数组排序后再插入字典树，这样每个节点所保存的数就是连续的，也就是每个节点只记录这个连续区间的边界即可。
遍历01字典树，
对于两个孩子的节点，左右孩子代表的区间是不同的，代表未连接]]></description><category></category></item><item><title><![CDATA[计算机算法设计与分析第七章思维导图&&知识点总结 ( 初稿 )]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/122238352</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/122238352</guid><author>Cosmic_Tree</author><pubDate>Thu, 30 Dec 2021 15:37:05 +0800</pubDate><description><![CDATA[复习链接
思维导图
没有思维导图，单纯为了格式整齐好看哈哈哈(～￣▽￣)～
知识点总结

]]></description><category></category></item><item><title><![CDATA[计算机算法设计与分析第六章思维导图&&知识点总结 ( 初稿 )]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/121794397</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/121794397</guid><author>Cosmic_Tree</author><pubDate>Wed, 08 Dec 2021 16:43:58 +0800</pubDate><description><![CDATA[思维导图

分支限界法的概念
分支限界法常以广度优先或以最小耗费（最大效益）优先的方式搜索问题的解空间树。
在分支限界法中，每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点，就一次性产生其所有儿子结点。在这些儿子结点中，导致不可行解或导致非最优解的儿子结点被舍弃，其余儿子结点被加入活结点表中。
此后，从活结点表中取下一结点成为当前扩展结点，并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。
分支限界法的算法框架
（1）队列式（FIFO）分支限界法
将活结点表组织成一个队]]></description><category></category></item><item><title><![CDATA[计算机算法设计与分析第五章思维导图&&知识点总结 ( 初稿 )]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/121519486</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/121519486</guid><author>Cosmic_Tree</author><pubDate>Wed, 08 Dec 2021 16:43:33 +0800</pubDate><description><![CDATA[思维导图
回溯法的概念
回溯法（ 探索与回溯法 ）是一种选优搜索法，又称为试探法，按选优条件向前搜索，以达到目标。但当探索到某一步时，发现原先选择并不优或达不到目标，就退回一步重新选择，这种走不通就退回再走的技术为回溯法，而满足回溯条件的某个状态的点称为“回溯点”。
回溯法解题的算法框架
回溯算法的两种形式
（1）递归
（2）迭代
解空间的组织形式
（1）子集树：
当所给问题是从n个元素的集合S中找出满足某种性质的子集时，相应的解空间为子集树
（2）排列树：
当所给问题是确定n个元素满足某种性质的排列时，相]]></description><category></category></item><item><title><![CDATA[随笔 -（ 二叉树 ）]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/110069465</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/110069465</guid><author>Cosmic_Tree</author><pubDate>Wed, 24 Nov 2021 17:45:20 +0800</pubDate><description><![CDATA[二叉搜索树的操作集
BinTree Insert( BinTree BST, ElementType X )
{
	if(BST==NULL)
	{
		BST=(BinTree)malloc(sizeof(BinTree));
		BST-&gt;Data=X;
		BST-&gt;Left=NULL;
		BST-&gt;Right=NULL;
	}
	else
	{
		if(X&gt;BST-&gt;Data)
			BST-&gt;Right=Insert(BST-&gt;Right,X);
		]]></description><category></category></item><item><title><![CDATA[PAT甲级 - 1155 Heap Paths (30 分) ( 完全二叉树 + dfs )]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120211434</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120211434</guid><author>Cosmic_Tree</author><pubDate>Wed, 24 Nov 2021 17:34:48 +0800</pubDate><description><![CDATA[题目链接：
题目
题意
思路
代码
#include&lt;iostream&gt;
#include&lt;map&gt;
#include&lt;vector&gt;
#include&lt;cstring&gt;
using namespace std;
const int maxn=1e5+10;

int n,a[1010],flag;
vector&lt;int&gt;v,path[1010];

void dfs(int p)
{
	if(p*2&gt;n) 
	{
		v.push_back]]></description><category></category></item><item><title><![CDATA[PAT甲级-1154 Vertex Coloring (25 分) ( set + 枚举 / dfs )]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120210455</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120210455</guid><author>Cosmic_Tree</author><pubDate>Wed, 24 Nov 2021 17:34:20 +0800</pubDate><description><![CDATA[题目链接：点击进入
题目
题意
思路
代码1
#include&lt;iostream&gt;
#include&lt;map&gt;
#include&lt;set&gt;
#include&lt;cstring&gt;
using namespace std;
const int maxn=1e5+10;

int n,m,k,a[maxn];
struct node
{
	int x;
	int y;
}p[maxn];
set&lt;int&gt;s;


int main( )
{
	cin&gt]]></description><category></category></item><item><title><![CDATA[P1226 【模板】快速幂||取余运算]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120421120</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120421120</guid><author>Cosmic_Tree</author><pubDate>Wed, 24 Nov 2021 17:33:39 +0800</pubDate><description><![CDATA[题目链接：点击进入
题目

思路
快速幂模板
代码
// Problem: P1226 【模板】快速幂||取余运算
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P1226
// Memory Limit: 128 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include&lt;iostream&gt;
#define i]]></description><category></category></item><item><title><![CDATA[P3390 【模板】矩阵快速幂]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120422577</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120422577</guid><author>Cosmic_Tree</author><pubDate>Wed, 24 Nov 2021 17:32:02 +0800</pubDate><description><![CDATA[题目链接：点击进入
题目

思路
矩阵快速幂模板
代码
// Problem: P3390 【模板】矩阵快速幂
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P3390
// Memory Limit: 125 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include&lt;iostream&gt;
#include&lt]]></description><category></category></item><item><title><![CDATA[Gym - 103069B - Rectangle Flip 2（ 暴力 + 思维 ）]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/121446542</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/121446542</guid><author>Cosmic_Tree</author><pubDate>Mon, 22 Nov 2021 17:17:26 +0800</pubDate><description><![CDATA[题目链接：点击进入
题目


题意
n * m 的网格，每秒删除其中一个小网格，问每秒后，还剩余多少个好的矩形 ( 只要是矩形，同时矩形内没有被删除的格子 )
思路
蚌埠住啦，这题因为万恶的javaweb被我搁置了好久，我老早就想写了，难受≧ ﹏ ≦
按照顺序删除点，对于每个删除的点，看会影响多少新矩形。思考一下(脑袋里构一下图)，一个新删除的点，能影响到的，只能是以这个点x为中轴，上下每行左右扩到最大的部分(最大就是指碰到被删除的点，或者边界)，这个上下每行也是在x轴上上下扩到最大的。我们若是确定每行能扩]]></description><category></category></item><item><title><![CDATA[计算机算法设计与分析第四章思维导图&&知识点总结]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/121262758</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/121262758</guid><author>Cosmic_Tree</author><pubDate>Mon, 15 Nov 2021 21:18:30 +0800</pubDate><description><![CDATA[思维导图
贪心算法的概念
贪心算法的基本要素
（1）贪心选择性质
贪心选择性质是指，所求问题的整体最优解可以通过一系列局部最优的选择，即贪心选择来达到。
（2）最优子结构性质
贪心算法与动态规划的差异
贪心算法的一般理论
贪心算法的应用范例
活动安排问题
最优装载问题
哈夫曼编码
单源最短路径
最小生成树
多机调度问题

...]]></description><category></category></item><item><title><![CDATA[计算机算法设计与分析第三章思维导图&&知识点总结]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120815385</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120815385</guid><author>Cosmic_Tree</author><pubDate>Sat, 30 Oct 2021 18:38:40 +0800</pubDate><description><![CDATA[思维导图
动态规划算法的概念
动态规划是运筹学的一个分支，是求解决决策过程最优化的过程。
动态规划算法与分治法类似，其基本思想是将待求解问题分解成若干子问题，先求解子问题，再结合这些子问题的解得到原问题的解。与分治法不同的是，适合用动态规划法求解的问题经分解得到的子问题往往不是互相独立的。若用分治法来解决这类问题，则分解得到的子问题数目太多，以致最后解决原问题需要耗费指数级时间。
动态规划算法的基本要素
##（1）最优子结构性质
问题的最优解包含了子问题的最优解
##（2）重叠子问题性质
子问题空间要比原问]]></description><category></category></item><item><title><![CDATA[HDU-7134-Public Transport System ( 最短路 + 拆点 )]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120752876</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120752876</guid><author>Cosmic_Tree</author><pubDate>Wed, 13 Oct 2021 21:33:04 +0800</pubDate><description><![CDATA[题目连接：点击进入
题目


题意
待补
思路
还是看官方题解吧，懒~~~


代码
//#pragma GCC optimize(3)//O3
//#pragma GCC optimize(2)//O2
#include&lt;iostream&gt;
#include&lt;string&gt;
#include&lt;map&gt;
#include&lt;set&gt;
//#include&lt;unordered_map&gt;
#include&lt;queue&gt;
#include&lt]]></description><category></category></item><item><title><![CDATA[计算机算法设计与分析第二章思维导图&&知识点总结]]></title><link>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120628516</link><guid>https://blog.youkuaiyun.com/Cosmic_Tree/article/details/120628516</guid><author>Cosmic_Tree</author><pubDate>Thu, 07 Oct 2021 19:28:34 +0800</pubDate><description><![CDATA[递归的概念
直接或间接地调用自身的算法成为递归算法。
用函数自身给出定义的函数成为递归函数
递归实例
阶乘函数P11
Fibonacci数列P12
Ackerman函数P12
排列问题P13
整数划分问题P13
汉诺塔问题P14
分治法的基本思想
将一个规模为n的问题分解为k个规模较小的子问题，这些子问题互相独立且与原问题相同。递归地解决这些子问题，然后将各子问题合并得到原问题的解。
分治范例
二分搜索技术
基本思想：将n个元素分成个数大致相同的两半，取a[n/2]与x作比较。如果x=a[n/2]，则找到x]]></description><category></category></item></channel></rss>