<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[silentdeathdance的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/silentdeathdance</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; silentdeathdance]]></copyright><item><title><![CDATA[关于整除和取模运算的定义]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/126216370</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/126216370</guid><author>silentdeathdance</author><pubDate>Sun, 07 Aug 2022 20:20:19 +0800</pubDate><description><![CDATA[简单来说，就是一个整数a，可以表示为一个任意整数b乘一个任意整数n加上一个任意整数r，比如3，就可以表述为1乘2加1，而这个r，就是a mod n所求出来的数。对于任何一个整数a和任何一个正整数n，存在唯一的整数q和r，满足0 ≤ r＜n且a=qn+r。a(读作:d整除a)含义是，存在某个整数k，使得a=kb，任何整数均可整除0。算法导论上有一个对mod的完美解释，我觉得这值得我记录下来。为除法的商，值r=a mod n为除法的余数。a当且仅当a mod n=0。...]]></description><category></category></item><item><title><![CDATA[闲谈随笔：缓冲]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/126200674</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/126200674</guid><author>silentdeathdance</author><pubDate>Sat, 06 Aug 2022 20:30:10 +0800</pubDate><description><![CDATA[一篇闲谈，没什么好看的]]></description><category></category></item><item><title><![CDATA[2022.8.1：黑白棋子]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/126107449</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/126107449</guid><author>silentdeathdance</author><pubDate>Mon, 01 Aug 2022 19:11:08 +0800</pubDate><description><![CDATA[这一题是来自YBTOJ的题目，题目中运用到了贪心，缩点和分类讨论的思想。]]></description><category></category></item><item><title><![CDATA[2022.8.1：小学数学]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/126107416</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/126107416</guid><author>silentdeathdance</author><pubDate>Mon, 01 Aug 2022 18:43:49 +0800</pubDate><description><![CDATA[这一题是来自YBTOJ的题目，题目中运用到了贪心的思想和排序算法。]]></description><category></category></item><item><title><![CDATA[2022.7.31：航班延误]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/126089974</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/126089974</guid><author>silentdeathdance</author><pubDate>Sun, 31 Jul 2022 21:11:11 +0800</pubDate><description><![CDATA[这一题是来自YBTOJ的题目，题中运用到了拓扑排序和二叉堆的使用。]]></description><category></category></item><item><title><![CDATA[【NOIP 2014 提高组】寻找道路]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/125859474</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/125859474</guid><author>silentdeathdance</author><pubDate>Mon, 18 Jul 2022 20:34:18 +0800</pubDate><description><![CDATA[NOIP2014提高组的题目:寻找道路，代码以及思路]]></description><category></category></item><item><title><![CDATA[闲谈随笔：这是一份心得]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/125822367</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/125822367</guid><author>silentdeathdance</author><pubDate>Sat, 16 Jul 2022 17:20:40 +0800</pubDate><description><![CDATA[一份心得]]></description><category></category></item><item><title><![CDATA[ybtoj 构造完全图 最小生成树 kruskal]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/122905303</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/122905303</guid><author>silentdeathdance</author><pubDate>Sun, 13 Feb 2022 09:29:02 +0800</pubDate><description><![CDATA[题目描述

样例

数据范围

解题思路
可以看到极限数据是1e5，所以考虑nlogn算法。
完全图：一个图中每一对顶点都直接相连
图论题，犹豫不决先画图，然后根据题目要求构造一遍
画出来是这样 （不要在意箭头，这是个无向图）

然后思考一下怎么构造，发现2和3之间的权值必须比1大，否则最小生成树不唯一
假如2和3之间权值是1，那么生成的最小生成树完全可以不要1和3连着的边，可以选2和3的边，一样能生成一个树，所以我们发现，加入的权值必须大于题目所给的原最小生成树权值根据这样的思想，我们能构造出这样一个边权]]></description><category></category></item><item><title><![CDATA[ybtoj 躲避拥挤 并查集]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/122897407</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/122897407</guid><author>silentdeathdance</author><pubDate>Sat, 12 Feb 2022 15:53:31 +0800</pubDate><description><![CDATA[题目

样例

数据范围

解题
乍一看是图，但是并查集。其实画个图就知道了

用微软白板画的，鼠标作画。
可以看到3和5之间是5705的人气值，当询问6000时，就会有
（5,3）和（3,5）这两个组合满足题目条件，像这种求连通的题呢，就可以用并查集了，不难发现，3和5一开始属于两个并查集，但满足条件之后贡献出了两个答案，那么3和5这个并查集与2这个并查集合并之后的贡献是多少呢？
是2乘1再考虑反方向走再乘2对吧，所以现在就有了6个答案（2+4）。
但是这题如果每次询问都去重做一遍，可能会爆掉，所以考虑离]]></description><category></category></item><item><title><![CDATA[ybtoj 子串拆分 KMP算法]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/122895974</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/122895974</guid><author>silentdeathdance</author><pubDate>Sat, 12 Feb 2022 14:15:13 +0800</pubDate><description><![CDATA[太久没打KMP了，都快忘光了，还特意去复习了一下。
题目要求一个ABA形式的子串，KMP的PMT恰巧可以求出一个字符串真前缀与真后缀的集合之交集中，最长元素的长度，那接下来就是枚举一下子串了
#include &lt;bits/stdc++.h&gt;
using namespace std;
int main() 
{
	string n;
	cin&gt;&gt;n;
	n=' '+n;
	int m=n.size();
	int t,len;cin&gt;&gt;t;
	int next[16000.]]></description><category></category></item><item><title><![CDATA[ybtoj 特殊数列 哈希 hash]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/122879508</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/122879508</guid><author>silentdeathdance</author><pubDate>Fri, 11 Feb 2022 14:11:06 +0800</pubDate><description><![CDATA[第一问比较简单，第二问比较难
#include&lt;bits/stdc++.h&gt;
using namespace std;
const int P=313;
const int MOD=1000007;
int a[1086],b[100086];
int Hash[2000086];
bool vis[2000086];
bool use[2000086];
int viv[2000086];
int H(string s)
{
	int cnt=0;
	for (int i=0;i&lt;s..]]></description><category></category></item><item><title><![CDATA[ybtoj 攻击法坛 二分]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/122854395</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/122854395</guid><author>silentdeathdance</author><pubDate>Thu, 10 Feb 2022 09:55:30 +0800</pubDate><description><![CDATA[一开始以为是贪心加二分，结果不是，是二分加DP，具体思路是二分L，然后开两个数组f1f2，用n方的时间算出在当前L下从第i个点开始能到达第f1[i]个点，f2同理，然后dp呢就开个二维数组, dp【i】【j】表示当前使用了i次法杖和j次二倍法杖
#include&lt;bits/stdc++.h&gt;
using namespace std;
int a[2086];
int f1[2086],f2[2086],dp[2086][2086];
int main()
{
	int n,R,G;
	cin&.]]></description><category></category></item><item><title><![CDATA[ybtoj 最小时间【二分】]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/122853292</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/122853292</guid><author>silentdeathdance</author><pubDate>Thu, 10 Feb 2022 08:41:13 +0800</pubDate><description><![CDATA[很明显能想到二分t，然后问题的关键在于，二分了t之后怎么算出在当前t下的最大值，如果直接用sort肯定会爆，这里可以用另一个函数：nth_element，这个函数的用法跟sort差不多，但是多了一个参数，它的作用是在指定的1-n区间内把m位排好序，然后m左边的都比m小（假设是从小到大排序），右边都比m大，但是并不是有序的，也就是如果m是第三位，那第二位可能比第一位小，但是它们都比m位小，所以放在了前面，这个函数的时间复杂度是O(n)，这样就能用二分过
#include&lt;bits/stdc++.h&..]]></description><category></category></item><item><title><![CDATA[出栈序列 贪心]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/122843984</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/122843984</guid><author>silentdeathdance</author><pubDate>Wed, 09 Feb 2022 16:00:46 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
using namespace std;
int a[1000086],q[1000086],b[1000086];
int main()
{
	int n;
	cin&gt;&gt;n;
	for(int i=1;i&lt;=n;i++)
	{
		cin&gt;&gt;a[i];
	}
	int maxn=INT_MIN;
	for(int i=n;i&gt;0;i--)
	{
		maxn=max(maxn, a[i]);
		b[i]=m.]]></description><category></category></item><item><title><![CDATA[函数与参数]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/121513123</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/121513123</guid><author>silentdeathdance</author><pubDate>Wed, 24 Nov 2021 13:23:04 +0800</pubDate><description><![CDATA[早在第一个程序：helloworld的时候我们就已经接触过了主函数，后面我们又学习了定义，那么你有没有想过，自己定义一个函数呢？
函数类型  函数名称(参数)
{
	函数内执行的语句
	函数返回值
}

这是一个函数所必须的，像我们的主函数，它的定义类型是int，名字是main，不需要传入参数，返回值一般是0。
下面举一个不是主函数的例子
int max（int a,int b）
{
	if(a&gt;=b)return a;
	if(b&gt;=a)return b;
}

上面这个函数的作用是返回传入的]]></description><category></category></item><item><title><![CDATA[字符和字符串]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/121490500</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/121490500</guid><author>silentdeathdance</author><pubDate>Wed, 24 Nov 2021 13:02:37 +0800</pubDate><description><![CDATA[我们都知道，计算机内部是由0和1组成的，也就是二进制，那么计算机是怎么表示字符‘a’的呢？
ASCLL码
ASCLL码（美国信息交换标准代码）是基于拉丁字母的一套电脑编码系统，主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准。
c++显示字符也依靠ASCLL码实现，下面贴个表

可以在表中知道，每个字符都有其对应的ASCLL码值
char c='a';//在c++中，赋值字符要加上单引号
cout&lt;&lt;(int)c;//在变量前加括号，内加类型，意思是把变量的类型强制转换成括号内类型
]]></description><category></category></item><item><title><![CDATA[跳出语句和定义域]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/121469460</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/121469460</guid><author>silentdeathdance</author><pubDate>Mon, 22 Nov 2021 13:28:54 +0800</pubDate><description><![CDATA[跳出语句
首先把c++里的一些跳出语句摆出来
continue;		//跳出一层循环
break;	 		//跳出一个循环
return 返回值;	//跳出一个函数
goto 地方名称;	//无条件跳到任意地方

当我们执行一个for循环时
for (int i=1;i&lt;=10;i++)
{
	if(i==5)continue;
}

这个循环就只会执行9遍，原因是当i等于5的时候，它跳出了这一层循环
for (int i=1;i&lt;=10;i++)
{
	if(i==5)break;
}

这个]]></description><category></category></item><item><title><![CDATA[数组与循环]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/121469096</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/121469096</guid><author>silentdeathdance</author><pubDate>Mon, 22 Nov 2021 13:09:45 +0800</pubDate><description><![CDATA[当我们向c++申请一个存储空间的时候，我们这么写
int a;

这样我们就申请了一个叫a的变量，它可以用来存整数
但是如果要申请一堆存储空间呢？
我们这么写
int a[10];

这样我们就申请了10个存储空间
如果我们要调用第一个存储空间，就用a[0]来表示，第二个用a[1]表示，而第十个用a[9]表示，如果你只申请了十个空间，但是你的语句里出现了a[10]那么编译的时候可能会报错，运行的时候也可能会报错。
诸如 变量[数字] 这种类型的 我们称之为 数组
现在我们肯定要考虑，该怎么对它进行操作，对吧]]></description><category></category></item><item><title><![CDATA[三种判断语句]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/121377052</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/121377052</guid><author>silentdeathdance</author><pubDate>Wed, 17 Nov 2021 15:14:06 +0800</pubDate><description><![CDATA[这篇博客要介绍两种判断语句，首先来看一下这个程序

if和else
在c++里，我们一般用if和else来进行判断
if后接一个小括号，如果小括号里的值或者条件是真的，那么就会执行小括号后面的语句
我在上一篇博客里已经说过了，在c++里，1是真，0是假，1是对，0是错，但是在if的判断里，我们一般不用1或者0，我们用逻辑运算符和变量

像这一条语句里，a等于b吗？1很显然不等于2，所以这条语句是假的，那么if也就不会执行它后面的语句，转交给else处理。所以用我们的话来翻译这个程序就是，a等于1，b等于2，]]></description><category></category></item><item><title><![CDATA[定义类型和输入输出和基本运算]]></title><link>https://blog.youkuaiyun.com/silentdeathdance/article/details/121363232</link><guid>https://blog.youkuaiyun.com/silentdeathdance/article/details/121363232</guid><author>silentdeathdance</author><pubDate>Tue, 16 Nov 2021 20:26:37 +0800</pubDate><description><![CDATA[先看一个这样的程序

前三行应该不用讲，我在第一个程序：你好世界已经讲过了
哦，提一下，iostream里面包含的是cin和cout，我会在输入输出那边讲
先讲定义和类型
我们先来看第五和第六行

这个加粗的int 和加粗的double 就是类型
后面的a和b是变量
变量不需要多讲吧，可以粗暴的理解为，你找c++开了一间叫a的房，里面能放固定类型的数字。
int的意思是整型，也就是被int定义的变量，只能存整数，而且int定义的变量存储是有范围的
只能存负的2的31次方到正的2的31次方，如果超过就会数据溢]]></description><category></category></item></channel></rss>