自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 L2-024. 部落-PAT团体程序设计天梯赛GPLT(tarjan缩点)

可能有人在多个圈子,那么这几个圈子合并为一个部落,一个做法就是将圈子转化为有向图,最后求出的缩点就是部落个数。再查询是否在一个缩点当中。

2024-04-17 16:26:18 202

原创 Codeforces Round 935 (Div. 3)A~E

二分但没完全二分,数组的取值为1~n,且可能不单调,题目给出的方法适用于单调递增,故,如果起初数组为单调递增的话操作数为0,否则,我们按照题意进行二分模拟,最终二分出来的坐标l 与x起初的位置换一次即可;A类烟花每a分钟发射一次,B类烟花每b分钟发射一次,它们都能持续m分钟,那么我们直接用m分别求出这两类烟花都能放几个加和即可,注意, 我们可以选择烟花发射时间包含二者最小公倍数所以最终结果+2。到m后,我们可以选择a[m]来停下,但是考虑到有可能到前面的位置花费会更小所以我们再向前模拟,更新最小值。

2024-03-21 17:03:04 705

原创 Codeforces Round 916 (Div. 3)A~E2

为了考虑到所有情况,我们可以遍历数组(在一次遍历当中即可解决,故无需担心考虑所有情况时间复杂度),来试验一次解锁当天,剩下的用来进行过去几天里b值最高的任务,更新最大值。在一次考试当中,题目难度为1~n,我们可以将其随意排序,如果当前题目难度大于上一个题目,主角会感到一次兴奋,问k次兴奋该怎么排列.完成任务可以获得经验,第i个的任务仅当1~i-1个的任务至少执行一次才可执行,初次执行该任务获得。经验,一个任务可以执行多次,如果只能完成k个任务,求经验最大值.,二者公式相同,收获价值相同,故可以按。

2023-12-20 11:17:13 1480

原创 AtCoder Beginner Contest 333 A~E

要想删除1,那么必须让1为叶子节点,设1有n个子树(n>0)也就是说必须删除n-1个以1为根的子树 ,为了使得操作数最小,我们留下结点最多的子树,我们通过使用DFS遍历获取子树和,并且更新最大子树的节点数,最终得出结果。遇到1是药水,2是怪物,可以收集药水放进背包,如果遇到怪物可以消耗药水击杀怪物,如果遇到怪物且没有药水 则游戏结束,在保证游戏能够不结束的情况下,做到背包容量最小,如果一定会结束,输出-1;对于以1为根的数,每次可以删除一次树的叶子节点,问最少几次可以删除到1。输入一个数n,输出n个n.

2023-12-19 15:59:16 919

原创 Educational Codeforces Round 160 (Rated for Div. 2) A~C

时,也就是在查询w的时候x位所能做的贡献就加一,查询w的时候也将w转为二进制,我们从零开始遍历集合当中的二进制位,如果当前组成w需要该位,那么集合该位的个数就减一,如果不需要当前位,那么就将多余的位进到下一位为w使用下一位做准备,如果查询到w需要该位,但该位为零的情况输出NO.,因为s是不变的,故我们考虑s当中'0'和'1'的个数:设'0'的个数为cnt0, '1'的个数为cnt1。创建一个新字符串t,是在s的基础上可以交换和删除,删除会花费1费用,最终使得。给一个空的集合multiset,1添加。

2023-12-19 10:52:07 716

原创 Codeforces Round 913 (Div. 3) A~E

我们统计每个字符的数量,为了保证最后剩下的字符个数最少,我们贪心地用个数次大的字符与个数最大的字符相抵消,因为需要维护数量的降序排序,我们选择使用大根堆来维护,我们每次弹出堆顶的两个元素,将他们互相抵消,也就是都减一,如果大于零就再放回堆当中,最终堆内会只剩下一个数,也就是最短的字符串长度。一个字符串,当当前字符为'b'时,删除新字符串最右边的 小写字符,当当前字符为'B'时删除新字符串最右边的大写字符,没有则不删除,除去'b'和'B'的其他字符添加到新字符串当中,然后输出。步走出的范围能够与第。

2023-12-06 17:12:57 1654

原创 Codeforces Round 786 (Div. 3) D. A-B-C Sort

听起来很麻烦,但是通过模拟可知a数组长度n为奇数时,那么a当中第一个元素必定是c数组当中的第一个元素,如果n为偶数时,那么取a头部两个元素的最小值为c元素的第一个元素,那么我们遍历a数组只需要根据数组长度的变化更改取值同时更新a数组即可。

2023-11-24 21:08:10 565

