摘要:
简述 什么是树状数组呢,顾名思义就是树一样的数组,本质就是用数组模拟树形结构。 树状数组有什么用呢,树状数组可以实现单点更新,单点查询,区间查询和区间更新,维护的东西和线段树可以类比的,就是满足区间加法性质的属性,例如最值,和,gcd等。 树状数组可以干的东西线段树也能干,但线段树干的东西树状数组不 阅读全文
摘要:
题意 给你一个长度为n的字符串,要求往字符串右边添加尽可能少的字符串,使整个字符串为回文串。 思路 尽可能少就是添加 n-该数组的最大回文后缀 个就行。 首先跑一遍马拉车,求得num数组,num[i]为填充字符后的字符串第i位的回文半径,所以num[i]+i==len-1时,此时的回文子串是紧贴右边 阅读全文
摘要:
简述 Manacher算法,又称马拉车算法,它是用于求一个字符串的最长回文子串长度的算法,时间和空间复杂度为O(n)。 算法思想 求一个字符串的最长回文子串长度,我们如果用暴力来做,我们就要取出这个串的所有子串,然后判断这个子串是不是回文串,复杂度是n方的。 那么马拉车为何如此神奇能做到O(n)呢? 阅读全文
摘要:
题意 给你一颗树,要求构造最少的链,这些链覆盖该树的所有边,输出链数和每一条链的两个端点。 思路 我们很容易想到,这些链的两端应该是叶子节点,设叶子节点个个数为s,那么我们可以构造出s/2的链,使所有边被覆盖,那么现在难点就在,如果让构造的两个端点不是兄弟,例如 如果我们选择(4,5),(6,7)那 阅读全文
摘要:
题意 思路 手动算出n=1,2,3时答案为6,30,140的倒数,用oeis查询得到答案。 但正解是用分部积分: 我们预处理出1e6以内的阶层和逆元,注意逆元可以只处理maxn,然后逆推压复杂度。 AC代码 #include<iostream> using namespace std; typede 阅读全文
摘要:
题意 给你一个n,要求给出两个整数a和b,使得a+b=n且lcm(a,b)最小。 思路 结论:答案是k和n-k,k为n的最大真因子。 证明:假设a<=b,则lcm>=b,取最小则自然是lcm==b,lcm>b,最小的就是2b,2b>n故舍去,所以我们要构造lcm=b的解。 lcm=b故a整除b,则b 阅读全文
摘要:
题意 给你一个长度为n的序列,值在0到n之间,你每次都可以指定任意一个位置,使这个位置的值变成当前的mex,要求使整个序列变得非递减的,问输出每次操作的下标。答案可任意。 思路 我们考虑如何讲序列变成1 2 ... n这样一个特定的序列,这样就满足了题意的非递减。 我们将a[i]!=i的下标称之为失 阅读全文
摘要:
简述 文兰之地历历时1个月零5天,于7月6号22:05正式结项,在大佬黄啸宇,大佬郭嘉鸿的帮助下,我们制作了游戏剧情,完成了游戏的美化,丰富了游戏的玩法,真真正正把第一期游戏总体设计的东西全部开发出来了,本文将对我们的开发过程和团队协作予以展示。 游戏的基本开发 6月2日,第一个场景完成。 6月6日 阅读全文
摘要:
题意 给你n个数字,要求把它们分成k组,每组w[i]个,ans为每组的最小值加最大值的总和。 思路 很容易看出,如果一组只有一个人,那么把尽可能较大的分给他,最小值和最大值都会大,ans也会大,所有我们先把大的数分给那些只有一个人的组。 考虑剩下的情况,现在每组的最大值都是确认的(较大的每组一个), 阅读全文
摘要:
简述 在第一个场景我们输入好账号密码和昵称之后,点击开始游戏此时的游戏账号就应该插入到角色这个表里,本期的任务就是了解如何在java里插入数据以及查找数据。 jdbc的一些驱动类 DriverManager类 DriverManage类用来管理数据库中的所有驱动程序,是JDBC的管理层,作用于用户和 阅读全文