<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Fisheory的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_49528097</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_49528097]]></copyright><item><title><![CDATA[牛客NOIP赛前集训营5-3 经典字符串问题]]></title><link>https://blog.youkuaiyun.com/qq_49528097/article/details/109340021</link><guid>https://blog.youkuaiyun.com/qq_49528097/article/details/109340021</guid><author>qq_49528097</author><pubDate>Wed, 28 Oct 2020 18:58:42 +0800</pubDate><description><![CDATA[题解
类似离散化后就是主席树模板题。
#include&lt;bits/stdc++.h&gt;
using namespace std;
string s[100010];
int t[100010],di[100010];
int tong[100010],tong2[100010];
int id[100010];
int v[4000010];
int l[4000010],r[4000010];
int root[100010];
int tot=0;
int build(int a,int b)]]></description><category></category></item><item><title><![CDATA[牛客NOIP赛前集训营-提高组2-B 包含]]></title><link>https://blog.youkuaiyun.com/qq_49528097/article/details/109207082</link><guid>https://blog.youkuaiyun.com/qq_49528097/article/details/109207082</guid><author>qq_49528097</author><pubDate>Wed, 21 Oct 2020 18:40:49 +0800</pubDate><description><![CDATA[题目描述
我们定义A“包含”B的概念是A&amp;B=B，其中 &amp; 是位运算中的“按位与”。
现在给出一个集合Q，这个集合 n 个正整数，m 次询问。每次询问给出一个数字 x，请回答集合 Q 中是否有一个数字包含 x。
1≤n≤105,1≤m≤105,1≤x,ai≤1061≤n≤10^5 ,1≤m≤10^5,1≤x,a_i≤10^61≤n≤105,1≤m≤105,1≤x,ai​≤106
题解
使用dp.
设能被包含的数的dp值为1,不能的为0.
所以可从大到小枚举,得if(dp[i]&nbsp;&a]]></description><category></category></item><item><title><![CDATA[牛客多校第6场K-K-bag]]></title><link>https://blog.youkuaiyun.com/qq_49528097/article/details/107621184</link><guid>https://blog.youkuaiyun.com/qq_49528097/article/details/107621184</guid><author>qq_49528097</author><pubDate>Tue, 28 Jul 2020 12:35:19 +0800</pubDate><description><![CDATA[题意
K-bag是一个正整数序列，由若干个111~kkk的排列排成，其连续子序列被称为部分K-bag。
给出一个序列和正整数kkk，判断该序列是不是部分K-bag。
题解

]]></description><category></category></item><item><title><![CDATA[牛客多校第5场B-Graph]]></title><link>https://blog.youkuaiyun.com/qq_49528097/article/details/107594518</link><guid>https://blog.youkuaiyun.com/qq_49528097/article/details/107594518</guid><author>qq_49528097</author><pubDate>Sun, 26 Jul 2020 15:58:56 +0800</pubDate><description><![CDATA[题意
给定一个顶点个数为nnn、边数为n−1n-1n−1的图，图上的边有边权，可执行的操作为在任意两个不连通的点之间连一条边和删去一条边，但在任何时候都应满足图是连通的且图中的任意一个环的所有边的边权异或和为000。
求图中边权和（不是异或和）的最小值。
（n≤100000n\leq100000n≤100000）
题解
在操作的过程中这个图一定会保持树的状态。
异或的最基本的性质就是 x&nbsp;xor&nbsp;x=0x\ xor\ x=0x&nbsp;xor&nbsp;x=0。
根据这个性质可以知道，]]></description><category></category></item><item><title><![CDATA[牛客多校第5场A-Portal]]></title><link>https://blog.youkuaiyun.com/qq_49528097/article/details/107592511</link><guid>https://blog.youkuaiyun.com/qq_49528097/article/details/107592511</guid><author>qq_49528097</author><pubDate>Sun, 26 Jul 2020 13:53:03 +0800</pubDate><description><![CDATA[题意
有一个nnn个顶点mmm条边的图中，每条边有边权，你有kkk个任务，第iii个任务为从编号为aia_iai​的点走到编号为bib_ibi​的点。
同时你又可以随时在当前节点打开一个传送门，在两个传送门之间可以瞬间传送。但是最多同时存在两个传送门，当你想要在已经有两个传送门的情况下打开传送门，就需要远程关闭一个传送门。
求从顶点111开始，完成这kkk个任务所经过的最小边权。
题解
这道题使用dpdpdp。
先使用FloydFloydFloyd算法直接求出多源最短路，用dis[i][j]dis[i][j]]></description><category></category></item><item><title><![CDATA[牛客多校第5场D Drop Voicing]]></title><link>https://blog.youkuaiyun.com/qq_49528097/article/details/107583809</link><guid>https://blog.youkuaiyun.com/qq_49528097/article/details/107583809</guid><author>qq_49528097</author><pubDate>Sat, 25 Jul 2020 20:13:36 +0800</pubDate><description><![CDATA[题意
有一个1~n的排列，有以下两种操作：

Drop-2：将倒数第二个数放到开头，前面的数向后平移
Invert：将倒数第二个数放到开头，前面的数向后平移

若干连续的Drop-2称为Multi-drop。
计算要使该排列排成1~n所需的最少的Multi-drop的数量。
做法
首先Invert可以无条件使用，那么就可以想到使用Multi-drop相当于将一个数字移动到想移到的地方，如下演示：
4 1 2 3 5 6
Invert ⇒\Rightarrow⇒ 1 2 3 5 6 4
Drop-2 ∗*∗ ]]></description><category></category></item><item><title><![CDATA[牛客多校第5场E Bogo Sort]]></title><link>https://blog.youkuaiyun.com/qq_49528097/article/details/107583663</link><guid>https://blog.youkuaiyun.com/qq_49528097/article/details/107583663</guid><author>qq_49528097</author><pubDate>Sat, 25 Jul 2020 19:36:56 +0800</pubDate><description><![CDATA[牛客多校第5场E 	Bogo Sort
题意
给定置换数组，求有多少排列可以通过这个置换变成顺序。
做法
置换数组必定存在循环，可以直接跑一遍求出每一个循环的长度。
对于每一个循环的长度求LCM即为答案。
由于可能会出现求2,3,5,7,11,13,…的LCM，需要高精度。
所以这里使用分解质因数，并用map统计最大指数处理而不是除以GCD，将计算转化为高精乘低精。
题目给的取模显然过大，所以不需要取模。
细节处理需要注意。
#include&lt;bits/stdc++.h&gt;
using names]]></description><category></category></item></channel></rss>