原创 AtCoder Beginner Contest 329 题解A~F

统计每个字符出现过的最长长度,再累加即可。的样子(印章每次会覆盖重复的部分)输入字符串,字符之间加上空格输出。的票加一,每次都输出最多票的人,两个人,每次视情况输出,并且更新。记录当前最大票数的人,在第。给一张空白的纸,一个印章。输出数组当中第二大的数。

2023-11-19 14:12:51 833 1

原创 Codeforces Round 908 (Div. 2)题解

A,B一共打n场比赛,输入一个字符串由'A'和‘B’组成代表A赢或者B赢(无平局),因为题目说明这个人记得一定打了n场比赛,所以也就是n场比赛结束,题目说明,一旦分出胜负,比赛当场结束,那么一整场比赛的结束一定是分出了胜者,所以一定是字符串的最后一个,也没有所谓的'?格,最终得到数组a,因为数组a不是确定的,所以我们需要判断在逆推回a数组的时候是否会出现不可行的情况,因为正推的条件是。对于a数组,必须有重复的数才行,否则连前提条件ai=aj都满足不了,也就是0种。,故我们考虑去除多余重复的操作,也就是取。

2023-11-08 17:37:13 1096 3

原创 蓝桥杯:买不到的数目

就能表示,就不讨论了)所以最大的不能够表示的数是哪一个呢?=17,因为对于大于17的任一数都可由4和7组成。也就是说,在模m为x的所有数中,最小的能够用。的数,那么首先先要找一个最小的正整数。那么可知一个数如果可以被表示为。,而最大的不能够被表示的数是。,然后给他加上若干的m。对于两个互质的正整数。例如:对于4,7那么。对m的余数皆不相同。

2023-11-03 19:16:53 371

原创 Codeforces Round 882 (Div. 2)

按位与运算,是一个单调递减的过程,如果一个数字的某一位为0,那么无论多少数该位为1 ,结果都为0,对于题目来说,我们需要尽可能的将一个组的结果变为零,也即让所有的0尽可能的发挥作用,故,如果当前数按位与为零之后,将其分为一组.这样的,那么如果分成k组那么就会有k-1个力量不被统计,将力量总和减去前k-1个最大的力量就是最小的结果。将数组分组,每个组内进行按位与运算,若想让每个组的结果加和最小,最多可以分几个组。的异或和,求出数组最大的数可能是多少。n个人分成k组,每一组的力量都是。

2023-11-03 18:53:34 415

原创 Codeforces Round 884 (Div. 1 + Div. 2)(A~D)

给定一个n个数的数组,即从1~n,问如何排列该数组,使MEX能得到素数的子序列最多,MEX为序列当中未出现的最小正整数,如果某个序列不包含1,那么这个序列就是无用序列,因为1并不是素数,所以1应该放在中间,使得能取到1的子序列尽可能的多,对于第二和第三小的数,也就是2和3,它们本身是素数,所以应该放到数组的两侧,使得能取到他俩的子序列尽可能的少。给两个数a,b,每次都必须取其中的一个,谁没东西可取谁输,取求后手必胜策略, 直接输出a+b即可,因为无论先手拿a和b当中的哪一个,后手会拿走另一个,后手必胜。

2023-11-02 17:22:47 133

原创 Codeforces Round 889 (Div. 2)A~C1题解

26,long long 就会爆掉,所以,连续序列的长度最多不超过25,同理,越往后面,数字越大,也即只需要在1~25范围内找连续数列就行。其余情况不好处理,考虑往特殊情况上转,也即找到最大的数和最小的数相加,若小于零,则将最小的数加上全序列变为全负,否则变为全正。题目分析:给你一个1e18大小的数n,让你 找出最长的连续数列满足这个数列每个都是n的除数。模拟,写出两个就能找出规律:坐在自己位子上的小孩会不高兴,所以统计下来cnt。i上,最终在不超过50次的操作下,使得整个序列变为不递减序列。

2023-09-27 19:23:46 285

原创 Codeforces Round 896 (Div. 2)题解

前言: 3 solved of 7 A、B、CA - Make It Zero题目分析:选取l,和r,并将l~r当中所有值转化为他们异或和只需要知道2个相同的数异或和为0,这题就已经解决了偶数:1~n两次操作必为0奇数:1~2两次操作保证1位上为0,2~n两次操作,保证2~n为零,至此整个数列s全为0B - 2D Traveling B - 2D Traveling a到b城市,费用为二者坐标x,y之差的绝对值,同时前k个城市为maincity,也就是图中标红的点,miancity到mainc

