摘要:
题目大意: 给定一些指令,计算需要多大的舞台。 这是一道大模拟!!! 只要遍历每次指令,然后判断是否摔倒,摔倒输出`-1`否则记录,最后求出面积就行了。 最后附上代码 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int xx[] 阅读全文
摘要:
题意 给定一个环形 01 序列,每次变化时,对于每个位置,如果前一个值是 1 ,则当前值翻转。求变化 B 次后的序列。 思路 由于 B 的值很大,所以如果对每一次变化进行模拟,效率非常低下。 不难发现,每一次变化后的状态完全是由当前状态决定的,而 N 的范围很小,所以可能的状态总数 2^N 也不是很 阅读全文
摘要:
一道递推 由于对于一个数 x ,可得 x+10-x=10(废话) 于是问题就变成了 0+m 次,然后 x+m 就变成 0+x+m (还是废话) 于是可以写一个递推。 首先对于函数 f(m) 可分为 m ≤ 9 和 m>9 ,然后可得出递推式结果为 1 或 f(m-9)+f(m-10) ,所以我们可以 阅读全文
摘要:
康了康唯一的题解,说没必要用DP,我就给出DP的解法。 这其实是道水题,唯一的坑是有可能楼上没有开的灯,坑了我们机房的一堆人( WA on test 4 ),剩下的就是DP。 我们用 a[n][0],表示第 n 层的第一个房间,用 a[n][1],表示第 n 层的最后一个房间。 这里提供一个收集型的 阅读全文
摘要:
觉得巨佬们考虑的太复杂了,其实可以用三维递归 (一维表示第几列,二维记录有多少个连通块,三维两个格子同色或异色),对于第 i 格,连通块的数量取决于第 i-1 个格子,如下图。 然后可得递归式: f[i][j][0] = (f[i - 1][j][1] \times 2 + f[i - 1][j][ 阅读全文
摘要:
主要题意: 有 n 个任务,必须在 si到 ti 之间完成,求每个任务最大可以完成多久(优先前面的最大)。 思路 就拿一个变量记录当前时间,然后贪心选择 a[i].t 和 a[i + 1].t 中的最小值,(应为至少也要给下一个任务留 1 的时间),最后做减法,输出即可。 代码 1 #include 阅读全文
摘要:
主要题意:有 n 个礼物,要两两合并,然后除以 k 最后求和最大。 思路:先加入每个数除以 k 的商(单独组成 k 的个数),然后全部 mod k 并存入数组,排序,最后双指针一个前一个后求两个余数可以大于等于 k 的两个礼物。 代码: 1 #include <bits/stdc++.h> 2 us 阅读全文
摘要:
ST表(Sparse Table)详解 在算法和数据结构中,ST表(Sparse Table)是一种用于解决区间查询问题的数据结构。它可以有效地回答各种形式的查询,例如最小值、最大值、区间和等。 简介 ST表的主要思想是通过预处理来加速区间查询。它使用倍增 DP 的思想将一个数组分割成多个子区间,并 阅读全文