自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

原创 Codeforces Round 969 (Div. 2) ---C

先分析A==B的情况,那么最终答案一定小于A,否则,我们依然可以通过最小值+A,使得数组中所有元素都大于max(wi)减A,这是因为假如之前数组中最小值通过+A变成了最大值,那之前未操作时所有的元素(除去最小元素)都大于这个操作后的最大值减A。例如,数组 [1,2,3,4][1,2,3,4] 的取值范围是 4−1=3,数组 [5,2,8,2,2,1] 的取值范围是 8−1=7,数组 [3,3,3]的取值范围是 3−3=0。的情况下的余数,这样我们可以把元素分成几类,每一类的元素的模值相同。

2024-09-03 12:11:03 445

原创 2022 ACM-ICPC 网络赛(1)

这里很多人害怕会枚举炸了,但是我们仔细想一下,只要保证dfs的过程中,没有重复的情况,那么我们最多就5e5种状态。因为我们需要放置0,如果这个时候二进制的长度加上1的个数(也就是0的个数)大于了30,那我们就剪枝。Case1的递归优先与Case3,及每次递归都是先尝试添加”1“的序列,再处理”0“的情况。这里是为了添加一个“1”,继续递归,探索添加一个“1"的可能,以便构建更长的序列。一个好数的定义:它的二进制表示中1的个数等于其末尾连续0的个数。询问次数为T(1<=T<=1e5).未完待续......

2024-09-02 17:33:56 435

原创 Codeforces Global Round 25-- B and Codeforces Round 937(Div - 4) -- D

你希望你的奶牛在尽可能多的比赛中获胜。你可以要求他们只交换你的奶牛与另一头奶牛的位置一次,或者你可以选择什么都不做。如果 p < k,则找到第二个大于 a[k]的牛的位置tp。tp - p - (p == 1),就是在p 和 tp之间可以获胜的次数。之后 的 第i场比赛则是 位置为 i+1 的和在 第 i-1 场比赛获胜的 牛比赛。找到第一个大于 a[k]的牛的位置p,如果p > k ,最终结果就是 p-2.第一场比赛是 在位置1 和位置 2的牛比赛。找到你的奶牛可以达到的最大获胜数。

2024-05-07 20:51:40 166

原创 Codeforces --- Round 943 (Div 3) - D and Educational Codeforces Round 165(Rated for Div 2) - B

找到从初始位置开始 每个玩家可以到达的位置,记录下来。然后循环遍历轮数,找到每次可以的最大得分。(因为可以继续停留在当前位置,这也是要计分的)。题目大意:有一个排列,由1-n数字组成的n个不太元素的数组。现在有两个人B和S玩游戏。数组a记录每个位置的价值,p就是排列数组,记录位置。他们两个选择了排列中的起始位置。找到得分最大的玩家。

2024-05-07 18:41:49 344

原创 PTA--①银行业务队列简单模拟②全排列③最大子列和④出栈序列的合法性(有的没写·注释,看看代码就理解了)

代码,及注释。

2024-05-06 20:25:29 262

原创 QT中构建JSON字符串

QT中创建新文件时,选择Qt Console Application 即可。这一操作不涉及ui界面设计。

2024-04-24 17:07:38 238

原创 并查集的一些操作

/下面代码是将一组元素合并到一个集合中,使得这组元素有一个共同的根节点fa。//如果是fa还未初始化的话,则将fa初始化为 x所属集合的根节点。if(fa === fb) cout<<"属于同一个部落"<<endl;//如果是后来的节点,并且,新节点所属集合的根节点不是fa,//则将当前节点的根节点fx的父节点 设置为 fa。//相当于将 x 所在的集合合并到fa的集合中。//找到a,b所属集合的根节点。//p[i]表示节点i所属的集合。//find函数是找到x的根节点。

2024-04-23 23:04:21 307

原创 双指针算法,位运算,离散化

unique函数是去重,会把重复元素放到最后,返回的是 重复数字开始的位置。②lowbit(x),返回x的最后一位1的位置。return r + 1//映射到1,2 ...,n。①在两个序列中,一个指针指向一个序列,另一个指针指向另外一个序列。while(l < r)//找到第一个大于等于x的位置。

2024-04-20 12:54:07 831

原创 Educational Codeforces Round 164 (Rated for Div. 2) -B,C

当两个数的和固定时,当两个数的差值越小,乘积越大。知道这个知识后就好做了,我们只需让两个数不断接近即可。(等我有时间搞个合集)

2024-04-17 23:31:17 271

原创 2021-JSCPC-Longest Continuous 1

Let's use pk to denote the prefix of s(s的下标是10的100次方) of length k. Now given k, please calculate the length of the longest continuous 1 in pk.

2024-04-17 19:41:03 512 2

原创 PTA--输入全排列

请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。

2024-04-17 16:43:59 315

原创 PTA--两个有序链表序列的合并

已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。

2024-04-17 16:19:20 1341

原创 PTA--数列求和-加强版

给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。关键理解: arr[cnt++]=(a*(n-i)+t)%10;语句的目的是判断最后是否有进位,如果有进位,则将进位值存入数组。(hh,还没学会高级功能·)输出其N项数列之和S的值。输入数字A与非负整数N。

2024-04-17 15:50:57 160

原创 高精度算法:(有时间补充)

Ai-Bi-t(t表示上一位有没有借位,如果借位了,t=1,反之,t=0)数组第0位存放个位数。因为会有进位问题,在数组最后加上比较简单。要保证A>=B.如果反之的话,就计算B-A,去负号。这里的乘数是一个大整数乘以一个比较小的数。这里是把乘数 b看成一个数 ,就是一起乘。先从个位开始减,不够减的话就向前借位。如果存在负数,分情况讨论。一个高精度除以一个低精度。大整数存储都是一致的。

2024-04-17 15:14:56 195

原创 归并排序 c++语言

有两个指针·指向两个有序序列的开始位置(该位置就是该序列的最小值),设一个新数组去存储答案。再比较两个指针指向的数的大小,较小的作为两个序列合成的新序列的最小数。如果指针一的更小,则指针一向右移动,再比较指针一和指针二指向的数。如果此时,另一指针未指向最后位置,则从另一指针的位置开始直接放到新序列后面。①确定分界点:mid = ( l + r ) / 2;以整个数组的中间部分,分为左边和右边。2.时间复杂度:nlog(2)n;一共log(2)n层,每层O(n).(把两个有序序列合二为一)。

2024-04-15 17:24:55 147

空空如也

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

TA关注的人

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