自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 Codeforces Round #752 (Div. 2)

A Era题目大意给定一个n,和一个长度为n的字符串,问最少添加几个数字使得数组的每一个数字都有a[i] >= i主要思路维护一个添加的数的数量即可,如果i + cnt < a[i]那么再插入一个数AC代码#include <bits/stdc++.h>using namespace std;int n, a[105];int main(){ int T; cin >> T; while(T--) {

2021-11-01 11:11:02 192

原创 Educational Codeforces Round 116 (Rated for Div. 2)

纯纯的手速场A AB Balance题目大意给定一个字符串问最少修改几个字母是的ab和ba的数量相同,求修改后的字符串主要思路由于中间的ab ba数量会抵消一部分,例如abbabab等,所以ab,ba的数量最多相差一个,也就是只与开头结尾的字符有关,假如开头结尾的字符相同,那么数量一定相同,如果字符不同,那么数量一定不相同AC代码#include<bits/stdc++.h>using namespace std;const int N = 1e6 + 10;int ma

2021-10-30 13:32:32 294

原创 Codeforces Round #748 (Div. 3)

A Elections题目大意给定三个人的选票数,问每个人需要加多少张选票才能超过其他两个人主要思路判断与其他两人差的选票的最大值即可,因为当前可能是选票最多的人所以与0取max即可AC代码#include <iostream>#include <queue>#include <algorithm> #define int long longusing namespace std;#define debug(a) cout << #a

2021-10-14 23:20:06 163

原创 Educational Codeforces Round 115 (Rated for Div. 2)

A Computer Game题目大意给定两个长度为n的01串,0能通过,1不能通过,问能否从(1, 1)走到(2, n)主要思路只要从1到n的任意位置不存在上下两个全是1的情况即可AC代码#include <bits/stdc++.h>#define int long longusing namespace std;#define debug(a) cout << #a << " = " << a << endl;#defi

2021-10-10 23:26:43 189

原创 cf 242 E XOR on Segment

E XOR on Segment题目大意主要思路由于异或和求和并没有什么性质通常处理异或的两种方式一种为做前缀和,显然与本题没什么关系另一种就是拆位我们考虑讲每一位的状态作为一颗线段树,线段树维护的就是n个数每个数的第i位是1还是0有两种操作第一种求和,我们在线段树中对每一位1的个数求和乘2的多少次方就是这一位上的和,把l~r区间的所有位的和加起来即可第二种对l~r区间异或x,我们也将x拆位,对于每一位而言如果是0,则对l~r区间的数没有影响如果是1,那么区间内所有0将变成1,所

2021-10-08 11:46:09 97

原创 Codeforces Round #746 (Div. 2)

A Gamer Hemose题目大意给定一个n, m和长度为n的数组,不能连续取两次相同的数,问取多少次才能使和大于等于m主要思路判断最大的两个数取几次能得到结果即可AC代码#include <bits/stdc++.h>#define int long longusing namespace std;#define debug(a) cout << #a << " = " << a << endl;#define x fir

2021-10-04 19:50:05 158 2

原创 Codeforces Round #744 (Div. 3)

A Casimir’s String Solitaire题目大意给定一个字符串和两种操作删除任意位置A和B删除任意位置B和C问能否将全部字母删除题目大意判断B数量是否等于A+C的数量即可AC代码#include <bits/stdc++.h>#define int long longusing namespace std;#define debug(a) cout << #a << " = " << a << endl

2021-09-29 18:31:20 119

原创 Codeforces Round #742 (Div. 2) A~F

A Domino Disaster题目大意有n个1*2的多米诺骨牌,给定第一列的字母,求第二列对应的字母主要思路遍历所有字母,当前字母为U输出D,当前字母为D输出U,为L输出L,为R输出RAC代码#include <bits/stdc++.h>#define int long longusing namespace std;#define debug(a) cout << #a << " = " << a << endl;#d

2021-09-06 19:42:36 151

原创 Codeforces Round #740 (Div. 2)

