<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[oldxmtang的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/oldxmtang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; oldxmtang]]></copyright><item><title><![CDATA[链表结构的基本操作（整理）]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/116179434</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/116179434</guid><author>oldxmtang</author><pubDate>Tue, 27 Apr 2021 01:26:08 +0800</pubDate><description><![CDATA[///为了方便阅读，我直接把注释写在了程序里，如果发现我写的有问题，欢迎各位巨佬指导。

#include&lt;bits/stdc++.h&gt;
using namespace std;
#define MaxSize 50
typedef int ElemType;
typedef struct LNode    //声明单链表结点类型
{
 ElemType data;
  struct LNode *next;   //指向后继结点
} LinkNode;
void Crea...]]></description><category></category></item><item><title><![CDATA[快速排序整理（老粗糙了）]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/115993353</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/115993353</guid><author>oldxmtang</author><pubDate>Thu, 22 Apr 2021 05:12:50 +0800</pubDate><description><![CDATA[现附上经典源代码

#include&lt;iostream&gt;
using namespace std;
void kp(int a[],int l,int r)
{
  if(l&gt;=r)return;
  int i=l;
  int j=r;
  int p=a[l];
  while(i&lt;j)
  {
    while(i&lt;j&amp;&amp;a[j]&gt;=p)j--;
    while(i&lt;j&amp;&amp;a[i]...]]></description><category></category></item><item><title><![CDATA[线性表基本操作整理]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/115451781</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/115451781</guid><author>oldxmtang</author><pubDate>Tue, 06 Apr 2021 01:08:48 +0800</pubDate><description><![CDATA[///为了方便阅读，我直接把注释写在了程序里，如果发现我写的有问题，欢迎各位巨佬指导。

#include&lt;iostream&gt;
using namespace std;
typedef int elemtype;///elemtype就是线性表中的元素类型
///我们暂时把类型设为int
const int maxsize=100;///startsize就是线性表的大小
const int nstep=10;
struct mylist
{
  elemtype *node;///线性表中..]]></description><category></category></item><item><title><![CDATA[高斯消元]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81393566</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81393566</guid><author>oldxmtang</author><pubDate>Sat, 04 Aug 2018 01:20:07 +0800</pubDate><description><![CDATA[高斯消元

高斯消元，看起来好像很高端，其实它真的很高端，只不过并不难。

模拟而已。

主要就是可以解决方程组的问题，还有矩阵的问题。

然而用到的，就是我们平常解多元一次方程组的方法，这个消元，可以说是模拟了，它模拟了我们平时的手算。

我们平时的手算也是一元一元的消掉：

先以一元为例：3x=8

显然x=8/3；

下面换为参数：ax=b

那么我们就要分情况讨论了：

1.a!=0

此...]]></description><category></category></item><item><title><![CDATA[乘法逆元]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81348089</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81348089</guid><author>oldxmtang</author><pubDate>Thu, 02 Aug 2018 23:31:39 +0800</pubDate><description><![CDATA[乘法逆元

 

(由于打不出来三横的同余符号，下面的同余符号都用两横的代替)

乘法逆元是什么？

说得简单一点，就是有两个数 a , b,有a*b=1(mod p)

a就是b的乘法逆元，当然是关于模数p的。显然我们得到b也是a的乘法逆元。

（直接看，估计是看不出来的，但是我们有两位牛人）

先介绍一种求法：

先由费马小定理，有：（p为素数这个条件很重要）

m^(p-1)=1(mod p...]]></description><category></category></item><item><title><![CDATA[附：tarjan缩点模板题：洛谷p1726（这是最模板的了）]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81161163</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81161163</guid><author>oldxmtang</author><pubDate>Mon, 23 Jul 2018 01:15:12 +0800</pubDate><description><![CDATA[ 

题目点这

这里发一份自己手打代码：（需要讲解的，可以看我的另一篇，讲的其实也不算太好，没帮助的话，就找其他人的吧：缩点）


#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int mm=5050;
int DFN[mm];
int LOW[mm];
int STACK[mm];
int sta;
int tot;
vect...]]></description><category></category></item><item><title><![CDATA[图论总结tarjan算法]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81117996</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81117996</guid><author>oldxmtang</author><pubDate>Fri, 20 Jul 2018 18:44:49 +0800</pubDate><description><![CDATA[tarjan算法，是一个可以在有向图中找到强连通分量的的算法。

首先你要了解什么是强连通，以及什么是强连通分量。

下面是我给的简释：

一、强连通。

       就是在一个有向图（记为G）中，如果两个点（记为a，b）他们分别可以走到对方（即从a出发可以走到b，从b出发也可以走到a），那么我们说这两个点（a，b）是强连通的。

二、强连通子图。

       设有一个有向图（记为G），他有...]]></description><category></category></item><item><title><![CDATA[字符串总结之ac自动机]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81089438</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81089438</guid><author>oldxmtang</author><pubDate>Tue, 17 Jul 2018 22:46:07 +0800</pubDate><description><![CDATA[ac不是accepted的意思，而是作者的名字。

首先要学会ac自动机，就要先学会kmp算法和trie树（字典树）。

然而我为了写一篇ac自动机的博客，先写了trie的模板，还写了kmp的模板，所以在这里我就不介绍kmp和trie树了，就用简洁的文字讲述ac自动机的模板。

首先，我们先构造一棵trie树，对于每一个节点我们多设一个*fail指针，指向的位置----可以类比kmp的next数组...]]></description><category></category></item><item><title><![CDATA[字符串总结之后缀自动机]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81080519</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81080519</guid><author>oldxmtang</author><pubDate>Tue, 17 Jul 2018 14:23:44 +0800</pubDate><description><![CDATA[本文转自https://blog.youkuaiyun.com/qq_35649707/article/details/66473069

因为自己写不出这么好的后缀自动机的博客，于是开始寻找好的博客，然后我就找到了这样的一篇，写的真的是很好。

原论文（俄文）地址：suffix_automata

后缀自动机

 

后缀自动机（单词的有向无环图）——是一种强有力的数据结构，让你能够解决许多字符串问题。

...]]></description><category></category></item><item><title><![CDATA[成都day5]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81035495</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81035495</guid><author>oldxmtang</author><pubDate>Fri, 13 Jul 2018 21:22:00 +0800</pubDate><description><![CDATA[I - Nice to Meet YouTime limit : 2sec / Memory limit : 256MBScore : 100 pointsProblem StatementThere are N islands floating in Ringo Sea, and M travel agents operate ships between these islands. For c...]]></description><category></category></item><item><title><![CDATA[成都dp总结之导弹拦截（自己找的练习lg1020）]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81034984</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81034984</guid><author>oldxmtang</author><pubDate>Fri, 13 Jul 2018 17:41:15 +0800</pubDate><description><![CDATA[P1020 导弹拦截题目描述某国为了防御敌国的导弹袭击，发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷：虽然它的第一发炮弹能够到达任意的高度，但是以后每一发炮弹都不能高于前一发的高度。某天，雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段，所以只有一套系统，因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度（雷达给出的高度数据是 \le 50000≤50000 的正整数），计算这套系统最...]]></description><category></category></item><item><title><![CDATA[dp总结day5之J-Indiffrent（code festival）]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81031942</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81031942</guid><author>oldxmtang</author><pubDate>Fri, 13 Jul 2018 15:54:02 +0800</pubDate><description><![CDATA[J - IndifferentTime limit : 2sec / Memory limit : 256MBScore : 100 pointsProblem StatementWe have 2N pots. The market price of the i-th pot (1≤i≤2N) is pi yen (the currency of Japan).Now, you and Lunl...]]></description><category></category></item><item><title><![CDATA[dp总结day5之最长上升子序列]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81030076</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81030076</guid><author>oldxmtang</author><pubDate>Fri, 13 Jul 2018 14:26:57 +0800</pubDate><description><![CDATA[首先有一道基础题：最长不下降子序列。（先考虑只求长度）然而这显然是一道dp题目。当然有一个比较暴力的n^2求法：首先用dp[i]表示i位置及以前的最长不下降子序列的长度。让后枚举1-i中的a[j]之后就有这样的转移方程dp[i]=max(dp[i-1],dp[j]+1)；（仔细想一下就懂了）然后发现其实有一个究极精简的nlogn的算法：中间有这样的两个函数：（upper_bound(),lower...]]></description><category></category></item><item><title><![CDATA[成都day3t3]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81024867</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81024867</guid><author>oldxmtang</author><pubDate>Fri, 13 Jul 2018 02:25:07 +0800</pubDate><description><![CDATA[3 、B B  君的第 三 题 （ shanghai .pas /cpp ）【问题描述】日光之下，并无新事。大家还记得 BZOJ1494[NOI2007]生成树计数吗？这个题目就是原版环形的生成树计数。考虑到有些同学没有看过这个题目，我们简述这个题目如下。输入 k, n(n ≥ 2k + 1)，考虑 n 个点围成一个环，所有距离≤ k 的点对之间有一条无向边。相邻的 2 个点距离为 1，如果两个点...]]></description><category></category></item><item><title><![CDATA[成都day3t2]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81024847</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81024847</guid><author>oldxmtang</author><pubDate>Fri, 13 Jul 2018 00:57:27 +0800</pubDate><description><![CDATA[2 、B B  君的第 二 题 （ hongkong .pas/cpp ）【问题描述】申生在内而亡，重耳在外而安考虑 k + 1 个数组 a[i] (0 ≤ i ≤ k)。为了方便起见，每个数组 a[i]长度为 n，下标从 1 开始。（直观来说就是第一维下标从 0 开始，第二维下标从 1 开始。）其中 a[i]时时刻刻是 a[i-1] (1 ≤ i ≤ k)的前缀和。前缀和就是 a[i][1] =...]]></description><category></category></item><item><title><![CDATA[成都day3t1]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81024194</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81024194</guid><author>oldxmtang</author><pubDate>Fri, 13 Jul 2018 00:14:59 +0800</pubDate><description><![CDATA[1 、B B  君的第一题 （ beijing .pas/cpp ）【问题描述】天台上的朋友让一让，让我先来。世界杯开始了，B 君最近在关注一局季后赛。在这局季后赛中，甲队和乙队将会进行至多 2n-1 场比赛，谁先取得 n 场胜利，谁便会获得最终的胜利。并且之后的比赛不会继续进行。B 君很看好甲队，为了计算方便，B 君希望下注 22n-1 元，也就是说,如果最终甲队先取得了 n 场胜利，B 君就会...]]></description><category></category></item><item><title><![CDATA[Trie树（字典树）自学、整理]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/81001219</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/81001219</guid><author>oldxmtang</author><pubDate>Wed, 11 Jul 2018 15:51:22 +0800</pubDate><description><![CDATA[之前就学过字典树，学的时候接触oi的时间还比较少，对字典树的理解还不是很透彻，那个时候还是别人手把手教我打出的字典树代码。然而，现在再看字典树，发现并不是那么难，反而觉得很简单了。字典树其实是一种拿空间换时间的算法，对于做一些查找单词的题目来说还是很有用的。下面以洛谷p2580为例子：P2580 于是他错误的点名开始了题目背景XS中学化学竞赛组教练是一个酷爱炉石的人。他会一边搓炉石一边点名以至于有...]]></description><category></category></item><item><title><![CDATA[kmp自学、整理]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/80978750</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/80978750</guid><author>oldxmtang</author><pubDate>Tue, 10 Jul 2018 23:52:24 +0800</pubDate><description><![CDATA[首先我们来看这样的一道题目：有一个文本串s（长的）和一个模式串p（短的），现在要在s的子串中间找到p，怎么找？第一，肯定会想到暴力：void violent(string ss,string pp)//ss为文本串（长），pp为模式串（短）{    int i;///s中匹配到了i    int j;///p中匹配到了j    int slen=ss.size();    int plen=pp....]]></description><category></category></item><item><title><![CDATA[成都day2t3]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/80991456</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/80991456</guid><author>oldxmtang</author><pubDate>Tue, 10 Jul 2018 20:19:34 +0800</pubDate><description><![CDATA[3 、 数论题 （ number .pas s /cpp ）【问题描述】企鹅国数学家 QQ 潜心研究数论，终于发现了一个简单的数论问题！一个 QQ 数定义为一个拥有一个大于 1 的完全平方数为因子的数字，一个数字的 QQ 值定义为这个数是 QQ 数的因数个数。现在 QQ 想知道在[L,R]范围内，每个整数的 QQ 值之和是多少？你只需要告诉他这个数字，他就可以给你宝贵的 10 分作为一个奖励！【输...]]></description><category></category></item><item><title><![CDATA[成都day2t2]]></title><link>https://blog.youkuaiyun.com/oldxmtang/article/details/80990914</link><guid>https://blog.youkuaiyun.com/oldxmtang/article/details/80990914</guid><author>oldxmtang</author><pubDate>Tue, 10 Jul 2018 19:38:45 +0800</pubDate><description><![CDATA[2 、 不回文 （ bhw .pas/cpp ）【问题描述】学不会最小回文串划分的豆豆决定弃疗选择挑战非回文划分。他想知道一个字符串 S 的最少和最多能划分成几个非回文串？注: 如果一个字符串不是回文串，那么他是非回文串。例如()()是非回文串，而())(是回文串。【输入格式】第一行一个整数 T，表示测试数据组数。接下来 T 行，每行一个仅由小写字母构成的字符串 S。【输出格式】输出 T 行，每行...]]></description><category></category></item></channel></rss>