<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mozelyr的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mozelyr</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mozelyr]]></copyright><item><title><![CDATA[牛客暑期多校训练1]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/127059637</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/127059637</guid><author>mozelyr</author><pubDate>Mon, 26 Sep 2022 19:59:18 +0800</pubDate><description><![CDATA[更新ing]]></description><category></category></item><item><title><![CDATA[模拟练习合集]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/125634968</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/125634968</guid><author>mozelyr</author><pubDate>Thu, 07 Jul 2022 10:32:11 +0800</pubDate><description><![CDATA[一些模拟练习题]]></description><category></category></item><item><title><![CDATA[动态规划合集]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/125595508</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/125595508</guid><author>mozelyr</author><pubDate>Tue, 05 Jul 2022 15:02:07 +0800</pubDate><description><![CDATA[一些动态规划的题目]]></description><category></category></item><item><title><![CDATA[偷钻石（网络流）]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120442454</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120442454</guid><author>mozelyr</author><pubDate>Thu, 23 Sep 2021 20:13:11 +0800</pubDate><description><![CDATA[传送门
#include&lt;bits/stdc++.h&gt;
using namespace std;
#define inf 0x3f3f3f3f
const int maxn=205;
int n,m,g[maxn][maxn],flow[maxn],pre[maxn];
bool bfs(int s,int t,int v){//搜索增广路，源点，汇点，顶点数 
	memset(pre,-1,sizeof(pre));
	memset(flow,inf,sizeof(flow));
	queue]]></description><category></category></item><item><title><![CDATA[最小割（最大流）]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120442095</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120442095</guid><author>mozelyr</author><pubDate>Thu, 23 Sep 2021 19:55:58 +0800</pubDate><description><![CDATA[传送门
#include&lt;bits/stdc++.h&gt;
using namespace std;
#define inf 0x3f3f3f3f
const int maxn=205;
int n,m,g[maxn][maxn],pre[maxn],flow[maxn];
bool bfs(int s,int t,int v){
	memset(pre,-1,sizeof pre);
	memset(flow,inf,sizeof flow);
	queue&lt;int&gt; q;
	q.pu]]></description><category></category></item><item><title><![CDATA[网络流 分房间（最大流）]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120441665</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120441665</guid><author>mozelyr</author><pubDate>Thu, 23 Sep 2021 19:33:19 +0800</pubDate><description><![CDATA[传送门
#include&lt;bits/stdc++.h&gt;
using namespace std;
#define inf 0x3f3f3f3f
const int maxn=205;
int n,m,g[maxn][maxn],pre[maxn],flow[maxn];
bool bfs(int s,int t,int v){
	memset(pre,-1,sizeof pre);
	memset(flow,inf,sizeof flow);
	queue&lt;int&gt; q;
	q.pu]]></description><category></category></item><item><title><![CDATA[hdu1532网络流（模板）]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120337313</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120337313</guid><author>mozelyr</author><pubDate>Thu, 16 Sep 2021 20:51:12 +0800</pubDate><description><![CDATA[传送门
//从汇点到源点遍历路径，更新残留网络 
#include&lt;bits/stdc++.h&gt;
using namespace std;
const int inf=0x3f3f3f3f;
const int maxn=205;
int n,m,g[maxn][maxn],pre[maxn],f[maxn];//pre[]记录路径(前驱节点)，f[]记录最小剩余容量 
bool bfs(int s,int t,int v){//搜索增广路，源点，汇点，顶点数 
	memset(pre,-1,s]]></description><category></category></item><item><title><![CDATA[铺地砖（状压dp）]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120166672</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120166672</guid><author>mozelyr</author><pubDate>Tue, 07 Sep 2021 20:36:04 +0800</pubDate><description><![CDATA[传送门
#include&lt;bits/stdc++.h&gt;
using namespace std;
typedef long long ll;
const int mode=1e9+7;
const int maxn=(1&lt;&lt;17)+5;
ll dp[maxn&lt;&lt;1],*pre,*cur;//分别从前往后，从后往前
int t,n,m;
int main()
{
	int s;
	cin&gt;&gt;t;
	while(t--){
		cin&gt;&gt;n&gt;&g]]></description><category></category></item><item><title><![CDATA[集合划分（状压dp）]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120165096</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120165096</guid><author>mozelyr</author><pubDate>Tue, 07 Sep 2021 19:14:45 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
using namespace std;
const int maxn=(1&lt;&lt;16)+5;
int n,a[20],dp[maxn],sum[maxn]={0};//dp[s]表示出现s集合，可行划分的总数 
int c[maxn],ispri[1700]={1,1};
int main()
{
	int t,s;
	scanf("%d",&amp;t);
	for(int i=0;i&lt;16;i++) c[1&lt;&lt;i]]]></description><category></category></item><item><title><![CDATA[hdu5418（同5691）]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120088817</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120088817</guid><author>mozelyr</author><pubDate>Fri, 03 Sep 2021 19:37:25 +0800</pubDate><description><![CDATA[传送门
#include&lt;bits/stdc++.h&gt;
using namespace std;
#define inf 0x3f3f3f3f
const int maxn=(1&lt;&lt;16)+5;
int n,m,dp[maxn][20],g[20][20],c[maxn];
int main()
{
	int t,S,u,v,w;
	for(int i=0;i&lt;16;i++) c[1&lt;&lt;i]=i+1;
	scanf("%d",&amp;t);
	while(t--)]]></description><category></category></item><item><title><![CDATA[hdu5691状压dp]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120076851</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120076851</guid><author>mozelyr</author><pubDate>Fri, 03 Sep 2021 11:56:35 +0800</pubDate><description><![CDATA[传送门

状态转移 dp[s|(1&lt;&lt;(j-1))][j]=max(dp[s|(1&lt;&lt;(j-1))][j],dp[s][i]+ai*aj)
有虚假态

#include&lt;bits/stdc++.h&gt;
using namespace std;
#define inf 0x80000000
int dp[1&lt;&lt;20][20];//dp[i][j],i为最大1&lt;&lt;n的二进制数，表示这n个数的当前选择方案，j表示第j个数为结尾 
int a[20],p[2]]></description><category></category></item><item><title><![CDATA[hdu7101滑动窗口（双指针）]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120066404</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120066404</guid><author>mozelyr</author><pubDate>Thu, 02 Sep 2021 17:34:53 +0800</pubDate><description><![CDATA[传送门
#include&lt;bits/stdc++.h&gt;
using namespace std;
#define pos(x,y) s[x%y][x/y%len[x%y]]-'a' //求第x个加入的字符转换为二进制后在哪一位  
typedef long long ll;
int len[101],cnt[26];
char s[101][13];
int t,n;
int main()
{
	int f1,f2;//标记出现的所有字符 
	int ml,mg;//ml标记字符串最大长度，mg]]></description><category></category></item><item><title><![CDATA[hdu6287可持久线段树+线性筛]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120065770</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120065770</guid><author>mozelyr</author><pubDate>Thu, 02 Sep 2021 17:12:05 +0800</pubDate><description><![CDATA[传送门
#include&lt;bits/stdc++.h&gt;
using namespace std;
const int maxn=1e5+5;
int n,m;
int pri[maxn],vis[maxn],pos[maxn],c=0;//质数表，最大质因子及其序号 
int tot=-1,ver[maxn];
struct st{
	int l,r,s;//s为质因子出现次数 
}tre[maxn&lt;&lt;8];
void init(){//线性筛 
	memset(pri,0,size]]></description><category></category></item><item><title><![CDATA[hdu7108哈希]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120042091</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120042091</guid><author>mozelyr</author><pubDate>Wed, 01 Sep 2021 15:59:41 +0800</pubDate><description><![CDATA[添加链接描述
#include&lt;bits/stdc++.h&gt;
using namespace std;
typedef long long ll;
const int maxn=1e5+5;
int t,n;
char ch[maxn];
ll s;
map&lt;pair&lt;int,int&gt;,int&gt; pos;
int main()
{
	ll x,y;
	scanf("%d",&amp;t);
	while(t--){
		x=y=0;
		s=0;
		while(!pos]]></description><category></category></item><item><title><![CDATA[洛谷2617 动态可持久线段树]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120026627</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120026627</guid><author>mozelyr</author><pubDate>Tue, 31 Aug 2021 21:04:29 +0800</pubDate><description><![CDATA[添加链接描述
#include&lt;bits/stdc++.h&gt;
using namespace std;
const int maxn=2e5+5;
struct st{
	int l,r,sum;
}tre[maxn&lt;&lt;9];
struct op{
	char s[2];
	int x,y,z;
}q[maxn];
int a[maxn],b[maxn];
int tot,ver[maxn];
int n,m,c;
int ndl[maxn],ndr[maxn],cntl,cntr;]]></description><category></category></item><item><title><![CDATA[主席树（mex）]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/120018167</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/120018167</guid><author>mozelyr</author><pubDate>Tue, 31 Aug 2021 14:59:47 +0800</pubDate><description><![CDATA[添加链接描述
#include&lt;bits/stdc++.h&gt;
using namespace std;
int n,m,t;
const int maxn=2e5+5;
struct st{
	int l,r,mi;
}tre[maxn&lt;&lt;5];
int tot,ver[maxn];
void pushup(int root){
	st &amp;rt=tre[root];
	st &amp;l1=tre[rt.l ];
	st &amp;r1=tre[rt.r ];
	rt.mi ]]></description><category></category></item><item><title><![CDATA[可持久线段树（主席树）模板]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/119985076</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/119985076</guid><author>mozelyr</author><pubDate>Sun, 29 Aug 2021 20:26:44 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
using namespace std;
const int maxn=1e5+5;
int t,n,m;
int tot;
int ver[maxn];
struct st{
	int l,r,sum;
}tre[maxn&lt;&lt;5];
int build(int l,int r){
	int root=++tot;
	tre[root].l =root;
	tre[root].r =root;
	tre[root].sum =0;
	r]]></description><category></category></item><item><title><![CDATA[洛谷3834主席树+离散化]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/119985051</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/119985051</guid><author>mozelyr</author><pubDate>Sun, 29 Aug 2021 20:25:42 +0800</pubDate><description><![CDATA[添加链接描述
#include&lt;bits/stdc++.h&gt;
using namespace std;
const int maxn=2e5+5;
int ver[maxn];
int tot,n,m;
struct st{
	int l,r,sum;
}tre[maxn&lt;&lt;5];
int lsh[maxn],a[maxn];
int build(int l,int r){
	int root=++tot;
	tre[root].l =root;
	tre[root].r =root]]></description><category></category></item><item><title><![CDATA[hdu1269强连通分量（kosaraju算法）]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/119803900</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/119803900</guid><author>mozelyr</author><pubDate>Thu, 19 Aug 2021 15:50:13 +0800</pubDate><description><![CDATA[添加链接描述
#include&lt;bits/stdc++.h&gt;
using namespace std;
const int maxn=1e4+5;
int a[maxn],b[maxn];
vector&lt;int&gt; p[maxn],q[maxn];//原图，反向图 
int vis[maxn];
int k;
void dfs1(int x){
	vis[x]=1;
	for(int i=0;i&lt;p[x].size();i++){
		if(vis[p[x][i]]==0) df]]></description><category></category></item><item><title><![CDATA[hdu4745]]></title><link>https://blog.youkuaiyun.com/mozelyr/article/details/119764150</link><guid>https://blog.youkuaiyun.com/mozelyr/article/details/119764150</guid><author>mozelyr</author><pubDate>Tue, 17 Aug 2021 19:27:07 +0800</pubDate><description><![CDATA[添加链接描述
#include&lt;bits/stdc++.h&gt;
using namespace std;
const int maxn=2005;
int a[maxn];
int dp[maxn][maxn];
int main()
{
	int n;
	while(scanf("%d",&amp;n)!=EOF){
		if(n==0) break;
		for(int i=1;i&lt;=n;i++){
			scanf("%d",&amp;a[i]);
			a[i+n]=a[i];
		]]></description><category></category></item></channel></rss>