A Simply Strange Sort题目大意给定一个长度为n的数组,对根据操作次数数组进行两种操作操作次数为奇数则,枚举i为1, 3, 5…n - 2,如果a[i] > a[i + 1]交换i和i+1操作次数为奇数则,枚举i为2, 3, 6…n - 1,如果a[i] > a[i + 1]交换i和i+1主要思路根据题意模拟即可,最坏情况数组为n, n - 1, … 1,复杂度为n^2AC代码#include <bits/stdc++.h>#define i

2021-08-26 00:37:45 120

原创 Codeforces Round #739 (Div. 3) A~F2

A Dislike of Threes题目大意规定是3的倍数或者数的最后一位是3的数是漂亮数,给定一个数n,求第n个不漂亮数是多少主要思路由于n的范围是1000,直接打表即可AC代码#include <bits/stdc++.h>#define int long longusing namespace std;#define debug(a) cout << #a << " = " << a << endl;#define x

2021-08-19 18:19:15 163

原创 Codeforces Round #738 (Div. 2)

A Mocha and Math题目大意给定一个长度为n的数组,然后给定一个操作:每次选择一个区间l,r使得a[l] = a[l]&a[r], a[l + 1] = a[l + 1] & a[r - 1]…以此类推,你可以对此操作执行任意次,求最终数组中最大值的最小值主要思路我们思考如何得到最小值&操作不会使数变大,只会使数变小,那么我们能得到的最小值就是把数组中的所有数&起来,那么如何才能让这个值成为答案呢首先我们取l,r为整个数组,其次取l,mid和mid

2021-08-16 22:04:42 198

原创 Codeforces Round #737 (Div. 2)

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]​ >= ∑i=1ka[i]k\frac{\sum_{i=1}^{k}a[i]}{k}k∑i=1k​a[i]​

2021-08-10 18:43:41 209

原创 CodeBlocks的下载,安装与创建编译文件

点击进入CodeBlocks官网一. 点击下载点击过后等待下载完成即可,由于是外网可能出现访问较慢的情况,耐心等待一下二.安装点击下载好的文件无脑下一步即可,这里codeblocks可以装在C盘,但是其他软件一定注意不要装在C盘!!!可能会使你的电脑运行速度变慢三.创建文件打开安装好的Codeblocks这里C或C++都可设置文件名选择保存路径点击finish输入代码,点击编译并运行出现既安装成功!可以愉快的写代码啦!...

2021-08-04 14:36:38 1922 1

原创 Codeforces Round #736 (Div. 2)

A Gregor and Cryptography题目大意给定一个质数n,求任意两个数a, b,使得n % a == n % b主要思路由于给定的数是质数,质数一定是奇数,那么n % 2一定为1,那么b为多少时n % b也等于1呢,答案是n - 1AC代码#include <bits/stdc++.h>using namespace std;int main() { ios::sync_with_stdio(0); cin.tie(0); int t; cin >

2021-08-03 15:52:18 104

原创 Educational Codeforces Round 112 (Rated for Div. 2)

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代码#

2021-08-01 20:58:51 95

原创 Codeforces Round #735 (Div. 2)

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的序列一定存

2021-07-30 21:01:43 103

原创 Codeforces Global Round 15

A Subsequence Permutation题目大意给你一个长度为n的字符串,确定一个最小数字k,将k个字符重新排列后字符串有序主要思路记录原字符串,记录排序后的字符串,遍历如果有一个字符不相等ans++,输出ansAC代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 200010;int n, a[N];char s[N], s1[N];int ma

2021-07-27 01:04:28 147

原创 Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2)

A Digits Sum题目大意S(x)为x各个位上的数的和,问在1~n这n个数中有多少个数满足S(x + 1) < S(x)主要思路只有发生进位才会满足S(x + 1) < S(x),统计9,19,29…等个数即可AC代码#include <bits/stdc++.h>using namespace std;#define int long long#define debug(a) cout << #a << " = " <<

2021-07-23 16:44:30 113