2023-09-12 20:47:06 247

原创 Codeforces Round 895 (Div. 3)题解

简单题目,就是x的倍数位置的-y倍数位置的,可以自己排列整个数列,也就是让x倍数位置的尽可能大,y 倍数位置的尽可能小,x和y的公倍数的也就是直接消掉即可;题目A:通过最少操作使得a,b水相等,分abs(a-b)是不是2*c的倍数讨论,2c是因为,a-c b+c 总差值为2*c;开始没注意n的范围,直接TLE了,最终的加法可以用等差数列知识,因为数列本身就是1~n的所有值.②再者就是 1 1, 1 2, 1 3, 2 1,2 2, 2 3这些,特判即可 -1。①l==r且为素数 -1。

2023-09-08 19:59:51 213

原创 Java 内部类

内部类是指在一个类的内部定义的另一个类。它可以访问外部类的成员,并且可以被外部类的成员访问。内部类有以下好处:封装性:内部类可以访问外部类的私有成员,这样可以增强了封装性,外部类的私有成员不需要暴露给外部类以外的类,可以被内部类私有化访问。实现多继承:内部类在Java中类似于C++中的多重继承。一个类可以有多个内部类,每个内部类可以继承自不同的类或实现不同的接口,从而实现多继承的效果。隐藏实现细节:内部类可以对实现细节进行隐藏,外部类无法直接访问内部类的方法和属性,只能通过外部类对象来访问。

2023-09-06 19:21:13 433 1

原创 Codeforces Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2)

解题情况 3of 9 A B C日期 9.1。Codeforces Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2)

2023-09-01 10:43:23 149

原创 位运算进阶操作

1.通过位运算与特定的位模式进行掩码操作,可以提取、设置或清除特定的位信息。例如,我们可以使用位掩码来检查一个数的二进制表示中特定位置是否为1。8.位运算统计不同位数,以快速统计两个整数的二进制表示中不同的位数。3.位运算计数,可以快速计算整数的二进制表示中有多少个位为1。5.位运算快速幂运算,时间复杂度为O(logn) n为指数。位运算的进阶操作,适合做题的时候用,共10点。2.位运算交换值,无需使用额外的变量。6.位运算判断是否为2的幂。9.位运算获取最右边的1。10.位运算交换奇偶位。

2023-08-30 20:26:36 1664

原创 Codeforces Round 892 (Div. 2) 题解

按照每个数组倒数第二小的数进行排序,找到倒数第二个数最小的那个数组用来接受其他数组的最小值,这样可以保证获得最大值。题目大意为给你几个数组,数组可以无限的接受外来的整数,但是只能送出1次整数,最终按照公式求出尽可能大的值。n大小的数组当中就是1~n的所有数组,可以交换数字的位置以来尽可能的求出公式的最大值。给你一个数组是否能分成两个数组b 和 c, 其中c中的任一数都不是b中任一数的除数。既然每个数组只能送出一个整数,那么这个数组最大的值就是倒数第二小的数。可以从后往前,数字依次倒序,取最大值即可。

2023-08-30 14:35:26 162

原创 洛谷P1083 [NOIP2012 提高组] 借教室

在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来 n 天的借教室信息,其中第 i 天学校有 ri​ 个教室可供租借。共有 m 份订单,每份订单用三个正整数描述,分别为 dj​,sj​,tj​,表示某租借者需要从第 sj​ 天到第 tj​ 天租借教室(包括第 sj​ 天和第 tj​ 天),每天需要租借 dj​ 个教室。

2023-07-14 15:39:18 376

原创 Red Scarf题解

Problem StatementThere are N Snuke Cats numbered 1,2,…,N, where N is even.Each Snuke Cat wears a red scarf, on which his favorite non-negative integer is written.Recently, they learned the operation called xor (exclusive OR).What is xor?They wanted to use

2023-07-14 15:16:23 241

原创 Replacing

Problem StatementYou have a sequence A composed of N positive integers: 1,2,⋯,A1​,A2​,⋯,AN​.You will now successively do the following Q operations:For each i (1≤i≤Q), find Si​: the sum of all elements in A just after the i-th operation.ConstraintsInputInp

2023-07-14 15:08:34 172

原创 VMware Ubuntu忘记密码修改密码

然后就会让你输入new UNIX password这时候你就输入root 的密码就行了(虚拟机并不会显示你 输入了什么)接着回车。如果按照第一步当中的passwd root 来改变密码,重启后可以尝试是否可以登录,如果不可以进行第二步改变用户名的密码。我的方法并不一定准确,可以多方参考,如果我的方法帮到了你,那就是我的荣幸!对于需要改两次密码,一次是root 一次是用户的密码这点还存在疑惑。会让你重新输入一下密码retype 接着输入就可以了。此时应该输入的是root的密码回车。

