自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Junit单元测试

JUnit是Java中最流行的单元测试框架之一。它提供了一组注解和断言方法,用于编写和执行单元测试。单元测试是针对代码的最小可测试单元(通常是方法或类)的自动化测试。使用JUnit,开发者可以创建测试类,其中包含用于测试被测代码的测试方法。这些测试方法使用JUnit提供的断言方法来验证代码的行为是否符合预期。在运行测试时,JUnit会自动执行这些测试方法,并报告测试结果。

2023-06-19 18:53:48 746

原创 JVM虚拟机

在早期的JVM版本中,方法区被实现为永久代(PermGen),而在较新的JVM版本中,方法区被实现为元空间(Metaspace)。当加载的类数量过多、字符串常量过多或者动态生成类的数量过多时,方法区/永久代的空间可能会被耗尽,导致溢出错误。为了避免这些错误,开发者应该注意及时释放不再使用的对象、避免无限递归调用和过深的方法调用链条,并且合理配置JVM的内存参数,以确保程序能够正常运行而不发生内存溢出问题。在JVM中,有三种常见的内存溢出错误:堆溢出、栈溢出和方法区/永久代溢出。

2023-06-18 15:14:24 445

原创 String类源码

final修饰String类,表示String类不可变,不可继承,并且其中的成员方法不能被覆盖重写(补)实现了序列化Serializable接口(补)实现了用于比较两个字符串大小的Comparable接口,理解为String实现了Comparable接口,而Comparable接口使用了泛型来确定处理compareTo的入口参数实现了char的有序可读序列CharSequence(补)

2023-06-17 21:21:27 492

原创 天崩地裂【R】(擂台赛题目)

命题人:四毛拽根知识点:二维前缀和难度:中等时间限制:1000ms内存限制:65536KiB天崩地裂【R】Description“银龙重铸之日,骑士归来之时!我们是冠军!”11月7日凌晨,中国战队EDG3:2战胜韩国战队DK夺得2021英雄联盟全球总决赛冠军。EDG终于不负众望,时隔多年梦不减,用实力证明了自己,也圆了老粉的一个梦。在决赛的第一轮中,EDG打野jiejie的皇子敢于冲锋,有勇有谋,表现可谓完美。皇子的大招叫做天崩地裂,会在目标周围形成环形障碍,是开团的好技能。被

2021-11-10 22:17:01 53

原创 CF1478C Nezzar and Symmetric Array

题目链接题目大意:定义一个长2∗n2*n2∗n且每个元素都不同的数组aaa,对于每个i都可以找到一个jjj,使得ai=−aja_{i}=-a_{j}ai​=−aj​。又定义d[i]=∑j=12n∣ai−aj∣d[i]=\sum_{j=1}^{2n}\left | a_{i}-a_{j} \right |d[i]=∑j=12n​∣ai​−aj​∣,现在给出ddd数组,问可否构造出aaa数组。题目分析:容易看出,d数组必须有两个相同的元素,因为ddd的定义中有绝对值,所以aia_{i}ai​和−ai-

2021-08-04 17:36:14 121

原创 CF1498C Planar Reflections