原创 牛客练习赛86

A 取因数题目大意在纸上写一个数字 n,双方每次选择 n 的一个因数,然后划掉 n 并在纸上写下 n 减去这个数字的差使之成为新的 n,最后写数字 0 的人输。Alice先手。主要思路奇数的因数都是奇数,因此奇数一定会变成偶数偶数可以通过-1变成奇数那么如果先手是偶数,那么可以通过-1维持对手是奇数,自己一直是偶数,持续到自己为2时,对手为1,对手必输,先手必胜结论:偶数先手必胜,奇数先手必输AC代码#include <iostream>#include <cstr

2021-07-13 20:10:54 143

原创 Codeforces Round #732 (Div. 2)

A AquaMoon and Two Arrays题目大意给两个长度为n的数组,问a数组是否能通过给一个数+1,另一个数-1操作变成数组b,如果能输出操作步数且打印方案主要思路如果suma == sumb那么一定能变成,用st数组记录每个ai - bi的值,所有st数组中大于0的值的和就是操作步数,然后再用两个指针一个指向st中的负数,一个指向st中的正数,输出即可AC代码#include <iostream>#include <cstring>#include &l

2021-07-13 11:45:11 317

原创 Codeforces Round #731 (Div. 3)

A Shortest Path with Obstacle题目大意给你一个位置A,一个位置B,还有一个不能经过的位置F,让你判断需要多少步能从A到B主要思路答案为A到B的曼哈顿距离,仅当ABF在一条直线上且F在AB中间时答案+2AC代码#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <stack>#includ

2021-07-13 11:44:41 77

原创 Codeforces Round #730 (Div. 2)

A Exciting Bets题目大意给两个数a, b, 这两个数能同时+1或者-1,求这两个数的最大公约数,以及变到最大公约数最少需要几步主要思路a和b不同时,最大公约数d都是a和b的约数,a = x * d, b = y * d且x != y,也就是说a和b的差是一定的,且a和b中至少相差一个d,所以d的最大值为|a - b|a和b相同时,最大公约数为a,b本身,由于能无限增大,输出0 0接下来考虑第二问,设最大公约数|a - b| = d,判断a和b至少需要几步能变到最大公约数为d,由于a

2021-07-08 18:07:49 132

原创 Codeforces Round #729 (Div. 2)

A Odd Set题目大意给一个数n,给2*n个数,将他们分为n组,每组两个数,问能否使每组数的和为奇数主要思路只有奇数+偶数=奇数,那么只有当奇数个数==偶数个数时才能凑成AC代码#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <stack>#include <string>#include &

2021-07-05 00:23:04 512 1

原创 牛客小白月赛34

A dd爱科学1.0主要思路本质上求最长不下降子序列,dp解法,详细版本可以参考y总算法基础课f[i]表示以a[i]结尾的最长不下降子序列长度,考虑如何更新f[i]用j遍历1到i - 1,当w[i] >= w[j]时,更新f[i] = max(f[i], f[j] + 1)#include <iostream>#include <algorithm>using namespace std;const int N = 1010;int f[N], n;ch

2021-05-30 20:44:07 172 1

原创 Codeforces Round #723 (Div. 2)

A Mean Inequality题目大意给你一个数n和2n个数,把这2n个数凑成一个环,且每个数都不等于左右两边的数的和的一半,求出一个数的排列主要思路首先考虑怎么才能让当前数不等于左右两边的数的和的一半,如果左右两边的数都大于或者小于当前数,那么一定不会出现当前数等于左右两边的数的和的一半,所以我们把数组排序,然后取一个最大的数放在第一个位置,取一个最小的数放在第二个位置,取次大的数放在第三个位置…以此类推, 由于题目保证一定有解这种构造方法一定正确#include <iostream&

2021-05-29 16:54:18 71

原创 Codeforces Round #721 (Div. 2)