2023-06-23 16:22:40 3631 3

原创 Codeforces Round 877 div2 C No Prime Differences

至于怎么样的换,我们不妨先输出奇数行,再输出偶数行,但是有一个点我们需要注意,当n等于4的时候,这样我们输出顺序就变为了 行顺序:1 3 2 4,这样 3 2之差还是素数,所以我们还是先输出奇数再输出偶数,但是先从大的开始输出,也即行顺序: 3 1 4 2这样即可保证答案正确。题目n*m表格要求每一个数的上下左右之差均不为素数,画出两个图之后我们发现,如果按照正常顺序写的话,这个数的左右之差为1符合题意, 上下之差为m,这样的话上下之差可能符合也可能不符合;1.m不为素数,直接按原顺序输出即可。

2023-06-06 11:38:22 510 2

原创 Codeforces Round 875 div.2 problemB. Array merging题解

2.思路:因为要每次从a或b中取出第一个元素,那么想要让连续的最多,最好的办法就是a,b中连续最多。因为最终的数组源于两个数组,所以要进行更新。1.题意为每次从a或b中拿走第一个元素放入新数组c中,问在数组c中最多能有多少连续重复的数。

2023-06-01 17:16:09 866

原创 Codeforces Div.2 1798B Three Sevens题解

就是给几个数组,分别对应天数,如果一个数在第一天出现了,第二天没出现,可能就是这小子中奖了,然后答案就是输出可能的中奖名单。

2023-05-30 14:14:04 941

原创 关系网 (并查集)

我们认为朋友的朋友都算在一个部落里,于是请你检查一下,对于给定的两个人是否属于同一个部落。第一行包含三个整数n, m, q (1≤n,m,q ≤105) 分别表示一共有 n 个人,m 次合并,q 次查询。以前学区间合并的时候用区间合并写过,当时写了一大堆,结果也没过,现在就用并查集来写一下。接下来的 m 行中的每一行包含两个整数 A 和 B 表示 A 和 B 是好朋友。对于每次询问,如果 A 和 B 属于同一部落输出"YES",否则输出"NO"。接下来 q 次询问,每行给出两个数字 A, B。

2023-05-01 20:02:07 132

原创 Coins 概率+DP基础

(コイン 1, コイン 2, コイン 3) = (表, 表, 表)(コイン 1, コイン 2, コイン 3) = (表, 表, 表) となる確率は、0.3 × 0.6 × 0.8 = 0.1440.3 × 0.6 × 0.8 = 0.144 である。- (コイン 1, コイン 2, コイン 3) = (裏, 表, 表)(コイン 1, コイン 2, コイン 3) = (裏, 表, 表) となる確率は、0.7 × 0.6 × 0.8 = 0.3360.7 × 0.6 × 0.8 = 0.336 である。

2023-04-21 17:05:11 702

原创 Grid (基础DP)

给一个 H×W 的网格,一开始在左上角 (1,1)(1,1) 每一步只能向右或向下走,不能经过 '#' 格子,求走到右下角 (H,W) 有多少种走法。1.初始化,对于第一行和第一列,如果没遇到‘#’全部初始化为1,‘#’之后就不能走了也就是0。所以我们每次更新dp[i][j]时就对其进行取模,就可以避免这个问题。与洛谷的走方格题目类似,属于基础的DP问题,区别在于数据的范围。这题的数据比较大,所以要对1e9+7取模;3.题目要求,若该点为‘#’ dp状态为0。答案对 10^9+7 取模。

2023-04-20 12:39:08 243

原创 Find Small A HDU - 5980 java题解

