<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Nocomplaints的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Nocomplaints</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Nocomplaints]]></copyright><item><title><![CDATA[(洛谷:P3397)地毯—＞二维差分标记]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/137679836</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/137679836</guid><author>Nocomplaints</author><pubDate>Fri, 12 Apr 2024 14:55:41 +0800</pubDate><description><![CDATA[在n×n的格子上有m个地毯。给出这些地毯的信息，问每个点被多少个地毯覆盖。]]></description><category></category></item><item><title><![CDATA[（洛谷P34060):海底高铁—-＞差分数组,贪心思想]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/137671672</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/137671672</guid><author>Nocomplaints</author><pubDate>Fri, 12 Apr 2024 10:53:33 +0800</pubDate><description><![CDATA[该铁路经过N个城市，每个城市都有一个站。不过，由于各个城市之间不能协调好，于是乘车每经过两个相邻的城市之间（方向不限），必须单独购买这一小段的车票。第i段铁路连接了城市i和城市i11≤iN。如果搭乘的比较远，需要购买多张车票。第i段铁路购买纸质单程票需要Ai​博艾元。虽然一些事情没有协调好，各段铁路公司也为了方便乘客，推出了 IC 卡。对于第i段铁路，需要花Ci​博艾元的工本费购买一张 IC 卡，然后乘坐这段铁路一次就只要扣Bi​Bi​Ai​元。]]></description><category></category></item><item><title><![CDATA[(蓝桥OJ:3291)区间更新—-＞差分数组]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/137650261</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/137650261</guid><author>Nocomplaints</author><pubDate>Thu, 11 Apr 2024 19:37:43 +0800</pubDate><description><![CDATA[/这里的a[i-1]就是diff[i-1]的前缀和。//输入一对n,m;while(cin>>n>>m)//只要有输入进n,m,就进入循环。while(m–)//注意这里只有区间修改操作是在while内的。//第四步 每个新的a[i]都等同于diff[i]的前缀和。//第二步 定义差分数组(说明差分数组和原数组的关系)//利用前缀和将差分数组 还原为 新的a[i]数组。//第五步 将还原的新的a[i]数组 遍历。]]></description><category></category></item><item><title><![CDATA[（蓝桥OJ:760）数的计算—＞dfs深度优先搜索另解]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/137635072</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/137635072</guid><author>Nocomplaints</author><pubDate>Thu, 11 Apr 2024 13:03:24 +0800</pubDate><description><![CDATA[i++)//枚举当前层数搜索的数。//作为临时数组，dfs搜索–>枚举当前层数搜索的数 会用到。//dfs参数为层数 从第二层开始搜索。//每次搜索结束都返回answer。int dfs(int depth)//按深度进行搜索。//默认输入的数为第一层。//带0的数不算做答案（如0136=136）//第一层已知 不用搜索。]]></description><category></category></item><item><title><![CDATA[(蓝桥OJ:760)数的计算—-＞dfs深度优先搜索]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/137611739</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/137611739</guid><author>Nocomplaints</author><pubDate>Wed, 10 Apr 2024 21:26:02 +0800</pubDate><description><![CDATA[+i)//每层限定的搜索范围。//n为输入的某个具体的值。//void类型 不用返回什么。//什么时候不再向下搜索？//对于每个结点都向下搜索。//最开始就是把初值传入。//构造dfs深度优先搜索函数。]]></description><category></category></item><item><title><![CDATA[蓝桥OJ:3419小郑的蓝桥平衡串—＞注意前缀和数组与字符数组下标对齐]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/137610511</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/137610511</guid><author>Nocomplaints</author><pubDate>Wed, 10 Apr 2024 20:50:53 +0800</pubDate><description><![CDATA[/那么最后s数组和prefix数组下标都为1，不需要修改下标(s[i-1]==‘L’?//对于整个字符数组 设定prefix前缀和数组 设定时做判断 如果该字符是L设为1 否则-1。//strlen针对char类型 后续同样要修改下标为(s[i-1]==‘L’?//选择3 从字符数组的第一位开始输入 计算大小时也从第一个位置开始 第0位默认为空。//选择1:由于计算机中字符数组从0开始,而设定prefix数组下标从1开始。//那么后续需要修改下标为(s[i-1]==‘L’?//选择2:与选择1同理。]]></description><category></category></item><item><title><![CDATA[蓝桥OJ:3382区间次方和—-＞前缀和]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/137608468</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/137608468</guid><author>Nocomplaints</author><pubDate>Wed, 10 Apr 2024 19:50:55 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[(洛谷:P1157)组合的输出—-＞递归实现组合型枚举—-＞DFS剪枝,递归回溯,组合]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136975027</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136975027</guid><author>Nocomplaints</author><pubDate>Sat, 23 Mar 2024 21:06:15 +0800</pubDate><description><![CDATA[##分析。]]></description><category></category></item><item><title><![CDATA[(AcWing:94)递归实现排列型枚举—-＞DFS(递归，回溯)]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136971819</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136971819</guid><author>Nocomplaints</author><pubDate>Sat, 23 Mar 2024 18:05:40 +0800</pubDate><description><![CDATA[/状态数组,布尔类型:true表示已经选过这个数,false表示还没选这个数。//存的是答案,比如123，132，321(其实就是将最后的状态给填进数组)state[i])//如果(false):这个数没有被选过，那这个数就可选。void dfs(int x)//x表示当前枚举到了哪个位置。//一切归为最初模样(答案赋为0)++i)//先遍历各数。//把这个选了的数存进数组里。//void,什么都不返回。if(x>n)//什么时候递归结束。]]></description><category></category></item><item><title><![CDATA[AcWing:92递归实现指数型枚举—-＞DFS(递归,回溯)]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136970446</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136970446</guid><author>Nocomplaints</author><pubDate>Sat, 23 Mar 2024 16:52:56 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[(Acwing:821)跳台阶—-＞递推，递归]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136967253</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136967253</guid><author>Nocomplaints</author><pubDate>Sat, 23 Mar 2024 14:41:46 +0800</pubDate><description><![CDATA[本题是斐波那契数列除去最开始的1，其他的都一样：1 2 3 5 8 13 21 34  ……类似于斐波那契数列：1 1 2 3 5 8 13 21 34。]]></description><category></category></item><item><title><![CDATA[(蓝桥OJ:1531)快递分拣—-＞map(理解key与value),vector(push_back)]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136952204</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136952204</guid><author>Nocomplaints</author><pubDate>Fri, 22 Mar 2024 22:07:34 +0800</pubDate><description><![CDATA[map<int,int>插入元素是无法使用push_back的，因为它的value仅是一个int类型的值而并非容器，map使用insert插入(一对)map中count是记录key(key唯一)的值，count为1说明该key数量为1(key存在)/count为0说明该key数量为0(key不存在)for(auto city:citys)//由于容器中都是不重复的城市,遍历容器,再输出单号。mymap.count§)//如果在mymap中,该城市不存在，说明是第一次出现。//遍历输入，输进map。]]></description><category></category></item><item><title><![CDATA[(蓝桥OJ:1113)CLZ银行问题—-＞双端队列]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136952041</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136952041</guid><author>Nocomplaints</author><pubDate>Fri, 22 Mar 2024 21:09:57 +0800</pubDate><description><![CDATA[/choice表示操作中的IN/OUT。对于操作语句“从左到右依次判断”，判断是头进/尾出，判断是VIP队列/NORMAL队列。队列：先进先出的插入删除模式，删除的一端是队头（先进去的先出去），插入的一端是队尾。//先定义队列再实现双端进出功能（这个可以想象为两条队列一正一反放置）cout<<V.front()<<endl;//将V队列中的头不断输出。//只有把头弹出来了,新的头才会更新。while(V.size())//队列为空循环结束。//这样就可以实现双端都可以进出。]]></description><category></category></item><item><title><![CDATA[（蓝桥OJ:741）合并果子—-＞贪心，优先队列，NOIP]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136951343</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136951343</guid><author>Nocomplaints</author><pubDate>Fri, 22 Mar 2024 20:38:14 +0800</pubDate><description><![CDATA[优先队列（大根堆改为小根堆）—->使得top为最小的数—->（贪心思想）每次都合并最小的—->每次都让两个最小的数相加—->由于要持续比较，pop出当前最小值，所以相加得到的和要放回。//answer持续在记录，每次只加上最小的。++i)//遍历输入 输入进优先队列。while(pq.size()>=2)//每次相加都需要两个最小的数。//要求队列中至少有两个数，每次只要最小值弹出相加（贪心）//弹出后会更新新的top(最小值)//两个果子相加的结果放回。]]></description><category></category></item><item><title><![CDATA[蓝桥杯第十四届B组省赛真题：冶炼金属—-＞超详解]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136949676</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136949676</guid><author>Nocomplaints</author><pubDate>Fri, 22 Mar 2024 20:11:03 +0800</pubDate><description><![CDATA[##反推法+公式法——>由题目给出的最终的符合所有用例的V(20<=V<=25)，得出不同的B，可根据不同的B分析出符合各个用例的V（如下三种V的范围不同）,最后根据公示推导得出符合各个用例的Ｖ与符合所有用例的V的关系式，然后用符号各个用例的V通过关系式来表示符合所有用例的Ｖ，最后可画图理解寻找最终Ｖ的界。###分析题目——>寻找每个用例的界——>求交集得出符合各个用例的界——>上界与下界即V的最大最小值。//(题目1<=B<=A<=1e9)]]></description><category></category></item><item><title><![CDATA[蓝桥OJ：2490小蓝的括号串—-＞栈]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136949559</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136949559</guid><author>Nocomplaints</author><pubDate>Fri, 22 Mar 2024 18:57:18 +0800</pubDate><description><![CDATA[if(st.size())//如果最后栈内还有元素，那一定是匹配不了的括号，也就是多余的括号。++i)//遍历字符串:遍历这串输入的括号。else//如栈内没有元素了或者栈顶不是可与字符串中的该字符匹配的’（’//并且栈顶为右括号(正好栈顶元素可与字符串中的该字符匹配为一对括号)//栈就把’(‘弹出，与字符串中的该字符匹配。//栈内"每一格"都是一个字符"(" “)”了解栈的工作原理：push压入，pop（栈顶）弹出。//那就把这个字符压入栈中。’(’)//如果栈不为空。]]></description><category></category></item><item><title><![CDATA[带备忘录的递归—-＞斐波那契数列]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136875250</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136875250</guid><author>Nocomplaints</author><pubDate>Wed, 20 Mar 2024 14:56:51 +0800</pubDate><description><![CDATA[解决方案：使用带备忘录（数组存下计算过的结果）的递归—->计算过的斐波那契数列的那一位就不会再重复计算—->相当于每位只做一次计算操作—->时间复杂度O(n)约为n。原因：上述递归构成一颗搜索数—->结点数约为2^ n个—-> 时间复杂度O(n)约为2^n。//如果这一位已经计算过(demo[n]存在)，那么就直接返回，不再重复计算。输入n，求F（n），n <= 100000，结果对1e9+7取模。n > 3时，F(n) = F(n - 1) + F(n- 2)已知F（1）=F（2）=1；]]></description><category></category></item><item><title><![CDATA[蓝桥(OJ:3766)无尽的石头—＞C++]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136864775</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136864775</guid><author>Nocomplaints</author><pubDate>Wed, 20 Mar 2024 12:03:09 +0800</pubDate><description><![CDATA[从1出发，到达23: i=1—->i=2—->i=4—->i=8—->i=16—->i=(16+(1+6))=23,i=n,count=5;从1出发，到达15: i=1—->i=2—->i=4—->i=8—->i=16,i>n,count=-1；从1 出发，到达8: i=1—->i=2—->i=4—->i=8,i=n,count=3；比如i=16—->i=(16+(1+6))=23,我们需要知道里面的（1+6）；当前该走的步数i>=目标石头对应的步数n时，说明不可达，输出-1；//每次遍历步数自增1。]]></description><category></category></item><item><title><![CDATA[蓝桥OJ：DNA序列修正—＞使用map来解决]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136852185</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136852185</guid><author>Nocomplaints</author><pubDate>Tue, 19 Mar 2024 20:44:58 +0800</pubDate><description><![CDATA[第一条的某个位置和第二条的对应位置为不互补字母（比如A-A），且在后面某个位置第一条的某个位置和第二条的某个位置也为相同字母，且该字母与前某位置的字母互补（比如T-T）map<char,int>DNA={{‘A’,0},{‘C’,1},{‘G’,2},{‘T’,3}};若字符串up中的i位置与字符串down中的j位置匹配，且字符串up的j位置与字符串的i位置匹配，执行down的i，j位置交换，操作数加1.//序列可能存在不满足操作1的情况，或者执行操作1后序列仍然存在不互补的。（需要进行2次操作1）]]></description><category></category></item><item><title><![CDATA[蓝桥OJ 3238：小蓝和小桥的挑战 C++详解]]></title><link>https://blog.youkuaiyun.com/Nocomplaints/article/details/136849758</link><guid>https://blog.youkuaiyun.com/Nocomplaints/article/details/136849758</guid><author>Nocomplaints</author><pubDate>Tue, 19 Mar 2024 18:49:09 +0800</pubDate><description><![CDATA[3.由于存在问题（非负数加正数可能为0)即—-> sum=0时，比如：-1 -1 1 1，虽然乘积不为0，但它的总和却重新回到0，没关系，我们只需要让操作数+1，使得某个数变动，那总和结果就不为0了。举例：1 2 3 0 0 0，为满足以上条件，我们尽量将0都+1 —>1 2 3 1 1 1.0)//（0 0 0）不满足条件进不去，（-1 -1 1 1 ）满足条件可进。0)//比如-1 -1 1 1。]]></description><category></category></item></channel></rss>