A And Then There Were K题目大意给一个n,求最大的k满足n & (n−1) & (n−2) & (n−3) & … (k) = 0主要思路当n的二进制位数-1时必然会经过1xxxx -> 10000 这时把前面的数都&起来,由于第一位1无法消除,所以最大的数一定是10000 - 1是第一个能把n的第一位1消除的,所以答案就为n的二进制位的个数减1个1组成的数#include <iostream>#include &

2021-05-27 15:53:02 90 3

原创 Codeforces Round #722 (Div. 2)

A Eshag Loves Big Arrays题目大意给定一个长度为 n 的正整数数组 a ,现在可执行若干次操作(可为 0)具体操作为:选定某个序列,删除严格大于序列的平均数的元素请问最多能删去多少个元素主要思路最多能删去除最小值元素以外的所有元素,所以统计最小值个数即可#include <iostream>#include <cstring>#include <string>#include <algorithm>#include

2021-05-25 23:54:16 127

原创 环形石子合并----区间DP

题目来源AcWing题目大意将 n 堆石子绕圆形操场排放,现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该次合并的得分。请编写一个程序,读入堆数 n 及每堆的石子数,并进行如下计算:选择一种合并石子的方案,使得做 n−1 次合并得分总和最大。选择一种合并石子的方案,使得做 n−1 次合并得分总和最小。输入格式第一行包含整数 n,表示共有 n 堆石子。第二行包含 n 个整数,分别表示每堆石子的数量。输出格式输出共两行:第一行为合并得分总和

2021-01-16 18:47:29 157 1

原创 01分数规划&spfa实现找负环----AcWing 361 观光奶牛

题目来源AcWing361题目描述给定一张L个点、P条边的有向图,每个点都有一个权值f[i],每条边都有一个权值t[i]。求图中的一个环,使“环上各点的权值之和”除以“环上各边的权值之和”最大。输出这个最大值。注意:数据保证至少存在一个环。输入格式第一行包含两个整数L和P。接下来L行每行一个整数,表示f[i]。再接下来P行,每行三个整数a,b,t[i],表示点a和b之间存在一条边,边的权值为t[i]。输出格式输出一个数表示结果,保留两位小数。数据范围2 ≤ L ≤ 1000 ,

2021-01-12 16:56:45 93

原创 kruskal求严格次小生成树--ACwing1148秘密的牛奶运输

题目描述(抽象模型)农夫约翰要把他的牛奶运输到各个销售点。运输过程中,可以先把牛奶运输到一些销售点,再由这些销售点分别运输到其他销售点。运输的总距离越小,运输的成本也就越低。低成本的运输是农夫约翰所希望的。不过,他并不想让他的竞争对手知道他具体的运输方案,所以他希望采用费用第二小的运输方案而不是最小的。现在请你帮忙找到该运输方案。注意:如果两个方案至少有一条边不同,则我们认为是不同方案;费用第二小的方案在数值上一定要严格小于费用最小的方案;答案保证一定有解;输入格式第一行是两个整

2020-12-16 00:00:58 140

原创 最小生成树拓展应用---kruskal经典应用 ACwing346

抽象模型给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。求增加的边的权值总和最小是多少。树中的所有边权均为整数,且新加的所有边权也必须为整数。输入格式第一行包含整数t,表示共有t组测试数据。对于每组测试数据,第一行包含整数N。接下来N-1行,每行三个整数X,Y,Z,表示X节点与Y节点之间存在一条边,长度为Z。输出格式每组数据输出一个整数,表示权值总和最小值。每个结果占一行。数据范围1 ≤ N ≤ 60001 ≤ Z ≤ 100输

2020-12-13 21:27:13 107

原创 ACwing1146--新的开始(超级原点问题)

题目大意发展采矿业当然首先得有矿井,小 FF 花了上次探险获得的千分之一的财富请人在岛上挖了 n 口矿井,但他似乎忘记了考虑矿井供电问题。为了保证电力的供应,小 FF 想到了两种办法:在矿井 i 上建立一个发电站,费用为 vi(发电站的输出功率可以供给任意多个矿井)。将这口矿井 i 与另外的已经有电力供应的矿井 j 之间建立电网,费用为 pi,j。小 FF 希望你帮他想出一个保证所有矿井电力供应的最小花费方案。输入格式第一行包含一个整数 n,表示矿井总数。接下来 n 行,每行一个整数,第