题目链接明明没那么难,也不知道为什么做了这么长时间,吐了题目大意:如上图所示:一个能量为kkk的粒子,射入有nnn个反射板的空间,粒子每经过一个反射板,会有一个k−1k-1k−1能量的粒子被反射,当然k=1k=1k=1的时候,就不会反射出粒子。问最后可以有多少个粒子,答案对1e9+71e9+71e9+7取模。题目分析:这个是不能在多组输入前预处理出来的,因为nnn和kkk都相互牵制。题目给出的范围正好是可以让我们进行O(n∗k)O(n*k)O(n∗k)的dpdpdp的。用dp[k][n]dp[

2021-08-04 10:22:41 149

原创 CF1513C Add One

题目链接题目大意:称“将一个数上每一位的值+1”为一次操作,例如对于9393进行一次操作后的结果为104104。输入n,m,输出对n进行m次操作的结果。题目分析:很容易发现数字的每个位置上互不影响,所以可以分开单独考虑。转移方程为dp[j][i]=dp[j+1][i−1]dp[j][i] = dp[j + 1][i - 1]dp[j][i]=dp[j+1][i−1],dp[j][i]dp[j][i]dp[j][i]表示数字j:0 8j:0~8j:0 8进行了iii次后的位数。特

2021-08-03 21:03:24 146

原创 Parsa‘s Humongous Tree

题目链接题目大意:给出一个树,每个节点都会有一个权值范围,让你找到一中赋值权值的方案,使 ∑(u,v)∈E∣au−av∣\sum_{\left ( u,v \right )\in E}^{}\left | a_{u} - a_{v} \right |∑(u,v)∈E​∣au​−av​∣最大。输出最大值。题目分析:假设根节点的孩子都赋值了合适的权值,要使根节点距离每个子节点最大,那么需要使根节点距离子节点的中位数最远,那么不是在l上取,就是在r上取。所以我们就可以用dp[i][1/0],1表示在r上

2021-08-03 10:12:36 5301

原创 2021年ACM创新实践班&SDUTACM暑假集训选拔 7-5题解

递归思维题我们先除去第一条和第二条光线(因为由等边三角形可以得到光线1+光线2等于ab),剩下的很明显看出是递归。我们由图看到这需要递归的两条边都是在不断地缩小,而且满足x和y,递归后是y,x % y的关系。 新增加的边数等于2乘以(x - x % y) 的关系。(因为不能整除,所以要先减去多出来的部分。再乘以2)。还要注意:最后一步时,即x % y == 0时,我们观察一下,由等边三角形的规律,我们发现,增加的边数等于2 * x - y(因为y前面已经算入)。结合参考代码更好理解。参考代码:

2021-06-26 20:54:31 364 6

原创 K. Lonely Numbers

题目链接1600的题,不难,稍微一推就可以。题目大意:gcd(a,b),agcd(a,b),bgcd(a,b)gcd(a,b),\frac{a}{gcd(a,b)},\frac{b}{gcd(a,b)}gcd(a,b),gcd(a,b)a​,gcd(a,b)b​,如果这样的三个数可以作为三角形的边长(能看到这题,不可能有人不知道三个数可以组成三角形边长的条件是什么吧),那么a,b就是不孤独的数字,让你找出1—n中,孤独的数字的个数。分析:t组数据,t和n的范围都是1e6,所以需要预处理出来,然后

2021-05-31 21:15:25 179

原创 D. Genius‘s Gambit

题目链接标签是1900的数学构造题,感觉这个题不是很值这个分数。题目大意:给出a,b,k,问是否可以构造出两个满足以下条件的数x,y:x,y的二进制数都有a个0,b个1.x - y的二进制恰好有k个1可以的话输出,不可以就输出No。可以构造出11∗∗∗∗0∗∗\mathbf{11****0**}11∗∗∗∗0∗∗10∗∗∗∗1∗∗\mathbf{10****1**}10∗∗∗∗1∗∗*表示该位置的数相同。这样构造出x - y的二进制数最多可以有a + b - 2个1。这样也判断出

2021-05-26 21:27:25 112

原创 E. Arranging The Sheep

题目链接1400的 div 3 E题,难度不大。题目大意:给出一个字符串,“ * ” 表示羊," . "是空地。让你用最小的操作数把所有的羊排成一排。每次操作可以让一只羊左移或者右移(当然前提是移动到的地方是空地)。分析:题目题意好理解,思路也不难,稍微一推就出来了。可以设排好序的第一个位置是x,第二个位置就是x + 1… 并且每只羊不能越过另一只样。所以有了初始位置和末尾位置就可以列出来式子:(以sample1为例:**.*…)...

2021-05-26 19:58:35 109

原创 D. Maximum Sum of Products(dp)

最近在cf上刷math的题,这道题感觉挺好,1600的题。题目链接题目大意:给出n的长度的a,b两数组,你可以至多一次的反转a的子数组,使得∑i=1nai∗bi\displaystyle\sum_{i=1}^{n} a_i*b_ii=1∑n​ai​∗bi​最大化。分析:n的范围是5000,可以开个二维dp,第一维表示反转的子数组的初始下标,第二维表示子数组的长度(也可以直接表示子数组的末尾下标,目前先按照我当时敲的代码来讲,两者的效果是一样的),dp的值表示子串反转后,在这个子串对应的区间内的a

2021-05-25 17:55:21 189

原创 SDUT 2021 Spring Team Contest--- 18 F

题目链接题意:一个月有30天,要求办音乐会必须有k个音乐家。每个音乐家空闲的天数用二进制表示(第i位为1代表第i天空闲)。要求怎样选择这k个音乐家使得办音乐会的天数对应二进制和最大。(在某一天,这k个音乐家都有空闲时间,音乐会才可以举办)分析:题面翻译+理解还是不容易的,理解好题意以后,思路应该也是比较好出的。贪心做法:枚举这30天,也就是二进制的位置,如果有一个高位的天数会使至少k个音乐家有时间参加。那么答案中k个音乐家必然会在这中间选择。因为后面的天数就算都有时间,所得的二进制和还是没有当天

2021-05-22 20:24:39 139

原创 520 PTA钻石争霸赛 2021(部分题解)

这个题还是挺有意思的,当时看见题意后,第一反应是求前缀,然后暴力,但是n的范围是1e4,所以是会爆long long的(这样应该是少1分)。然后我就推了一下公式。以下是我的推导过程:(好久没在纸上写过程了,字不好,请见谅)接下来就是暴力了code:#include <algorithm>#include <bitset>#include <cmath>#include <cstdio>#include <cstdlib>..

2021-05-22 13:00:24 683

原创 CF166E Tetrahedron

题目链接小dp:fi 表示走了i步,位置在原点的方案数,gi 表示走了i步,位置不在原点的方案数。所以fi = 3 * gi-1,gi = fi-1 + 2 * gi-1。code:#include <algorithm>#include <bitset>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include &

2021-05-22 12:42:58 170

原创 CF25D Roads not only in Berland

题目链接样例输入1:21 2输出1:0样例输入2:71 22 33 14 55 66 7输出2:13 1 3 7分析:并查集code:#include <algorithm>#include <bitset>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <de

2021-05-21 20:43:34 92

原创 CF2B The least round way

题目链接sample:input:31 2 34 5 67 8 9output:0DDRR分析:题目没有说是输入范围在1 — n * n 的数,数的范围是到0 —109 。所以,就算找到一条合适的路径,直接把路径上的数相乘,判断末尾0的个数,这种方法是绝对行不通的。我们知道,只有是2的倍数和5的倍数相乘,才可以出现末尾0,所以我们计算答案的末尾0的个数,就是看这个数中有多少对<2,5>,并让其最小。众所周知,当其中一个数的数量最小的时候,另外一个数的数量不管多大都不

2021-05-17 21:42:40 116

原创 Codeforces Round #707 (Div. 2)C.Going Home (鸽巢原理)

题目链接样例:Sample1:62 1 5 2 7 4YES2 3 1 6Sample2:51 3 1 9 20NO题目大意:给出n个数字,求满足ax + ay = az + aw,(x,y,z,w不相同) 的一组数的下标。找不到就输出NO。思路:因为ai 的范围是[1,2.5 * 106],所以ax + ay = az + aw 的范围是[2,5 * 106] ,而某个数(这里表示的是每个1~n 的ai与1~n 的aj 的加和,i != j)在此范围内出现四次则必

2021-05-10 21:52:28 125

原创 SDUT 2021 Spring Individual Contest - A

A - All about that base题目链接题目大意:简单来说就是问一个等式在1-36进制中,哪个进制可以成立,一个都没有的话就输出 ”invalid“。然后10-35进制是用a-z表示,36进制是用0表示。分析:题目给出的范围描述是所以数在10进制下都是不超过long long级别的。所以我们就可以直接暴力判断1-36进制,可以先把当前的进制数用10进制表示,再看等式是否成立。注意题目说:在1进制的时候,只能有数字0,并且用数字1代表数字0。这个会wa在第4个样例。算是个大模拟,过

2021-03-03 20:17:10 125 1

转载 由数据范围反推算法复杂度以及算法内容

内容转自:AcWing大佬 y总yyds

2021-01-27 17:56:32 111

原创 全排列next_permutation函数

概述STL提供了两个用来计算排列组合关系的算法,分别是next_permutation(“下一个”排列组合)和prev_permutation(“前一个”排列组合)。两者都位于#include < algorithm >中。next_permutation:把两个迭代器(或指针)指定的部分看作一个排列,求出这些元素构成的全排列中,字典序排在下一个的排列,并直接在序列上更新。另外,若不纯在排名更靠前的排列,则返回false,否则返回true。prev_permutation:同理与next

2021-01-27 11:03:05 298

原创 龟速乘

待更新。。。。题目:AcWing 202#include <iostream>#include <algorithm>#include <cmath>using namespace std;typedef long long ll;const ll N = 1e3 + 100;const ll INF = 0x3f3f3f3f3f3f3f3f;ll mul(ll a, ll b, ll p){ ll res = 0, t = a % p;

2021-01-26 18:18:48 78

原创 North American Southeast Regional 2019

题目链接H–Levenshtein Distance题意:给出一个字母表,和一个字符串,你可以对字符串进行三种操作:添加一个字母,删除一个字母,替换一个字母(添加和替换的字母都必须是在第一行给出的字母表内),只能进行一次操作,求可以得到的新字符串,按照字典序从小到大输出。分析:题目给出的字符串范围是2<=|s|<=100,所以我们直接暴力就可。在字符串每两个字符之间添加字母表中一个字母(当然包括字符串第一个字符前,和最后一个字符后的位置),依次删除一个字符,同样用字母表内的字母替换字

2021-01-22 18:04:58 201

原创 Codeforces Round #694 (Div. 2)

A. Strange Partition题目链接题意:给定含 n 个元素的数组 a 和一个整数 x ,你可以将数组中任意相邻数组合并,试让你求出 ∑ki=1[a[i]/x] (向上取整) 的最大值与最小值。解析:因为求和为向上取整求和,我们知道,当一个数不被一个数整数的时候,所得的值会比应得的值大。比如5/2=2,但是向上取整后答案为3,。所以我们想要求其和最大,我们就要让数组中不能整除x的数最多,反之,值最小,就是让数组中能整除x的数最多。我们知道:能被整除的数 + 能被整除的数 = 能被

2021-01-19 10:46:06 98

原创 PTA“词频统计”

题目:请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词。所谓“单词”,是指由不超过80个单词字符组成的连续字符串,但长度超过15的单词将只截取保留前15个单词字符。而合法的“单词字符”为大小写字母、数字和下划线,其它字符均认为是单词分隔符。输入格式:输入给出一段非空文本,最后以符号#结尾。输入保证存在至少10个不同的单词。输出格式:在第一行中输出文本中所有不同单词的个数。注意“单词”不区分英文大小写,例如“PAT”和“pat”被认为是同一个单词。随后按

2020-12-25 16:28:47 636

原创 2020年SDUTACM暑假集训阶段总结

2020年SDUTACM暑假集训阶段总结一、学习内容--暑假新学了哪些专题,每个专题刷了多少题(1) 数学专题 vj专题 * 3 + ACwing(2) 动态规划 vj专题 * 2 + ACwing(3) 博弈 vj专题 * 2 + ACwing(4) 图论 ACwing上一些基础题(5) 数据结构 ACwing上一些基础题二、比赛内容总结(2020年7月27日-8月27日个人赛)(1) VJ先伟老师抓的个人赛(div1 or div2参加场次/总场次)...

2020-08-29 10:20:59 188

原创 SDUT 2020 Summer Individual Contest - 5(for 19) Div.1

这几天家里接二连三的下雨导致我有点感冒,比赛前有点头晕,但是这对比赛好像没有很大的影响。因为比赛开始后,所有不舒服的感觉都忘记了,可能这就是竞赛的魅力所在吧。比赛前一半时间,就a了一道水题(还WA了一次),其他的题目不是阅读量就很大,就是没有思路。所以最后也是勉勉强强的做出来3道题,原本自我感觉还良好,可是比赛结束后,看见了所有比赛的总榜,才知道被吊锤了...其实也好,知道了和大佬的差距。话不多说,先看我a的题目吧J - Time Limit 题目链接题目大意:在CCPC竞...

2020-08-08 15:18:05 224

原创 数论--素数

一、素数的概念质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数

2020-08-03 12:30:45 1577

转载 关于lower_bound( )和upper_bound( )的常见用法

lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。在从小到大的排序数组中,lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字

2020-08-01 09:25:45 224

原创 SDUT--组队赛心得总结

今天这是第二次组队赛了,因为疫情的原因,这学年的不少赛事都取消了,所以我们组队也比较晚。在家里的组队赛都是在群里进行讨论,虽然交流方式有些限制,但是队友们的积极性仍然很高。组队赛对比个人赛来讲,其实更加磨练人,提高人。不仅可以提高团队合作能力,而且在和队友的考论中也可以取长补短。因为竞赛的时间都比较长,个人赛末尾的时候难免会有“心有余而力不足”的感觉。而组队赛中,队员们可以互相鼓励,听着屏幕那边敲击键盘的声音,队员们为自己那小小的梦想而发出热火朝天的讨论声音。内心,何不触动?在比赛开始之后,

2020-07-30 22:24:16 225

原创 数论--快速幂

一提起幂,大家一定会不约而同的想到pow函数。前一段时间期末,帮外院的同学备考C语言的时候,他们有的函数题或者编程题会有特殊要求,就比如不能用某某头文件。如果不让用#include <math.h>头文件和pow函数。那就可能会就会...呐,来个循环。int sxpow(int a,int n){ int ans=1; for(int i=1; i<=n; i++) ans*=a; return ans;}学过计算机语言的都明白,是不是

2020-07-30 09:12:41 578

原创 Java-数组列表(ArrayList)

Java-数组列表(ArrayList) ArrayList类是一个特殊的数组--动态数组。 普通的数组是静态的,只有先确定了他的大小才能给它初始化赋值或者参与运算,而且这个大小一但初始化后是不能被修改的,所以当你刚开始不确定你要输入数据的多少时,普通的数组不容易实现(万一你输入的数据多于数组大小时,就会数组溢出,导致报错),为此java有了" 数组列表"(ArrayList)。(小声bb:其实我感觉ArrayList,甚至是Java的整个集合类,都有与C++里的STL类...

2020-05-21 00:11:31 4720 2

空空如也

空空如也

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

TA关注的人

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