- 博客(11)
- 收藏
- 关注
原创 【记录】第十周
虽然去掉memset能过6个点,加上就只能过2个,但是我还是觉得应该是代码这个样子……鬼知道为什么dfs会无缘无故把vis变成1啊喂。【洛谷P3386】二分图最大匹配。
2023-12-18 00:47:35 358 1
原创 【记录】第七周
一开始采用的是在arr里边搞两层循环每一格地搜,但是一个是怕TLE,再就是不知道为什么会输出好几遍同一个解,所以最后改成每一层递归是一行,在下面搜索该行的每一列。最开始TLE了四个点。最后受评论区启发删去了每次return后重新改为'.'的操作,毕竟已经确定这个格子连着的所有路都走不通。
2023-11-23 20:20:35 429
原创 【记录】第五周
但重点是当次数给了0时是表示无限,在写完一大堆特判后发现题解佬巧妙的利用t<1000这个条件,把这种情况下的次数改成一个够大的数,妙啊。因为没有给出“价值”这一指标所以把体积当成dp[j]的值,多少有点微妙但还真就这样。显然,这一道题重点是把最大可看的次数用二的幂表示。无限背包,所以比起上边这个要从v最小开始循环。然后把各个量改成合适的,比如longlong。
2023-11-12 23:20:11 43 1
原创 【记录】第四周
最大上升序列的思路是:只要比序列里的最后一个更大,就接在后边:如果不比最后一个大,就在前面的序列中找到不如这个数大的序列,替换为这个数列的最后一个。前面的数尽可能小,这样就能保证后面接上来的数尽可能多。某个数加上前面已取序列的和后,如果小于等于这个数,那还不如不加前面那些,所以这是数列中断的标志。分好各个数列后再取和最大的那个就行。想了半天没搞懂怎么在【B3637】最长上升子序列 的基础上加二分,看题解发现根本不是一个方法(呜)再写一遍思路很水,毕竟课程里明明白白写着,所以跳过了思路直接上代码。
2023-11-05 23:29:56 36
原创 【记录】第三周
对于n个数,pop和push两个操作一共进行2n次,分别记为1和-1,则操作序列应满足任意前k项之和大于等于0,且2n项之和为0。列举几个发现1 3 5 ……当每一次最多迈k个台阶,所以到第n阶的方式数就等于到第n-1阶、第n-2阶……第n-k阶的方式数之和,即f(n)=f(n-1)+f(n-2)+……递推公式 f(n)=f(0)*f(n-1)+f(1)f(n-2)+。+f(n-1)f(0)易知,n=1时,有1个数列。由于n=18时分母过大爆了,所以不好用。所以f(4)=f(2)+f(1)+1。
2023-10-29 22:14:58 38
原创 【记录】第二周
再往后,为了能取更多,必须按结束时间的先后排序,再判断开始时间是否满足大于等于上一个的结束时间(试了一次,发现若结束为7,则下一个比赛可以是开始时间为7的)。该情况下,所有人等待时间之和为1×9+12×8+33×7+55×6+56×5+99×4+99×3+234×2+812×1=2919,符合样例。方法2:不需要排序(代码里忘删了),分别求出所有人下桥的最大值和最小值,然后取最大(最后下桥的)。总的时间为最后下桥的人的时间,又因为速度为1,所以相当于求最后一个下桥的人到0或n+1的距离。
2023-10-21 23:46:25 54 1
原创 【洛谷】进击的奶牛 &快速幂
至于为什么flag里面最后一个if判断的式子,以及main里边这个while的判断要用等号,没搞懂,插个眼先。奶牛这个题实际就是枚举n,判断是否能将奶牛放进去,然后求最大。但是这样做肯定超时,所以用二分模拟这个过程。快速幂,在递归求幂的基础上疯狂取模,看见就取肯定没毛病,除非超时。
2023-10-15 23:27:20 119
原创 【洛谷】等差数列
还有一个翻车的地方,就是排序,我把数组存在a[1]到a[n],但是排序差点写成从sort(a,a+n),前车之鉴,前车之鉴。但是,最小的公差并不是这些差里面的最小值,如:2 4 7,一个是2,一个是3,但是这个数量的公差应该是1。最初思路,排好序求最小公差然后求最大和最小间差多少。所以应该求所有差的最大公约数,当然在不是0的前提下。
2023-10-15 18:07:53 68
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人