<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lxddddas的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lxddddas</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lxddddas]]></copyright><item><title><![CDATA[[蓝桥杯2020初赛] 回文日期]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/124016856</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/124016856</guid><author>lxddddas</author><pubDate>Thu, 07 Apr 2022 15:03:19 +0800</pubDate><description><![CDATA[2020 年春节期间，有一个特殊的日期引起了大家的注意：2020 年2 月2日。因为如果将这个日期按“yyyymmdd” 的格式写成一个8 位数是20200202，恰好是一个回文数。我们称这样的日期是回文日期。
有人表示20200202 是“千年一遇” 的特殊日子。对此小明很不认同，因为不到2 年之后就是下一个回文日期：20211202 即2021 年12 月2 日。
也有人表示20200202 并不仅仅是一个回文日期，还是一个ABABBABA型的回文日期。对此小明也不认同，因为大约100 年后就能遇到下一]]></description><category></category></item><item><title><![CDATA[递归小练习2]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/122526853</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/122526853</guid><author>lxddddas</author><pubDate>Sun, 16 Jan 2022 18:54:08 +0800</pubDate><description><![CDATA[外星密码
题目描述
有了防护伞，并不能完全避免 2012 的灾难。地球防卫小队决定去求助外星种族的帮 助。经过很长时间的努力，小队终于收到了外星生命的回信。但是外星人发过来的却是一 串密码。只有解开密码，才能知道外星人给的准确回复。解开密码的第一道工序就是解压 缩密码，外星人对于连续的若干个相同的子串“X”会压缩为“[DX]”的形式（D 是一个整 数且 1≤D≤99），比如说字符串“CBCBCBCB”就压缩为“[4CB]”或者“[2[2CB]]”，类 似于后面这种压缩之后再压缩的称为二重压缩。如果是“[2[]]></description><category></category></item><item><title><![CDATA[递归小练习1]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/122526752</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/122526752</guid><author>lxddddas</author><pubDate>Sun, 16 Jan 2022 18:46:34 +0800</pubDate><description><![CDATA[覆盖墙壁
题目描述
你有一个长为N宽为2的墙壁，给你两种砖头：一个长2宽1，另一个是L型覆盖3个单元的砖头。如下图：
0  0
0  00
砖头可以旋转，两种砖头可以无限制提供。你的任务是计算用这两种来覆盖N2的墙壁的覆盖方法。例如一个23的墙可以有5种覆盖方法，如下：
012 002 011 001 011
012 112 022 011 001
注意可以使用两种砖头混合起来覆盖，如2*4的墙可以这样覆盖：
0112
0012
给定N，要求计算2N的墙壁的覆盖方法。由于结果很大，所以只要求输出最后4位。例]]></description><category></category></item><item><title><![CDATA[leetcode 87.扰乱字符串]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/117421576</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/117421576</guid><author>lxddddas</author><pubDate>Mon, 31 May 2021 17:20:36 +0800</pubDate><description><![CDATA[简单的dp思路
题意：
给两个字符串s , t，每次操纵可以把t串分割成两个字符串并且翻转，也可以选择不反转，再从其中一个子串中选择一个继续进行操作,问你可以将t串转换成s串吗
思路：
区间dp的思路，不同的是需要再用一维来表示s的开头，dp[i][j][l]表示长度为l的开头分别为i,j
的s串和t串可以转换成相同的串吗
细节：
在每一个操作中需要讨论两种情况，翻转和不翻转
// 枚举区间长度 2～n
        for (int len = 2; len &lt;= n; len++) 
     ]]></description><category></category></item><item><title><![CDATA[第十一届山东省大学生程序设计竞赛总结]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/116597003</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/116597003</guid><author>lxddddas</author><pubDate>Mon, 10 May 2021 15:41:53 +0800</pubDate><description><![CDATA[昨天那场比赛，我此生难忘，我的ACM生涯中，在训练了一年半的情况下，第一次打比赛，打铁了，作为一个大二的队伍，能打出这样的成绩确实让我很难过，但是我们还是有实力的，我们还是找到自己的不足，去努力做的更好

因为G题是一道签到题，我们队伍没做出来，非常影响我们的心态，我们没有做好最冷静的处理，得确是有点慌了，lwh的鼻子上出了汗，wbc一直在憨笑，前三个小时一个题都没有做出来，后来三个多小时时，我找到了H题我的bug，一发A掉了，鼓舞了我们的士气，然后在读D题的题意，一直没看懂outline 的意思是什么，所]]></description><category></category></item><item><title><![CDATA[训练报告 省赛前瞻]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/116429533</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/116429533</guid><author>lxddddas</author><pubDate>Wed, 05 May 2021 20:12:41 +0800</pubDate><description><![CDATA[这五天的训练真很累，这几天的题的难度基本上来说，非水题能出0.6道左右，我现在我也看不出来我们到底是什么水平，因为只看校内的队伍并没有什么好比较的，感觉同级的队伍差的不太多，我们队相对来说容错率不太高，有可能出题的数据结构和动态规划，但是基本上考到了的题难度也很难去A，尽量争取在比赛时能尽量快的去找到自己能出的题并且一遍就要考虑清楚代码，水题没想清楚直接叫也会WA两三次，能跟榜就尽量先跟一下，前一个小时尽量跟榜把水题都做了然后再开始考虑其他题，模拟和博弈也有可能成为关键题，队伍现在策略还可以，能码的让魏百川]]></description><category></category></item><item><title><![CDATA[Naptime 环dp]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/116161671</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/116161671</guid><author>lxddddas</author><pubDate>Mon, 26 Apr 2021 16:41:56 +0800</pubDate><description><![CDATA[for(int i=1;i&lt;=n;i++)F[i][0][0]=0;F[1][1][1]=0;
		for(int i=2;i&lt;=n;i++)
			for(int j=1;j&lt;=m;j++)
			{		
				F[i][j][0]=max(F[i-1][j][0],F[i-1][j][1]);		
				F[i][j][1]=max(F[i-1][j-1][0]+0,F[i-1][j-1][1]+a[i]);		
			}	

		ans=max(F[n][m][1],F[n...]]></description><category></category></item><item><title><![CDATA[4-25总结报告]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/116136991</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/116136991</guid><author>lxddddas</author><pubDate>Sun, 25 Apr 2021 20:03:07 +0800</pubDate><description><![CDATA[这周打了几次比赛，星期六这场是最差劲的，没处理好做题的顺序，还因为读错题被卡了。前面两次比赛还算比较顺利，然后我个人这周也做了额外的大概十道dp题，现在去做的dp题整体思路已经很熟练了，就是每个题结合到的知识点还是很多样化，所以还是需要刷题量，还训练的不够
...]]></description><category></category></item><item><title><![CDATA[麦香牛块]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/116136855</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/116136855</guid><author>lxddddas</author><pubDate>Sun, 25 Apr 2021 19:55:34 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#define maxx 65025
using namespace std;
int dp[maxx];
int a[12];
int main()
{
    int n;
    cin&gt;&gt;n;
    for(int i=1;i&lt;=n;i++) cin&gt;&gt;a[i];
    dp[0]=1;
    for(int i=1;i&lt;=n;i++)
     for(int j=a[i];j&lt;=maxx;j++.]]></description><category></category></item><item><title><![CDATA[不降数]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/116117219</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/116117219</guid><author>lxddddas</author><pubDate>Sun, 25 Apr 2021 09:50:53 +0800</pubDate><description><![CDATA[这题简单的推完之后可能会想到这样一个简单的公式


 for(int i=2;i&lt;=n;i++){
          for(int j=1;j&lt;=9;j++){
              for(int k=1;k&lt;=j;k++){
                  dp[i][j]=(dp[i][j]+dp[i-1][k])%mod;
                  ans=dp[i][j];
              }
          }
    }

但是其中k那]]></description><category></category></item><item><title><![CDATA[货币系统]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/116116623</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/116116623</guid><author>lxddddas</author><pubDate>Sun, 25 Apr 2021 09:22:08 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#include&lt;cstring&gt;
#include&lt;iostream&gt;
#include&lt;algorithm&gt;
using namespace std;
int t,n,m;
int f[25005],a[105];
int main()
{
    cin&gt;&gt;t;
    while(t--){
       cin&gt;&gt;n;
       memset(f,-63,sizeof f);
  .]]></description><category></category></item><item><title><![CDATA[硬币购物]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/115869198</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/115869198</guid><author>lxddddas</author><pubDate>Mon, 19 Apr 2021 17:24:08 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
using namespace std;
int T,n,c[5],d[5],s;
long long ans,f[100010];
void pack_pre()
{
	f[0]=1;
	for(int i=1;i&lt;=4;i++)
	    for(int j=c[i];j&lt;=100001;j++)
	        f[j]+=f[j-c[i]];
}
void dfs(int now,int sum,int flag)
//no.]]></description><category></category></item><item><title><![CDATA[飞扬的小鸟]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/115752061</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/115752061</guid><author>lxddddas</author><pubDate>Fri, 16 Apr 2021 11:27:21 +0800</pubDate><description><![CDATA[for(int i=1;i&lt;=t;i++) cin&gt;&gt;x&gt;&gt;l[x]&gt;&gt;r[x];
    for(int i=1;i&lt;=n;i++){
       for(int j=1+x[i];j&lt;=m+x[i];j++)
          dp[i][j]=min(dp[i-1][j-x[i]]+1,dp[i][j-x[i]]+1);
       for(int j=1;j&lt;=m-y[i];j++)
          dp[i][j]=mi...]]></description><category></category></item><item><title><![CDATA[P3448 [POI2006]MIS-Teddies（线性dp）]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/115601510</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/115601510</guid><author>lxddddas</author><pubDate>Sun, 11 Apr 2021 17:16:47 +0800</pubDate><description><![CDATA[题意：

这题给你四种熊，类型是A1 A2 B1 B2,分别n1,n2,n3,n4个，如果三个连续的熊序号带A，B或者序号都带1，2那么这个序列就不可用问你可用的序列有多少种

思路：

用dp的思路先去思考，每次向序列中添加新的熊 能让可用序列增加多少种，假如添加第 i 只熊的时候添加的是A1，先考虑：

假如每种原先的序列的每一个插空都可以添加A1,那么新序列有ans=ans*i（原来有i-1个熊，就有i个空）
	这些序列中的所有不可用序列有多少种？
	令f[i][j][k][l][x][y]f[...]]></description><category></category></item><item><title><![CDATA[Cities(区间dp)]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/115583375</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/115583375</guid><author>lxddddas</author><pubDate>Sat, 10 Apr 2021 20:40:36 +0800</pubDate><description><![CDATA[题意：

给出一个长度为 n 的数组，一次操作可以选择一段连续且值都相同的区间，然后使其变成其他值，问最少需要多少次操作，才能使得数组的值全相等。数组中每个数最多出现 15 次。
思路：

首先分析，可以直接将n个数压缩成m个不同的数的数组，m个数如果全部不同那么需要m-1 次操作，其实这题的最少多少次操作我们需要把他转化成最多减少多少次操作，能想到这点就好做了，dp[i][j]表示i到j的区间内最多减少多少次操作。状态转移方程就如下：



枚举K 的位置就可以得到答案了 ，ans= m-1-dp[1].]]></description><category></category></item><item><title><![CDATA[Hdu6570]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/115582884</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/115582884</guid><author>lxddddas</author><pubDate>Sat, 10 Apr 2021 19:51:06 +0800</pubDate><description><![CDATA[这题我一看就是要用dp来做的

用dp[i][j]来表示，奇数位上是 i ，偶数位上 j 的最长序列。

a[i]这个数作为X，j从1到c遍历，如果dp[j][X]是奇数那么dp[j][X]+1
	如果dp[X][j]是偶数，那么dp[X][j]+1
那么最后答案就是最大的dp


for(int i=1;i&lt;=n;i++) {
       cin&gt;&gt;a[i];
       for(int j=1;j&lt;=c;j++){
          if(a[i]!=j){
       ]]></description><category></category></item><item><title><![CDATA[征途（斜率优化dp）]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/115526879</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/115526879</guid><author>lxddddas</author><pubDate>Thu, 08 Apr 2021 17:57:46 +0800</pubDate><description><![CDATA[一开始先把式子写出来 
 后面的值是固定值所以我们只要最小化前面的式子就可以了 用dp[i][j]来表示前j段路程分成i天走要用的最小天数，很容易可以看出来状态转移方程

 这题要求的复杂度显然没那么简单，然后想到用斜率优化来做，我们就可以把状太转移方程调整一下形式




for(int p=2;p&lt;=m;p++){
        h=1,t=0;
        for(int i=1;i&lt;=n;i++) { 
            while(h&lt;t&amp;&amp;...]]></description><category></category></item><item><title><![CDATA[管道取珠]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/115492587</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/115492587</guid><author>lxddddas</author><pubDate>Wed, 07 Apr 2021 18:46:21 +0800</pubDate><description><![CDATA[∑ai^2这个可以理解成两个取珠同时进行，然后能相同的取珠结果有多少种 这个点还是挺巧妙的

然后就可以设状态方程 dp[i][j][i1][j1]表示第一个取A i个取B j个

同时第二个取A i1个取B j1个 这里的i+j=i1+j1 所以也是三维的复杂度



主要代码：


f[0][0][0]=1;
    for (int i=0;i&lt;=n;i++,cur^=1)
        for (int j=0;j&lt;=m;j++)
            for (int k=0...]]></description><category></category></item><item><title><![CDATA[Approximating a Constant Range]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/115158161</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/115158161</guid><author>lxddddas</author><pubDate>Wed, 24 Mar 2021 08:37:39 +0800</pubDate><description><![CDATA[题意：n个数字的序列，让你找出最长的-连续的一串最大值和最小值不超过1的序列

由于这道题目我们要找出的序列的情况不复杂并且要求连续的序列，所以我首先想到的dp

用dp[i][0]表示最后一个数的下标是i,并且序列中的数全是a[i]和a[i]-1,dp[i][1]相对应的表示序列中全是a[i]和a[i]+1,这样的话状态转移方程也出来了。


 if(a[j]==a[j-1]){
            dp[i][1]=dp[i-1][1]+1;
            dp[i][0]=dp[i-1]]]></description><category></category></item><item><title><![CDATA[开学一总结]]></title><link>https://blog.youkuaiyun.com/lxddddas/article/details/114462034</link><guid>https://blog.youkuaiyun.com/lxddddas/article/details/114462034</guid><author>lxddddas</author><pubDate>Sat, 06 Mar 2021 23:00:16 +0800</pubDate><description><![CDATA[刚开学几天，我零零散散的做了几个图论题和俩dp题，着手练了一些省赛难度的图论和dp，也没做多少，空闲时间挺多但是刚开学也有点不在状态，之后要多刷些题了。
]]></description><category></category></item></channel></rss>