随笔分类 - 思维
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 一个for循环之后。 下一个写代码的地方一是从(x+1,y+1)开始的 然后如果写完了一个simple statement 下次就有(x+1,y),(x+1,y 1),(x+1,y 2)..(x+1,0)这些位置可以写下一行的代
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 一定在这里写完思路再敲代码!!! 处理出5个工作单元在哪些时刻会被用到。 设为initstatu 因为每次都会面临之前已经用了一段程序,而现在要走下一步的情况 但有一些地方是肯定已经不能走了的。 我们可以预处理出来哪些地方是可以
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 从根节点开始。 显然它是什么颜色.就要改成对应的颜色。(如果上面已经有某个点传了值就不用改 然后往下传值。 【代码】 cpp include using namespace std; const int N = 1e4; int
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 显然只有当a[i]和a[i 1]都大于1的时候才会有不同的情况。 a[i] = a[i 1] 且a[i 1] =2 则第i 1层的a[i 1]个节点,每个节点下面接一个第i层的节点. 然后剩下的a[i] a[i 1]个都放在第i
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 1. n为偶数。 l = 1, r = n (l,r)放在一组 l++,r 新的l,r放在另外一组 直到l+1==r 这个时候,判断两组的和,如果一样的话,分散在两组 差为1否则差为0 2. n为奇数 l = 2,r = n (
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 让N乘2 a 然后看一下位数是多少。 假设有x位(x =2) 则(0..(a%10 1) ) + (99..9)[x 1个]都是合法的 转化为1..N里面有多少对,它们的和为x x总是为奇数 若x 1n 则让temp = x n
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 尺取法+二分。 类似滑动窗口。 即左端点为l,右端点为r. 维护a[r] a[l]+1总是小于等于m的就好。 (大于m就右移左端点) 然后看看里面的数字个数是不是小于k; 不是的话让l..r中最右边那个数字删掉就好。 链表优化一
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 借鉴网上的题解的。 思路是。 用"标准化"的思想。 确定基准点(0,0) 然后假设(0,0)是第一个连通块。 然后通过大小为1的连通块(0,0)得到所有大小为2的连通块。 然后得到所有大小为3的连通块。。 以此类推 这样可以避免
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 1.N/s1 s1 v2的话。 可以想见,如果第二种物品的数量超过了s1的话,显然可以把它占的体积都用来买物品1,因为那样更优。 则我们第二种物品最多只要枚举到s1就可以了。 同理s2 v1 【代码】 cpp / 1.Shoud
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜索。 每次抽动操作最多只会让中间那一块的区域离目标的“距离”减少1. 以这个作为剪枝。 枚举最大深度。 就能过了。 【代码】 cpp include include include include include us
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 枚举删除第i个数字。 想想删掉这个数字后会有什么影响? 首先,如果a[i]如果是a[1..i]中最大的数字 那么record会减少1. 其次。 对于任意一个a[j],且i 【代码】 cpp / 1.Shoud it use lo
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 模拟。 看看Y左边或右边的点个数是否 【代码】 cpp include using namespace std; const int N = 1e5; int a[N+10]; int main(){ ifdef LOCAL_D
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜。 很容易想到,最多只要搜8层就可以得到答案了 最多8下肯定可以还原。 则枚举一下最大层数。然后做个深搜就好。 优化。 设0..n每个数字的后继不为a[i]+1的个数为cnt 则每次操作显然最多只能减少3个cnt..
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 三维显然可以缩短为2维。 只要知道a,b瓶中的水量,c瓶中的水量减一下就能得到。 则设dis[a][b]表示a,b瓶中水量为a,b时,水量的移动量。 然后做一下二维的spfa. 最后枚举a,b得到对应答案就好。 【代码】 cpp
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 秤砣都是在叶子节点。 可以把它看成一个二叉树。 则我们每次只需要选择任意两个"节点",让他们组成一棵二叉树就可以了。 然后虚拟出来一个节点,代表这个子树的根节点。 每次维护一下每个子树的左子树最左端离树的中心距离以及最右端离树的
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 每次枚举增加一个字符; 然后看看新生成的字符的后缀里面有没有出现连续子串就好,前面已经确认过的没必要重复确认 (枚举长度为偶数的一个后缀就好) 是输出完第64组且保证有第65组才要输出一个换行. 【代码】
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 每次遇到0的时候,看看当前累计的delta是多少. 如果大于0,则temp = d delta; 小于0,取temp2 = min(d max{delta}(这里max指之前一段0和0之间的区域),temp); 然后delta显
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 枚举一个秤砣的重量不变。 某一个秤砣的重量不变之后。 所有秤砣的重量就固定了。 因为它的兄弟节点的重量要和它一样。 则父亲节点的重量就是这个节点的两倍了。 以此类推可以得到所有节点的重量的值。 第i层应该的重量都是相同的。 用一
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 把gcd(a[1..n])放在输入的n个数之间。 【代码】 cpp / 1.Shoud it use long long ? 2.Have you ever test several sample(at least therr)
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 逆向做一遍bfs. 得到终点到某个点的最短距离。 这样,我们从起点顺序的时候。 就能知道最短路的下一步是要走哪里了。 这样,我们从起点也开始做一遍bfs. 然后根据逆序的bfs得知下一步该往哪些点走。 每次优先走最小的字典序边即
阅读全文

浙公网安备 33010602011771号