2020-12-12 16:00:44 153

原创 二叉搜索树的2层结点统计

题目大意主要思路由于二叉搜索树是左子树上所有结点的值均小于或等于它的根结点的值,右子树上所有结点的值均大于它的根结点的值,所以我们每插入一个点就要从根节点dfs找到能存放该点的地方,也就是说如果这个值大于根节点就要往右找,小于等于根节点就要往左找,递归此过程,这样建树并且更新最大深度AC代码代码通俗易懂#include <iostream>#include <algorithm>#include <cstring>#include <cstdio&

2020-11-17 19:34:16 1575 1

原创 L2-031 深入虎穴

题目大意主要思路使用并查集维护到根节点距离AC代码#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <string>#include <cmath>#include <queue>#include <vector>#include <map>#include

2020-11-15 21:26:49 263

原创 造数据模板

#include <iostream>#include <algorithm>#include <cstring>#include <ctime>#include <string>#include <sstream>#include <fstream>using namespace std;const int GROUP_NUM = 10;string getname(int i, string a)

2020-11-13 20:18:17 193

原创 L2-013 红色警报

题目大意主要思路首先在读入两条道路通路时用并查集计算出有多少个连通块,然后记录下来,接下来再读入每一个失去的国家,每读入一个计算一下当前连通块的个数,当当前连通块的个数比上一次的连通块个数多一或者不变时,说明没有改变连通性,否则改变连通性发出红色警报AC代码#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <string

2020-11-10 23:36:13 159 1

原创 L2-014 列车调度

题目大意主要思路由于递减输出,我们在模拟这个过程时,仅仅需要知道每条铁轨的列车编号的最小值,和所有轨道列车编号最小值的最大值T,所以我们用一个vector维护所有列车轨道的最小值,如果新加入的列车大于T那么需要新开一个轨道,如果小于T,用贪心的思路那么需要在vector中找到一个大于T最小的列车编号,并更新此列车编号为T需要注意的是,由于我们在新开一个轨道时,当前插入的列车编号大于所有轨道列车编号的最小值,而我们的vector数组也仅仅维护了所有轨道列车编号的最小值,所以vector数组一定是有序的

2020-11-08 10:45:14 142

原创 L2-029 特立独行的幸福

题目大意算法思路首先我们从小到大遍历区间内的每一个数,对于区间内的一个数t,我们将t迭代,同时用一个vector存下迭代的每一个数,同时进行标记,当t为1或者t在vector中重复出现时,停止遍历,如果t为1,则记录t的独立性。遍历完数组后,我们只需要遍历之前记录过独立性的数即可,如果当前数没有依附于其他幸福数,也就是没有被数组标记过,则输出AC代码#include <iostream>#include <algorithm>#include <cstring&

2020-11-04 11:47:53 416

原创 L2-006 树的遍历

二叉树的遍历二叉树遍历分为四种:前序、中序、后序,层序前序遍历:根结点 —> 左子树 —> 右子树中序遍历:左子树—> 根结点 —> 右子树后序遍历:左子树 —> 右子树 —> 根结点层次遍历:只需按层次遍历即可前序遍历为为A->B->C,中序遍历为B->A->C,后序遍历为B->C->A,层序遍历为A->B->C(按照每一层来遍历与前序不同)再举个复杂点的例子前序遍历:ABDEGCF中序遍历:DBEG

2020-10-31 16:35:26 1955 3

原创 C++ stringstream按照空格提取字符串

stringstream是字符串流,经常被我用来作数据切分或者类型转化头文件为 <sstream>#include <iostream>#include <algorithm>#include <cstring>#include <string>#include <vector>#include <sstream>using namespace std;int main(void){ vecto

2020-10-29 21:18:58 1764

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除