<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_73575281的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_73575281</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_73575281]]></copyright><item><title><![CDATA[ACM个人模板总结]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/141940309</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/141940309</guid><author>qq_73575281</author><pubDate>Thu, 05 Sep 2024 20:36:48 +0800</pubDate><description><![CDATA[【代码】ACM个人模板总结。]]></description><category></category></item><item><title><![CDATA[2024年睿抗机器人开发者大赛（RAICOM）国赛题解]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/140937936</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/140937936</guid><author>qq_73575281</author><pubDate>Tue, 06 Aug 2024 16:02:40 +0800</pubDate><description><![CDATA[典型的分层图，一个城市有多个状态，跑一遍djikstra即可，注意本题是计算途经城市的hot值，所以初始状态是 d[s][0]  = 0，在可以抵达t的时候来判断即可。贪心模拟，每次都暴力的找到可以选取的最大矩阵即可，然后模拟下降,没有找到正解，这里贴一下别人的x*(n^4)比较暴力的做法，赛时通过了。简单模拟题，对于多行读入使用while(getline(cin,s))即可。按照题目直接暴力枚举所有情况使用全排列 + 二进制枚举。简单模拟，按照题目意思模拟即可。]]></description><category></category></item><item><title><![CDATA[2024年睿抗机器人开发者大赛（RAICOM）省赛题解]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/140449494</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/140449494</guid><author>qq_73575281</author><pubDate>Mon, 15 Jul 2024 21:58:26 +0800</pubDate><description><![CDATA[题目告诉我们有一个位置的火炉被挡住了，那么最多也就是有几个小家伙是本来应该是很暖和但是现在却不是很暖和的，我们可以把不暖和小家伙的的九宫格位置设为可能有小火炉的然后检查，如果说可能的位置非常多肯定是不行，或者没有小火炉符合要求，注意C不能被小火炉影响。注意题目规定的章鱼子图的定义，可以得知要所在联通图的环只有一个的时候符合要求，否则就不是,我们可以通过并查集的方式维护每一个联通块中环的数量，然后可以同时维护一个环时候的起点和终点可以考虑使用bfs维护环的长度。]]></description><category></category></item><item><title><![CDATA[AtCoder Beginner Contest 362]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/140418036</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/140418036</guid><author>qq_73575281</author><pubDate>Sun, 14 Jul 2024 17:21:55 +0800</pubDate><description><![CDATA[注意到很小的数据范围，要求我们求等差数列，等差数列的性质由首项，公差和项数决定，可以得知本题需要使用dp，考虑到要维护项所以需要开一个维度维护，同时我们不知道公差，可以开一个维度离散化维护公差，由题目数据范围可以得到只有n*n个公差，转移来源与上一个点所在的位置和公差。首先队友是不是有解我们可以通过答案是不是处于上界和下界即可，其次我们可以先贴着下界，然后往上尽可能加不超过上界的值即可。我们要求最大的的距离匹配，可以想到重心的性质然后对于不同的树进行匹配一定是最优的。]]></description><category></category></item><item><title><![CDATA[AtCoder Beginner Contest 359]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/140334458</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/140334458</guid><author>qq_73575281</author><pubDate>Wed, 10 Jul 2024 21:22:58 +0800</pubDate><description><![CDATA[交换m次,找找性质，我们可以发现除了第一个位置，后面每一个位置的概率是一样的，因为是随机抽取，我们计算概率即可，每一次都是n^2次，然后1.黑黑:1种 2.白白（n-1)^2，剩下的就是黑白，随机的给除了黑点的其他点，然后一个g1表示第一个点概率，g2表示其他点的概率，然后dp即可。左边的可以遇到右边的右边可以遇到左边的，可以考虑固定一边，如固定朝右边走的，那么对于每一个左边的点x可以碰到的点范围就是[x-2*m,x]，观察数据范围使用离散化+前缀和即可。读懂题目直接按照题目模拟即可，数据范围较小。]]></description><category></category></item><item><title><![CDATA[AtCoder Beginner Contest 361]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/140307337</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/140307337</guid><author>qq_73575281</author><pubDate>Tue, 09 Jul 2024 21:48:19 +0800</pubDate><description><![CDATA[有个明显的思维就是直接枚举每一个次方，当时为2的时候有1e9个数(1e9^2==1e18)当然会超时，这个时候没有更好的做法，我们考虑不使用2次幂，直接从3次幂开始，则最多1e6个数，符合要求，同时对于2次幂当独计算，答案数量就是sqrtl(n)，当时有些数既是x的次幂又是y的次幂，所以要用set去重，同时注意不把2次幂的数放入set，最后直接加上即可。明显的字符串交换，也就是bfs搜索找最优解，类似八数码，用一个unorderde_map<string,int> 判断是否出现过即可。]]></description><category></category></item><item><title><![CDATA[2024ICPC湖北省赛]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/139075574</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/139075574</guid><author>qq_73575281</author><pubDate>Mon, 20 May 2024 22:07:31 +0800</pubDate><description><![CDATA[逻辑推理，我们可以发现对于整个棋盘影响作用有效果的其实就是10个点左右，因为轰炸的范围是5个格子当两个点交叉的时候会产生两个最优的位置，10个点的话最多也就是10个，如果是只能影响到一个放鱼位置的话直接处理即可，对于其他点可以直接暴力维护时间复杂度就是。同时考虑到是多组输入我们可以得到每次的操作次数一定是不多的，通过简单的枚举和推理可以得中间最多五个数左右，我们可以直接使用两个数的约数也是可以的，同时加上2来处理。题目是英文的，实际上就是要a*b最大,明显的a等于1的时候这两个数最大，也就是，答案就是。]]></description><category></category></item><item><title><![CDATA[2022年第三届辽宁省大学生程序设计竞赛]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/138980269</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/138980269</guid><author>qq_73575281</author><pubDate>Fri, 17 May 2024 00:46:09 +0800</pubDate><description><![CDATA[比赛经历：感觉辽宁省赛都比较抽象不建议写。]]></description><category></category></item><item><title><![CDATA[2021辽宁省大学生程序设计竞赛（正式赛）]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/138973327</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/138973327</guid><author>qq_73575281</author><pubDate>Thu, 16 May 2024 20:20:58 +0800</pubDate><description><![CDATA[比赛经过：写了七八题，有一个topsort写错地方了，本场题目都较为简单考的知识都比较明显补题：有些题目还得多思考其实也不难。]]></description><category></category></item><item><title><![CDATA[2020 年第一届辽宁省大学生程序设计竞赛]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/138951486</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/138951486</guid><author>qq_73575281</author><pubDate>Thu, 16 May 2024 11:13:02 +0800</pubDate><description><![CDATA[比赛经历：摸鱼划水了一个多小时又是只会签到，看来还得提升自己的解题能力写了六题补题：E线段树维和区间平方和，比较经典好久没写过线段树了傻了，注意维护lazyJ计算几何，看来得提上日程了，用叉积判断位置k题意看起来难爆了，没想到竟然做法如此优秀，所以有些题还是得多尝试。]]></description><category></category></item><item><title><![CDATA[2024CCPC郑州邀请赛暨河南省赛]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/138889368</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/138889368</guid><author>qq_73575281</author><pubDate>Wed, 15 May 2024 09:16:39 +0800</pubDate><description><![CDATA[比赛记录：看群里大家嘎嘎拿牌，自己个人来solo了一下，发现简单到中等题很多，写了两小时出了7题，但是写的比较慢，对难题把握还是不准确补题 ： A题确实巧妙充分利用题目的数据范围来思考问题，D简单数数性质推理。]]></description><category></category></item><item><title><![CDATA[第四届辽宁省大学生程序设计竞赛]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/138866958</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/138866958</guid><author>qq_73575281</author><pubDate>Tue, 14 May 2024 19:45:12 +0800</pubDate><description><![CDATA[比赛经历：2024.5.14简单vp了一个小时只写出了签到题4个然后跑路了补题：感觉其他题有点太抽象了主要补了一题，在区间问题中数据结构的使用。]]></description><category></category></item><item><title><![CDATA[2023 广东省大学生程序设计竞赛(部分题解)]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/138372291</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/138372291</guid><author>qq_73575281</author><pubDate>Wed, 01 May 2024 14:58:11 +0800</pubDate><description><![CDATA[我们可以注意到题目要求路径上的mex最大，如果x是可以的那么[1-x]一定是可以的，同时如果x不可以那么[x,..]一定是不可以的，所以具有二分性质，现在核心就是二分，我们可以发现路径一定是右下的走法，也就是满足要求的j一定不会比上面满足要求的j要小否则就是往回走了，由此我们可以得到二分的写法。，为前缀的点同时随着i的增大j一定是同时增大的变化,所以可以考虑使用优先队列维护dp即可，同时注意怎么判断最后答案是上面，我们可以++n这样满足答案就是。银牌-金牌题：trie树+dfs贪心。]]></description><category></category></item><item><title><![CDATA[双指针的引入和深入思考(持续更新中)]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/137892116</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/137892116</guid><author>qq_73575281</author><pubDate>Wed, 17 Apr 2024 23:05:08 +0800</pubDate><description><![CDATA[此时我们发现如果是在上一题的基础上我们移动做指针是无法维护区间的的性质的，因为我们无法从一个满足要求的区间中得到这个区间俺的全部贡献所以直接双指针是不可行的，任意选择区间中的点得到的结果就是题目要求的]]></description><category></category></item><item><title><![CDATA[Codeforces Round 521 (Div. 3)]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/137691744</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/137691744</guid><author>qq_73575281</author><pubDate>Fri, 12 Apr 2024 19:25:40 +0800</pubDate><description><![CDATA[的时间复杂度来通过本题，我们在上题的分析基础上分析,可以发现dp[i](选的第i个数的转移来源 一定是选的第i-1个数)所以考虑对此优化，当我选第i个数的时候选到第j个位置时，后面的选到第j+1的数只能由dp[i-1][(max(0,j-k),j]组成这个状态的变化可以通过在转移j的同时用单调队列优化上一层的状态，这样就是满足要求的时间复杂度。注意厘清题目意思，对于每一个数我们只在乎的是它的数量，然后对于题目意思的翻倍处理可以明显的知道最多只会处理20次以内。]]></description><category></category></item><item><title><![CDATA[Codeforces Round 515 (Div. 3)]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/137652056</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/137652056</guid><author>qq_73575281</author><pubDate>Thu, 11 Apr 2024 20:48:24 +0800</pubDate><description><![CDATA[几何中的dp，我们考虑如果是在同一个大小状态之下，我们可以按照从最左下到最右上的顺序或者是反之，(中间点就在两个点的曼哈顿距离中)最后一定是在这两个位置中的一个取转移下一个位置，所以不妨直接对这两个状态来进行转移。前缀和思路，对于每一次除以之后的操作其实就是整个大于等于这个位置的前缀的数和这个位置数的操作，所以可以直接对其做一个前缀和即可。左右插数，考虑使用的对左右的数用正数和负数来区分即可，如果查询的数是左右两边注意减去0所占据的位置。，为了便于处理是否是被装在盒子里，我们可以直接用数组来表示盒子即可。]]></description><category></category></item><item><title><![CDATA[Codeforces Round 937 (Div. 4)]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/137156172</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/137156172</guid><author>qq_73575281</author><pubDate>Fri, 29 Mar 2024 21:31:55 +0800</pubDate><description><![CDATA[首先我们来看看无解的情况可以发现只有2的度数会给后面带来需要接的点，带来入度，所以最后就是a+1的入度 a+1==c才是有解可以发现如果我们要树的高度低那就是按照满二叉树的方式构造即可，所以我们直接按照先构造2的方式即可,接着处理1的数,1的数量，最后处理没有入度的点。我们可以发现我们要求的是这个数得要用0101构成的穿的乘积构成，所以我们可以看直接用约数的乘法同时要求这个数是01这样的数即可,注意从大到小的枚举同二进制数取数一样因为有些01数可以由小的01数同其他数的乘积构成。直接按照题意模拟即可。]]></description><category></category></item><item><title><![CDATA[Codeforces Round 506 (Div. 3)]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/137121202</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/137121202</guid><author>qq_73575281</author><pubDate>Thu, 28 Mar 2024 19:19:03 +0800</pubDate><description><![CDATA[区间的拼接，我们可以发现最后是由两个部分组成一个是前面的一个是后面的，前面的贡献来源于本身以及后面数的数位，所以我们考虑预处理每一个数后面添加数的位数之后的贡献，然后对于后面的数只需要去找这个数在后面的时候的答案贡献即可(注意自己和自己拼接)我们有个明显的贪心策略就是从权重最大的人的父节点开始操作，如果他的父节点被标记了的话就直接把他父节点的儿子节点也标记，同时注意如果可以在dfs外操作的尽量在dfs外操作否则就一定要理清楚是不是可以递归的，此题我们采用外面取操作即可。]]></description><category></category></item><item><title><![CDATA[Codeforces Round 501 (Div. 3)]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/137029687</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/137029687</guid><author>qq_73575281</author><pubDate>Tue, 26 Mar 2024 00:05:25 +0800</pubDate><description><![CDATA[考虑到我们要找的数十字，一个十字的大小是由左右上下的点的数量决定的所以我们先预处理出来(可以双指针或者是直接继承的方式如下代码)每一个点左右上下连续的点的数量，然后星星就是枚举每一个点找四周最小的即可,接着对于处理这个点是否被使用过我们可以考虑使用二维差分即可。非常经典的目标字符串出现的题目，我们考虑使用kmp+dp处理，同时考虑这个题目的括号特性我们需要开一个维度来记录当前这个括号匹配到了即可，规定过括号为+1,右括号为负1即可。我们定义dp为构造了i个，当前括号的匹配值是j，同时匹配到了第k个数。]]></description><category></category></item><item><title><![CDATA[Codeforces Round 498 (Div. 3)]]></title><link>https://blog.youkuaiyun.com/qq_73575281/article/details/136949505</link><guid>https://blog.youkuaiyun.com/qq_73575281/article/details/136949505</guid><author>qq_73575281</author><pubDate>Fri, 22 Mar 2024 21:36:25 +0800</pubDate><description><![CDATA[我们敏锐的发现如果可以变成一半的话就是可以通过的，于是我们想到可以折半搜索，所以可以得到答案，于是我们开map来记录路径即可，同时注意到一半是(n+m)/2的位置即可。2  a  a  b  b  0次   a  a  a  b 1次   a  b a a 1 次。由题知一定是选出最大的m个数然后对这m个数分配线段即可，最后一个是到n。3  a  a b  c  2次     b   c  a  a 1次。前后缀相等明显的就是双指针，按照双指针的方式来移动使得相等即可。4  a b c d   2次。]]></description><category></category></item></channel></rss>