![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
codeforces
文章平均质量分 54
01
_____111
持之以恒
展开
-
C. Maximum width Codeforces Round #704 (Div. 2)
题目:链接思路: 正向遍历满足前i-1个字母第i个字母可选的最小的下标。 逆向遍历满足后n-i-1个字母第i+1个字母可选的最大的小标。 相减后取max即可。代码:#include<algorithm>#include<iostream>#include<cstring>#include<string>#include<queue>#include<map>#include<c...原创 2021-02-25 22:29:44 · 146 阅读 · 0 评论 -
Codeforces Round #703 (Div. 2) B. Eastern Exhibition
题目题目链接思路知道一个结论:在一个数轴上,求得一点x,使得数轴上所有点到该点距离之和最小。这样把二维点分配成一维上的情况相乘即可(因为这里的二维距离是一维距离绝对值之和)。具体证明链接代码#include<algorithm>#include<iostream>#include<cstring>#include<string>#include<queue>#include<map>#include<c原创 2021-02-19 10:42:31 · 180 阅读 · 0 评论 -
Educational Codeforces Round 104 (Rated for Div. 2) D. Pythagorean Triples
题目链接思路首先由c×c=a×a+b×b和c=a×a-b可得: a×a = 2×c-1,b = c-1;因为a×a=2×c-1 所以a肯定是奇数 并且a×a = 2×c-1 <= 2×n-1思路一:a×a=2×c-1 只要是a是奇数 对于每一个a>=3的奇数 都存在a b c;所以二分找到最大的a满足a×a<=2×n-1。如果是偶数 --得到奇数。这时候ans/2就是相应的个数(奇数偶数除二对半分)思路二:t循环外面vector容器存下所有满足情况的代码...原创 2021-02-18 17:45:17 · 98 阅读 · 0 评论 -
Educational Codeforces Round 104 (Rated for Div. 2) C. Minimum Ties
目录题目思路代码题目链接思路每两个人之间都会进行一场比赛,可以建图,n个顶点,每两个顶点之间进行连线。 假设n为奇数,那么与偶数个线相连。这时候平分输赢不就好了吗?也就是顺时针数n/2个顶点都是赢,剩余的都是输。这样不会重复。理由:某个点,之前的n/2个点相比他都是输的,这时候剩余的不就是顺时针相距小于等于n/2的点吗?假设n是偶数,那么奇数条边,这时候把对角线定为平局即可。总体来说,n为奇数顺时针相距n/2的为胜,剩余的为负。 偶数把n/2这个点单独拿出来为平局即可。代码#inc原创 2021-02-18 17:36:42 · 84 阅读 · 0 评论 -
Codeforces Round #702 (Div. 3) E. Accidental Victory
题目链接思路先进行排序,一个选手若想赢 先将所有比他弱的选手打败,这时候判断是否可以打败第一个之前比他强的选手。如果行,打败,以此比较。这时候会发现 其实就是前缀和,并且这个选手打败第一个比他强的选手最终的实力和这一个后者选手打败所有比他弱的最终的实力一样。如果能这样持续到最后一个 那么这一个肯定行。如果有一个选手,即使打败了所有比他弱的,也无法战胜之前第一个比他强的,那么他包括他所有之前的选手都不可能活到最后。所有排序,寻找最后一个不可以完成的下标即可。代码#include<bits/s原创 2021-02-17 15:14:29 · 140 阅读 · 0 评论 -
Codeforces Round #702 (Div. 3)---C. Sum of Cubes 两种方法 cbrt()函数应用
文章目录题目思路代码题目题目链接思路思路一、 容易联想到枚举所有x存在的情况,用map映射。因为a取值在1e4上。 1e8的时间复杂度枚举,但是map具有自动排序费时间,炸了。 unordered_map? 编译错误 error… 那我们尝试用枚举一个a<=1e4。这时候利用二分寻找b^3= x-a^3。 复杂度O(nlogn) 可以。思路二、 函数z = cbrt(y) 就是对y立方根得到z 这时候只要zzz==y就可以了(简单)代码代码一、#includ原创 2021-02-17 15:07:25 · 246 阅读 · 1 评论 -
D. Multiples and Power Differences:Codeforces Round #701 (Div. 2)
题目题目链接思路先假设k=0 这种情况下 只要是把1-16取lcm即可。 现在k!=0 这时候只要是用_lcm-a[i][j]得四次方即可也就是说k就是a[i][j] 这时候一定为a[i][j]得倍数,为了防止 为负 可取绝对值。因为_lcm也为a[i][j]得倍数 减法前后调换不影响差值为a[i][j]得倍数。代码#include<algorithm>#include<iostream>#include<cstring>#include&l原创 2021-02-13 22:06:20 · 108 阅读 · 0 评论 -
C. Floor and Mod : Codeforces Round #701 (Div. 2) 详解20行代码
题目:题目链接思路:由a/b(↓)=a%b得a=(a/b(↓))b+a%b。令k=a%b < b。则a=kb+k=(b+1)*k。由于k<b<b+1,则a=(b+1)*k>k^2。 可得k^2<a<=x。于是k得最大取值即10的4.5次方 可以枚举k。 若枚举了k确定b的值相应a也确定。也即求出b的个数即可。 b的最小取值为k+1,因为k<b。 b的最大取值为min(y,x/k(↓)-1)推导最大取值: 首先b<=y。其次 1<原创 2021-02-13 21:35:23 · 149 阅读 · 0 评论 -
D. Program:Codeforces Round 102 (Rated for Div. 2)
D. Program大致题意:给你一个长为n的字符串 由‘+’、‘-’组成,初始值x=0,遇到+就+1,遇到-就-1。给你m个询问,每一个询问存在两个整数l,r,问如果省略掉字符串中[l,r]的字符,x的不同值有多少个。思路: 首先,无论省略哪一块,x取值一定是连续的(原因:±1操作)。所以如果能知道最大值最小值,两者相减+1即可。 其次,对于一连串操作,任何数经过这些操作所改变的上下起伏是一样的。所以: 对于最大值:在下标l之前的x最大值和r之后的所有操作起伏加上a[l-1]中取最大值。原创 2021-01-16 22:48:55 · 337 阅读 · 0 评论 -
C. No More Inversions :Codeforces Round 102 (Rated for Div. 2)
C. No More Inversions大致题意:一个a数组,内容为1 2 3 4 … k-1 k k-2 … k-(n-k)有一个数组p,大小为k,且里面的值为k的一个全排列。(a[i]∈[0,k]) 问寻找一个数组p,使得对于i∈[1,n]有b[i]=p[a[i]]满足b数组的倒置数目不能超过n,且让b的字典序最大(一个倒置为存在一个i,j,i<j使得a[i]>a[j]即逆序数)思路:看将数组a分为两个部分1 2 3 4 … k-(n-k)-1K-(n-k) k原创 2021-01-16 22:44:07 · 216 阅读 · 0 评论