- 博客(32)
- 收藏
- 关注
原创 Codeforces Round 966 (Div. 3) ABCDE题解
这题的数字范围比较大,这里给每个数字开一个数组存字符就不太现实了,这里在开一个vector数组check,在上一步进行的同时标记有哪些字母出现过,通过上一步的字符串满足 一个字符对应一个数字 ,这时再将它们对应的数字存到check里,将check排序后遍历,若出现check[i]==check[i-1];但我们逆向的想,实际上 从外向内不断找LR对来将其中的值加给ans 这一过程本质上与上面的结果是相同的,而且更好实现,故采用双指针+前缀和来遍历计算即可。思路:以字符串的形式输入,也是很有意思的一道题。
2024-08-14 10:58:43
447
原创 2024 ICPC ShaanXi Provincial Contest ABFGLM题解
思路:按题意模拟,字符串拆数字,数字转二进制,然后按需求输出即可思路:() 太累了不能选择手敲,而且伤眼睛。贪心思路:数字只能有11和1,11*1 比 11+1 要优,但不能出现11*11的情况在此基础之上,分出三种情况:1、长宽都是偶数:四周都是1,中间横纵 * 和 1 交错输出即可2、长宽一奇一偶:以长奇宽偶的情况举例,四周都是1,中间先全部都是 1 和 * 交替,这时可以发现出现了 11*11 的情况,这时在出现这一情况的行将一个 * 换成 + 就可以了。
2024-08-13 15:07:24
511
原创 河南萌新联赛2024第(四)场 BCDEFHI题解
思路: 除自己外排序最后的一半恶魔一个金币,剩下的都给自己,若他们不同意,那临近中部的恶魔将在下一个恶魔分配的时候不会给他们金币,所以他们不得不同意,这样自己分得的即为最大。思路:因为只有n-1条道路,所以用dfs即可得出最短路,这是把道路网看成一个树,y就是根节点,答案即为 x的子树数目*(y的子树数目-在x到y路上的y的直子节点数目)思路:素数中只有2是偶数,二进制末位为0,所以左端无2的情况下与运算无法得到0,有2的情况下答案即为 素数的数量-2 ,注意特判左右都为2的去情况。
2024-08-09 10:00:09
468
原创 Codeforces Round 964 (Div. 4) ABCDE题解
思路:第一步就是要变换出第一个0,由于在此过程中会有另一个数不断x3,所以实际要消耗的次数要x2,数组中的其他数就可以先不用处理,接下来就是要看每个数要除几次3才能变为0 显然的,一个个数判断耗时太多了,会TLE 所以我们预处理出一个3的幂次表(从题目中给的范围来看,处理到3的12次方就足够了) 记录下第一个数在幂次表中的位置之后,开始遍历幂次表,与数列右端进行比较,然后直接将 下标*数量 加给cnt就好了,大大减少耗时,但要注意边界条件的判断。思路:双指针,一个指着s,一个指着t,遇到‘?
2024-08-07 16:37:43
390
原创 SMU Summer 2024 Team Round 2(2024CCPC上海) AEJLM题解
思路:(俞姐NB系列) 从6的样例中想到取成一个2x3的矩阵,蛙全部横着走,鸟全部竖着走,答案取两个cnt的min, 俞姐提供进一步思路 对于输入n 应该尽量凑出接近 sqrt(n) 的矩阵,从而使最后答案最大。思路:数据量不大,直接枚举每一个点,再枚举除上一步枚举到的点以外的所有点作为一个正方形的另一点,通过公式推出剩余两点看其是否满足题意,若满足则 arr[该点]++思路:答案实际上只有 -1 0 1 2 3 5种情况,选择长度为1 2 3 4的四种子串情况遍历判断即可,都没有则输出-1。
2024-08-07 10:38:02
231
原创 SMU Summer 2024 第4周周报
在答案的数据范围不大并且判断条件不复杂时可以采用,配合inline可进一步减小耗时。可以便利的进行区间查找和区间修改的数据结构,本周也是初步学到了。将数组排序后进行二分,判断mid是否满足条件即可。
2024-08-05 09:42:01
155
原创 (GPLT)上海理工大学校内选拔赛 ABCDEF题解
思路:采用BFS即可,但需要注意,因为国际象棋和中国象棋共用一个棋盘,但走的规则不同,所以棋盘的矩阵和每次走的标记矩阵要分开储存,并且因为有多次询问,所以每次BFS时都要重置重新初始化标记数组。所以只需将n转化为其对应的二进制字符串,在遍历字符串,若下标x的地方为1,则ans += pow(k,x)思路:贪心,大的数要尽可能与小的数相乘,所以将数组弄成两个,一个降序一个升序,同下标的相乘再加给ans即可。思路:通过观察可以发现,数组中每个数其实就是其下标的二进制位从2的x次方转到K的x次方,
2024-08-03 10:57:34
343
原创 河南萌新联赛2024第(三)场:河南大学 BCEFJL
首先,二进制下的末尾有n次累加就会变化n次,若末尾最初为0,则末尾的前一位会变化n/2次,反之则会变化(n+1)/2次(相当于末尾最初就变化了一次) 据此可以推出每一位都满足这个推算,不断加给ans即可。思路:数据量不大,合理存储之后直接搜索就好,公钥和私钥用map来存,用户和其拥有的私钥开一个由string和vector组成的结构体来储存,ip地址下就是map思路:直接scanf按格式输入a,b,c,d,然后判断四个数是不是都符合0~255即可。思路:四个循环嵌套模拟即可。
2024-08-01 20:34:16
409
原创 SMU Summer 2024 Team Round 1 ACGHJK题解
思路:三个数相加即可 (思路:若所有数加起来与s相等则可无人说谎,若不等则最少1人说谎。
2024-07-31 10:48:01
334
原创 武汉工程大学2020GPLT选拔赛(重现赛)L1-1-L1-8
思路:将L转化成二进制来处理,因为没有给出2^0长度的木棍,所以L为奇数时一定不行,随后看L的二进制最高位是否不大于2^k即可。思路:建立一个字符串,然后十进制转二进制,注意计数,按计数反转后再二进制转十进制即可。思路:scanf printf按格式输入输出即可,注意%的转义是%%思路:将数组排序后进行二分,判断mid是否满足条件即可。思路:按题意换算即可,注意判断是否为整数。思路:将时间统一转化成秒数进行判断即可。思路:硬模拟............思路:用两个for循环输出即可。
2024-07-31 09:37:14
253
原创 SMU Summer 2024 Contest Round 7 ABCDG
题意:给出一个数组,可以给出一个不小于2的数K,令数组中的每个数对其进行取模运算,问能否操作至数组中每个数相同思路:因为K不能等于1,所以可以分成数组中 有1 和 无1 两种情况对于无1的情况,可以从最大数开始对其自身取模变为0,易得最后数组中所有数都将为0,一定满足题意对于有1的情况,若数组可满足题意,则最后全为1,所以操纵策略为从最大数开始对 自身-1 的数取模,此时就可以发现,若出现了两个相差1的数,则一定会出现0,故无法达成条件将数组排序之后对三种情况判断即可。
2024-07-26 20:39:46
263
原创 河南萌新联赛2024第(二)场 AEFHIJ题解
思路:将第二个字符串后再加一个第二字符串,方便 循环同构的操作,枚举出现过的字母,每次枚举中将两个字符串中非当前枚举字符的字符变为 ‘*’ ,然后判断第一字符串是否为第二字符串的子串即可 注意:这里用find()会TLE,所以要使用kmp算法来解决。思路: 用map来维护,map自带排序,vector可以方便的排序与删改。思路:模拟行列式的运算即可,注意n==m的情况,ans的初始值不能设成0,应设成一大值。究极整活题.........
2024-07-25 09:19:15
352
原创 SMU Summer 2024 Contest Round 6 ABC题解
题意:给一个由数字组成的字符串,可在其中加任意个‘+’ 求所有情况之和思路:二进制枚举,有s个数字就有2^(s-1)种情况。
2024-07-23 10:26:06
204
原创 SMU Summer 2024 Contest Round 5
思路:将小崽子和大人分到两个数组中排序,然后枚举每个体重大小,用lower_bound();求得正确数量不断用max();求出答案。
2024-07-22 15:11:52
316
原创 河南萌新联赛2024第(一)场 AFGHIK题解
思路:逆向求解,循环此算法:(奇数--,cnt++,偶数/2,cnt++,到2时cnt++,直接-2)
2024-07-18 09:39:41
350
原创 SMU Summer 2024 Contest Round 4 ABDE题解
题意:求有多少组(i,j) 使得A[i]==B[C[j]]思想:实际作为数组储存的只有B数组,A与C都类似指令的作用,A在输入的时候统计每个数字的个数存在数组a1中,C输入时则是作为下标,统计能从B中调出来的各个数字的个数,存在数组a3中,最后答案即为 a1与a3下标相同元素之积 的和。
2024-07-16 20:00:21
285
原创 SMU Summer 2024 第一周周报
学习使用了 以二分查找为底层的 lower_bound 和 upper_bound 函数强化了Dijkstra算法在题目中的实际应用学会了while(scanf("%d",&N)!=EOF)这一写法,用于无输入结束限制的题目中学会了素数表的生成,可以在一些题目中拿来代替bool isPrime()函数,以优化时间复杂度。
2024-07-14 16:26:13
444
原创 SMU Summer 2024 Contest Round 3
哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.做好了这件实事,就能说明这个猜想是成立的.由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.输入描述输入中是一些偶整数M(5
2024-07-13 20:46:48
391
原创 2024 暑假友谊赛-热身1 ABC题解
据题知,10x10矩阵相当于一个有向图的邻接矩阵,故考虑用Dijkstra算法求得每点到1点的最短路,最终答案即为 下方HxW矩阵中所有非1与-1点到1点最短路大小乘该点数量 之和 ,在这里用一个数组来存每个点的数目。
2024-07-13 15:03:34
313
原创 SMU Summer 2024 Contest Round 1 部分题解
根据题意知,最终赢的概率即位 骰子在每一面赢的概率之和 , 而在每一面的情况中, 赢的概率就相当于连续n次硬币都为正面, 在n次之后分数大于K时就可以停止相乘, 故每个面赢的概率即为,1/面数 * 二分之一的n次方。
2024-07-13 13:23:23
347
原创 SMU_ACM 3.25.2024——3.31.2024
人际关系,地区通信,大多就是无向图用形如map[a][b]=x;这样来储存。图中的联系大多即为下标与数据的联系,常用for(int i=1;i<=n;这样的方式来初始化。
2024-03-31 15:45:57
1256
1
原创 SMU_ACM 3.18.2024——3.24.2024
此题做过两遍,虽然难度不高,但之前是用to_string();转换数据来进行处理,整个过程还是有些繁琐。比较好的办法还是采用取模,因为月份始终只在后两位数,对100取模就可以很好的将其分离出来,分离之后在除100就可以再把年分离出来,从而能更方便的处理。
2024-03-24 16:24:40
309
1
原创 SMU_ACM 3.4.2024-3.10.2024
核心:左移枚举所有情况+按位与判断情况存不存在在有多个变量,每个变量仅有 用与不用 两种情况时,用此方法来列出所有情况@离散数学有m个变量于是有2的m次方种情况,用位运算的方式表示即为:1
2024-03-09 17:06:13
344
原创 2.19.2024-2.25.2024(SMU Winter 2024 the fourth week)
在对题目进行分析时习惯性的想让输入的数据一直保持初始状态,再在其基础上做处理。但当最后需要的结果与输入数据的初始状态无特别关联时,直接对输入数据处理,而不在意对其改变,应当作为一种优先的思考方式。
2024-02-25 11:27:56
771
1
原创 2024 around the Spring Festival(SMU Winter 2024 the third week)
警惕,首先进行总结归纳,很有可能具有数学规律,并不需要暴力或者算法通过分析题目和例子可以发现求最长字符串字符数即可仅与个数奇偶相关答案为2的 个数 的幂减一。
2024-02-18 15:56:34
392
原创 1.29.2024-2.4.2024(SMU Winter 2024 the second week)
用前缀和使最终运算更为简便,但while(Q--)里的代码单独写成solve()再在while调用就会TLE(),作为日后TLE后的一种考量。
2024-02-04 12:01:58
599
1
原创 1.22.2024-1.28.2024(SMU Winter 2024 the first week)
根据题目意思分析出砝码的四种状态,分层运算,逐层累加到最后一层。利用二维数组记录一件物品拿或不拿的情况。(尝试用bool直接弄但数据太大。不使用二分法(长数据TLE。通过已知寻找根节点,递归。
2024-01-28 11:11:55
370
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人