<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zhbbbbbb的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zhbbbbbb</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zhbbbbbb]]></copyright><item><title><![CDATA[Codeforces Round #752 (Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/121076576</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/121076576</guid><author>zhbbbbbb</author><pubDate>Mon, 01 Nov 2021 11:11:02 +0800</pubDate><description><![CDATA[A Era
题目大意
给定一个n，和一个长度为n的字符串，问最少添加几个数字使得数组的每一个数字都有a[i] &gt;= i
主要思路
维护一个添加的数的数量即可，如果i + cnt &lt; a[i]那么再插入一个数
AC代码
#include &lt;bits/stdc++.h&gt;

using namespace std;

int n, a[105];

int main()
{
    int T;
    cin &gt;&gt; T;
    while(T--)
    {
      ]]></description><category></category></item><item><title><![CDATA[Educational Codeforces Round 116 (Rated for Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/121049844</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/121049844</guid><author>zhbbbbbb</author><pubDate>Sat, 30 Oct 2021 13:32:32 +0800</pubDate><description><![CDATA[纯纯的手速场
A AB Balance
题目大意
给定一个字符串问最少修改几个字母是的ab和ba的数量相同，求修改后的字符串
主要思路
由于中间的ab ba数量会抵消一部分，例如abbabab等，所以ab，ba的数量最多相差一个，也就是只与开头结尾的字符有关，假如开头结尾的字符相同，那么数量一定相同，如果字符不同，那么数量一定不相同
AC代码
#include&lt;bits/stdc++.h&gt;

using namespace std;
const int N = 1e6 + 10;

int ma]]></description><category></category></item><item><title><![CDATA[Codeforces Round #748 (Div. 3)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120774854</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120774854</guid><author>zhbbbbbb</author><pubDate>Thu, 14 Oct 2021 23:20:06 +0800</pubDate><description><![CDATA[A Elections
题目大意
给定三个人的选票数，问每个人需要加多少张选票才能超过其他两个人
主要思路
判断与其他两人差的选票的最大值即可，因为当前可能是选票最多的人所以与0取max即可
AC代码
#include &lt;iostream&gt;
#include &lt;queue&gt;
#include &lt;algorithm&gt;
 
#define int long long
using namespace std;
#define debug(a) cout &lt;&lt; #a ]]></description><category></category></item><item><title><![CDATA[Educational Codeforces Round 115 (Rated for Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120694604</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120694604</guid><author>zhbbbbbb</author><pubDate>Sun, 10 Oct 2021 23:26:43 +0800</pubDate><description><![CDATA[A Computer Game
题目大意
给定两个长度为n的01串，0能通过，1不能通过，问能否从（1， 1）走到（2， n）
主要思路
只要从1到n的任意位置不存在上下两个全是1的情况即可
AC代码
#include &lt;bits/stdc++.h&gt;

#define int long long
using namespace std;
#define debug(a) cout &lt;&lt; #a &lt;&lt; " = " &lt;&lt; a &lt;&lt; endl;
#defi]]></description><category></category></item><item><title><![CDATA[cf 242 E XOR on Segment]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120649103</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120649103</guid><author>zhbbbbbb</author><pubDate>Fri, 08 Oct 2021 11:46:09 +0800</pubDate><description><![CDATA[E XOR on Segment
题目大意

主要思路
由于异或和求和并没有什么性质
通常处理异或的两种方式一种为做前缀和，显然与本题没什么关系
另一种就是拆位
我们考虑讲每一位的状态作为一颗线段树，线段树维护的就是n个数每个数的第i位是1还是0
有两种操作

第一种求和，我们在线段树中对每一位1的个数求和乘2的多少次方就是这一位上的和，把l~r区间的所有位的和加起来即可
第二种对l~r区间异或x，我们也将x拆位，对于每一位而言

如果是0，则对l~r区间的数没有影响
如果是1，那么区间内所有0将变成1，所]]></description><category></category></item><item><title><![CDATA[Codeforces Round #746 (Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120607266</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120607266</guid><author>zhbbbbbb</author><pubDate>Mon, 04 Oct 2021 19:50:05 +0800</pubDate><description><![CDATA[A Gamer Hemose
题目大意
给定一个n, m和长度为n的数组，不能连续取两次相同的数，问取多少次才能使和大于等于m
主要思路
判断最大的两个数取几次能得到结果即可
AC代码
#include &lt;bits/stdc++.h&gt;

#define int long long
using namespace std;
#define debug(a) cout &lt;&lt; #a &lt;&lt; " = " &lt;&lt; a &lt;&lt; endl;
#define x fir]]></description><category></category></item><item><title><![CDATA[Codeforces Round #744 (Div. 3)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120554047</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120554047</guid><author>zhbbbbbb</author><pubDate>Wed, 29 Sep 2021 18:31:20 +0800</pubDate><description><![CDATA[A Casimir’s String Solitaire
题目大意
给定一个字符串和两种操作

删除任意位置A和B
删除任意位置B和C

问能否将全部字母删除
题目大意
判断B数量是否等于A+C的数量即可
AC代码
#include &lt;bits/stdc++.h&gt;

#define int long long
using namespace std;
#define debug(a) cout &lt;&lt; #a &lt;&lt; " = " &lt;&lt; a &lt;&lt; endl]]></description><category></category></item><item><title><![CDATA[Codeforces Round #742 (Div. 2) A~F]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120143090</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/120143090</guid><author>zhbbbbbb</author><pubDate>Mon, 06 Sep 2021 19:42:36 +0800</pubDate><description><![CDATA[A Domino Disaster
题目大意
有n个1*2的多米诺骨牌，给定第一列的字母，求第二列对应的字母
主要思路
遍历所有字母，当前字母为U输出D，当前字母为D输出U，为L输出L，为R输出R
AC代码
#include &lt;bits/stdc++.h&gt;

#define int long long
using namespace std;
#define debug(a) cout &lt;&lt; #a &lt;&lt; " = " &lt;&lt; a &lt;&lt; endl;
#d]]></description><category></category></item><item><title><![CDATA[Codeforces Round #740 (Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119922599</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119922599</guid><author>zhbbbbbb</author><pubDate>Thu, 26 Aug 2021 00:37:45 +0800</pubDate><description><![CDATA[A Simply Strange Sort
题目大意
给定一个长度为n的数组，对根据操作次数数组进行两种操作

操作次数为奇数则，枚举i为1, 3, 5…n - 2,如果a[i] &gt; a[i + 1]交换i和i+1
操作次数为奇数则，枚举i为2, 3, 6…n - 1,如果a[i] &gt; a[i + 1]交换i和i+1

主要思路
根据题意模拟即可，最坏情况数组为n, n - 1, … 1，复杂度为n^2
AC代码
#include &lt;bits/stdc++.h&gt;

#define i]]></description><category></category></item><item><title><![CDATA[Codeforces Round #739 (Div. 3) A~F2]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119808356</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119808356</guid><author>zhbbbbbb</author><pubDate>Thu, 19 Aug 2021 18:19:15 +0800</pubDate><description><![CDATA[A Dislike of Threes
题目大意
规定是3的倍数或者数的最后一位是3的数是漂亮数，给定一个数n，求第n个不漂亮数是多少
主要思路
由于n的范围是1000，直接打表即可
AC代码
#include &lt;bits/stdc++.h&gt;

#define int long long
using namespace std;
#define debug(a) cout &lt;&lt; #a &lt;&lt; " = " &lt;&lt; a &lt;&lt; endl;
#define x]]></description><category></category></item><item><title><![CDATA[Codeforces Round #738 (Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119743312</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119743312</guid><author>zhbbbbbb</author><pubDate>Mon, 16 Aug 2021 22:04:42 +0800</pubDate><description><![CDATA[A Mocha and Math
题目大意
给定一个长度为n的数组，然后给定一个操作：每次选择一个区间l，r使得a[l] = a[l]&amp;a[r], a[l + 1] = a[l + 1] &amp; a[r - 1]…以此类推，你可以对此操作执行任意次，求最终数组中最大值的最小值
主要思路
我们思考如何得到最小值

&amp;操作不会使数变大，只会使数变小，那么我们能得到的最小值就是把数组中的所有数&amp;起来，那么如何才能让这个值成为答案呢
首先我们取l，r为整个数组，其次取l，mid和mid ]]></description><category></category></item><item><title><![CDATA[Codeforces Round #737 (Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119576685</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119576685</guid><author>zhbbbbbb</author><pubDate>Tue, 10 Aug 2021 18:43:41 +0800</pubDate><description><![CDATA[A Ezzat and Two Subsequences
题目大意
给定一个长度为n的数组，让你把数组中的数任意分成两部分，使得两部分的平均值的和最大，求这个最大值
主要思路
先给结论，取最大的数为一部分，剩下的数为一部分，下面给出证明，先将数组从小到大排序
a[n] + ∑i=1n−1a[i]n−1\frac{\sum_{i=1}^{n-1}a[i]}{n-1}n−1∑i=1n−1​a[i]​ &gt;= ∑i=1ka[i]k\frac{\sum_{i=1}^{k}a[i]}{k}k∑i=1k​a[i]​]]></description><category></category></item><item><title><![CDATA[CodeBlocks的下载，安装与创建编译文件]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119383248</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119383248</guid><author>zhbbbbbb</author><pubDate>Wed, 04 Aug 2021 14:36:38 +0800</pubDate><description><![CDATA[点击进入CodeBlocks官网
一. 点击下载




点击过后等待下载完成即可，由于是外网可能出现访问较慢的情况，耐心等待一下
二.安装
点击下载好的文件




无脑下一步即可，这里codeblocks可以装在C盘，但是其他软件一定注意不要装在C盘！！！可能会使你的电脑运行速度变慢
三.创建文件
打开安装好的Codeblocks




这里C或C++都可

设置文件名


选择保存路径
点击finish

输入代码，点击编译并运行

出现既安装成功！可以愉快的写代码啦！

...]]></description><category></category></item><item><title><![CDATA[Codeforces Round #736 (Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119352004</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119352004</guid><author>zhbbbbbb</author><pubDate>Tue, 03 Aug 2021 15:52:18 +0800</pubDate><description><![CDATA[A Gregor and Cryptography
题目大意
给定一个质数n，求任意两个数a, b，使得n % a == n % b
主要思路
由于给定的数是质数，质数一定是奇数，那么n % 2一定为1，那么b为多少时n % b也等于1呢，答案是n - 1
AC代码
#include &lt;bits/stdc++.h&gt;
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	int t;
	cin &gt;]]></description><category></category></item><item><title><![CDATA[Educational Codeforces Round 112 (Rated for Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119303547</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119303547</guid><author>zhbbbbbb</author><pubDate>Sun, 01 Aug 2021 20:58:51 +0800</pubDate><description><![CDATA[A PizzaForces
题目大意
给你一个数n，和3种披萨6块15分钟，8块20分钟，10块25分钟，问最少多少分钟能凑齐至少n块披萨
主要思路
我们先观察到3种披萨都是2.5分钟一块，然后考虑奇数情况，由于披萨都是偶数，我们只能凑成比奇数大1的偶数。于是只剩偶数情况

小于等于6的偶数都只能买6块15分钟
大于等于6的偶数题目中给出了6 8 10能凑出，于是我们观察6+6 = 12， 6 + 8 = 14，6 + …可以观察到所有偶数都能凑出，所以只需要判断有多少块每块2.5min即可

AC代码
#]]></description><category></category></item><item><title><![CDATA[Codeforces Round #735 (Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119256005</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119256005</guid><author>zhbbbbbb</author><pubDate>Fri, 30 Jul 2021 21:01:43 +0800</pubDate><description><![CDATA[A Cherry
题目大意
给一个长度为n的数组，让你求所有l，r区间的 最大值*最小值 的最大值
主要思路
假设目前有3个数，a1，a2，a3，那么最大值一定存在于（a1，a2）或者（a2，a3）中。
假设原序列为a1，a2，添加a3并不会使最小值变大，只能使最大值变大，那么如果添加a3后，更新(a1, a2, a3)为最优解，那么a3为最大值，于是(a2, a3)不会比最优解差，a2是最小值与最优解相同，a1是最小值优于最优解，所以长度为3的序列的答案一定存在于长度为2的序列。
同理长度为4的序列一定存]]></description><category></category></item><item><title><![CDATA[Codeforces Global Round 15]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119123189</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119123189</guid><author>zhbbbbbb</author><pubDate>Tue, 27 Jul 2021 01:04:28 +0800</pubDate><description><![CDATA[A Subsequence Permutation
题目大意
给你一个长度为n的字符串，确定一个最小数字k，将k个字符重新排列后字符串有序
主要思路
记录原字符串，记录排序后的字符串，遍历如果有一个字符不相等ans++，输出ans
AC代码
#include&lt;bits/stdc++.h&gt;

using namespace std;

typedef long long ll;
const int N = 200010;
int n, a[N];
char s[N], s1[N];

int ma]]></description><category></category></item><item><title><![CDATA[Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119039318</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/119039318</guid><author>zhbbbbbb</author><pubDate>Fri, 23 Jul 2021 16:44:30 +0800</pubDate><description><![CDATA[A Digits Sum
题目大意
S(x)为x各个位上的数的和，问在1~n这n个数中有多少个数满足S(x + 1) &lt; S(x)
主要思路
只有发生进位才会满足S(x + 1) &lt; S(x)，统计9，19，29…等个数即可
AC代码
#include &lt;bits/stdc++.h&gt;
using namespace std;

#define int long long
#define debug(a) cout &lt;&lt; #a &lt;&lt; " = " &lt;&lt;]]></description><category></category></item><item><title><![CDATA[牛客练习赛86]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/118709798</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/118709798</guid><author>zhbbbbbb</author><pubDate>Tue, 13 Jul 2021 20:10:54 +0800</pubDate><description><![CDATA[A 取因数
题目大意
在纸上写一个数字 n，双方每次选择 n 的一个因数，然后划掉 n 并在纸上写下 n 减去这个数字的差使之成为新的 n，最后写数字 0 的人输。Alice先手。
主要思路

奇数的因数都是奇数，因此奇数一定会变成偶数
偶数可以通过-1变成奇数
那么如果先手是偶数，那么可以通过-1维持对手是奇数，自己一直是偶数，持续到自己为2时，对手为1，对手必输，先手必胜

结论：偶数先手必胜，奇数先手必输
AC代码
#include &lt;iostream&gt;
#include &lt;cstr]]></description><category></category></item><item><title><![CDATA[Codeforces Round #732 (Div. 2)]]></title><link>https://blog.youkuaiyun.com/zhbbbbbb/article/details/118696614</link><guid>https://blog.youkuaiyun.com/zhbbbbbb/article/details/118696614</guid><author>zhbbbbbb</author><pubDate>Tue, 13 Jul 2021 11:45:11 +0800</pubDate><description><![CDATA[A AquaMoon and Two Arrays
题目大意
给两个长度为n的数组，问a数组是否能通过给一个数+1，另一个数-1操作变成数组b，如果能输出操作步数且打印方案
主要思路
如果suma == sumb那么一定能变成，用st数组记录每个ai - bi的值，所有st数组中大于0的值的和就是操作步数，然后再用两个指针一个指向st中的负数，一个指向st中的正数，输出即可
AC代码
#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &l]]></description><category></category></item></channel></rss>