现在,找出一组给定数字中有多少个字符“a”。请注意,这里的数字由计算机中的 32 位整数给出。这意味着,1 位表示 4 个字符(一个字符由 8 位的二进制数字表示)。这题之前用C++写过,今天刚学java,发现java 有byte 强制转换这个东西,不再用java写一下这题简直浪费!所以他来了,还是每次只看8位,如果是97,就记一个,然后把这8位移走;输入包含一组测试数据。第一个数字是一个正整数 N (1≤N≤100),然后是 N 个正整数 (1≤。输出一行,包括一个整数,表示给定数字组中“a”的数量。

2023-04-18 22:51:54 357

原创 Codeforces div2 Sorted Adjacent Differences 题解

我们发现第一个数字和最后一个数字之差最大,第二个和倒数第二个第二大,而最中间的我们先不看它。最好是按照小的数字在后面排列:3 4 2 5 1,也就是将中位数前面的数依次插入后面;其实也是大同小异,主要的一点区别就是,偶数没有中间那个孤立的数,所以直接插入就可以了;我们首先要做的就是排序,这样对于一个数列来说,左边的数就小于等于右边的数。最终我们拿出来这么一组数 {1,5}、{2,4}、{3};给一个数列,让你变换成相邻两个数之差不呈现递减的数列;当然,这是奇数的情况,那偶数呢?那么我们如何排列呢?

2023-04-18 09:03:41 175

原创 Codeforces div2 C - Ian and Array Sorting题解

To thank Ian, Mary gifted an array a of length n to Ian. To make himself look smart, he wants to make the array in non-decreasing order by doing the following finitely many times: he chooses two adjacent elements ai​ and ai+1​ (1≤i≤n−1), and increases both

2023-04-17 20:02:43 562

原创 洛谷 P1706 全排列问题

(next_permutation函数是 STL 中的一种函数,它可以生成序列的下一个排列。如果当前排列是最后一个排列,next_permutation函数会返回false。这个函数有两种使用方式,一种是不带参数,另一种是带一个比较函数作为参数。按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。主要用到algorithm 里面的 next_permutation函数。由 1∼n 组成的所有不重复的数字序列,每行一个序列。

2023-04-14 19:36:26 543

原创 洛谷 P8707 [蓝桥杯 2020 省 AB1] 走方格(动态规划基础)

这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行,从左到右依次为第 1 至第 m 列,每一个点可以用行号和列号来表示。状态转移方程:dp[i][j] = dp[i - 1][j] + dp[i][j - 1];1.边界:最上面一行,只能从左边来,最左边一行,只能从上边来,dp数组中全部初始化为1。现在有个人站在第 1 行第 1 列,要走到第 n 行第 m 列。从方格的左上角开始走,走向右下角,也即当前状态只能由左边和上边得到。2.题目要求:行和列均为偶数时,不能走,该点状态为0。

2023-04-14 19:32:58 564

原创 洛谷 P8597 [蓝桥杯 2013 省 B] 翻硬币

现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?要想变成一样的话,则二者不同的硬币数一定为偶数,且在这些偶数中正反面的个数分别占1/2。两行等长字符串,分别表示初始状态和要达到的目标状态,每行长度小于 10001000。数据保证一定存在至少一种方案可以从初始状态和要达到的目标状态。分析样例,想要变为相同的样子,则至少要翻硬币他们坐标之差次;表示反面(是小写字母,不是零),比如可能情形是。,如果同时翻转左边的两个硬币,则变为。

2023-04-14 19:24:45 266

原创 PTA 1069 微博转发抽奖(20points)

小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包。请你编写程序帮助他确定中奖名单。

2023-04-14 19:12:20 120

原创 The Euler function 数论(筛法求欧拉函数)+前缀和

The Euler function phi is an important kind of function in number theory, (n) represents the amount of the numbers which are smaller than n and coprime to n, and this function has a lot of beautiful characteristics. Here comes a very easy question: suppose

2023-03-28 20:22:13 133

原创 HDU Little Boxes C++高精

Little boxes on the hillside.Little boxes made of ticky-tacky.Little boxes.Little boxes.Little boxes all the same.There are a green boxes, and b pink boxes.And c blue boxes and d yellow boxes.And they are all m

2023-03-28 20:07:29 77

原创 HDU Find Small A(找‘a’)C++

众所周知,字符“a”的 ASCII 是 97。现在,找出一组给定数字中有多少个字符“a”。请注意,这里的数字由计算机中的 32 位整数给出。这意味着,1 位表示 4 个字符(一个字符由 8 位的二进制数字表示)。第一个数字是一个正整数 N (1≤N≤100),然后是 N 个正整数 (1≤。思路:题目给出一个字符由8位二进制数字表示,那么我们每次就看8位,如果得到的数为97sum++;只要是一个数大于等于97不就是包含了一个‘a’了?看看样例,的确如此!输出一行,包括一个整数,表示给定数字组中“a”的数量。

2023-03-28 20:03:34 85

原创 PTA L2-033 简单计算器(25points)C++栈

本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示,计算器由两个堆栈组成,一个堆栈 S1​ 存放数字,另一个堆栈 S2​ 存放运算符。直到两个堆栈都为空时,计算结束,最后的结果将显示在屏幕上。

2023-03-28 19:39:10 782

空空如也

空空如也

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

TA关注的人

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