自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

题目链接:D. Training Session 题目大意: 给你n个(x,y)对,其中x是题目的主题 y的题目的难度 ,从中找出三个(x,y)对,要求这三个对要么是x都不同,要么是y都不同,要么是x和y都不相同。 思路: 很容易知道总的选择数就是Cn3C_{n}^{3}Cn3​也就是n∗(n−2)∗(n−2)6{n*(n-2)*(n-2)\over 6}6n∗(n−2)∗(n−2)​,那么只要找出不符合的然后相减就能得出最终答案了。 那么怎么找出不符合的呢,根据题目不可能存在完全一致的(x,y)对,所

2021-11-01 21:26:44 209 1

原创 Codeforces Round#750 (div. 2) D. Vupsen, Pupsen and 0

题目链接:D. Vupsen, Pupsen and 0 思路: 这道题要求构造一个b数组使得与对应a元素的乘积之和为0,并且要求b数组的各项绝对值之和要小于等于1e9,再结合a数组元素值的大小来看,已经暗示了只要将a数组进行相应的调整便可以。改题可以分为两种情况: 第一种:n为偶数的情况,此时两两相邻元素之间可以凑为一对,我们写为x y,那么很容易想到b数组对应的为-y x即可让这一对的sum变为0. 第二种:n为奇数的时候,这时候我们可以把前三个数单独拿出来计算,而从第四个数开始直到第n个数的做法就可以

2021-10-25 11:43:20 234

原创 Mayor‘s posters (线段树+离散化)

题目链接:Mayor’s posters 思路:由于看到l,r的值最大可达到1e7,这时候如果强行build,那么大概率会出错,看到n的值只有1e4,这时候我们应该想到用离散化去解决这个问题。 而且,这里还有一个坑点,假如所给区间为[1,4],[6,7],[1,7],那么离散化之后1,4,6,7分别对应1,2,3,4这时候如果求出海报的种类,那么就错误的求出了[1,2],[3,4]的海报种类为2。所以我们判断当两个结点的值的差大于1时,那么插入一个中间结点,就可以避免此情况。 代码:(还是y总的代码风格看起

2021-09-27 18:21:28 320

原创 Codeforces Round #743 (Div. 2) C. Book

题目链接:C.Book 思路:基本上就是拓扑排序模板题,一些细节会给在代码当中给与一定注释 代码: #include <bits/stdc++.h> using namespace std; const int N=2e5+10; int h[N],e[N],ne[N],idx,n,en[N],day[N]; void add(int a,int b) { e[idx]=b; ne[idx]=h[a]; h[a]=idx++; } int top() { int

2021-09-24 16:31:44 156

原创 Codeforces Round #743 (Div. 2) B. Swaps

题目链接:B.Swaps 思路(来自于博主%xiao Q): 1、首先看看暴力的做法。遍历a[]数组,从b[]数组中找到第一个比a[i]大的数,之后记录交换的次数即i+j-2,然后更新ans。但是显然这个时间复杂度为O(n^2)会超时。 2、我们以这个思路为基础,将a[]数组进行升序排序,并将a[]数组中每个数的下标记录下来,然后使用双指针进行查找第一个比a[i]大的数b[j],同样可以达到暴力做法的那种效果,而且时间复杂度也降低了不少 代码如下: #include <bits/stdc++.h&gt

2021-09-23 20:27:07 196

原创 Codeforces Round113(div .2) B. Chess Tournament

Codeforces Round113(div .2) B. Chess Tournament 原题地址 思路: 1:先说输出结果为NO的情况。当只有1个或者2个记号2时,输出NO。 2:输出YES的情况。既然记号1是代表这个人一场都不输,那么对局有两种结果一种结果是=,一种结果是+。此时容易知道如果我们一碰到1便将他的任何对局结果都变成=,那么无论对手是记号是1还是2,都符合题意。而当某个人是记号2,需要他至少赢一场。那么我们可以将所有记号为2的下标存储起来,先存储的可以赢下他后一位存储的,后一位存储的

2021-09-09 22:36:25 185

空空如也

空空如也

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

TA关注的人

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