随笔分类 - 思维
构造能力
摘要:原题链接:统计上升四元组 动态规划: 其中代表的是截止到当前下标为的数组下,大于等于的个数,维护的话也是非常简单的一个线性,可知当前下标下大于等于的个数是大于等于下标为状态下大于等于的个数的。如果$
阅读全文
摘要:最少得分子序列 给你两个字符串 s 和 t 。 你可以从字符串 t 中删除任意数目的字符。 如果没有从字符串 t 中删除字符,那么得分为 0 ,否则: 令 left 为删除字符中的最小下标。 令 right 为删除字符中的最大下标。 字符串的得分为 right - left + 1 。 请你返回使
阅读全文
摘要:思路:我们发现一共需要求两维东西,一个是宽度,另一个是高度,那么依据我们的经验,可以将高度首先进行一次排序。那么是由高到低排好,还是由低到高排好呢? 考虑由低到高,显然每一次加入一个东西时,该东西一定是最高的,该东西加入的那一排,高度一定是,但是有一个问题是我们还需要知道其他两维的
阅读全文
摘要:###Educational Codeforces Round 115 (Rated for Div. 2) #####A - Computer Game 思路:dfs暴力搜索。 const int N = 1010; int _,n; char a[3][N]; bool st
阅读全文
摘要:题目链接:D. Shichikuji and Power Grid 思路:这是一个完全图,如果没有发电站的限制,只靠电线就能通电,那么很明显是一道题目,只需要用Kruscal算法求一遍就可以,不过该题目表明必须间接或直接与发电站相连,不妨就设0点为一个超级发电站,初始时除了图上边
阅读全文
摘要:题目链接:F. Figure Fixing 思路:首先我们发现如果为奇数,那么一定,因为每次改变时是一条边两头改变,改变数总是偶数,所以奇数绝对不行,因为他问的是在进行了若干次操作之后能否可行的问题,所以我们可以通过找到最小变化量来解决该问题,这应该是个构造问题。
阅读全文
摘要:题目链接:Codeforces Round #727 (Div. 2) Problem.A Contest Start 思路:数学问题,看懂题目思路应该就出来了。单组复杂度 #include <algorithm> #include <cmath> #in
阅读全文
摘要:题目链接:I.Monitoring Ski Paths 思路:标记所有起点,有一个很明显的贪心就是从下往上找,碰到第一个标记的起点,就将其标记,但是这样会出现一个问题: 会发现如果先遍历5这个节点,会导致4被标记,然后答案就错了.这是因为6 - 7 4 - 8这两条边被6给标记后,4这个节点就没用了
阅读全文
摘要:题目链接:Face The Right Way 思路:枚举区间长度,我们选择从左往右处理,利用前缀和的思想,前缀和代表的是当前左指针指向的牛改变过多少次朝向,每一次满足左指针指向的牛,让他朝前方,然后如果当前牛朝后,那么我们就增加一次操作数,记住左指针从1到n,每一次满足左指针牛的要求,将差分数组中
阅读全文
摘要:题目链接:D. Armchairs 思路:我们将0的位置放在一个数组中,将1位置放在一个数组中,我们规定每一个1位置都是有序的,即顺序不可以被改变,表示处理完前i个人,且第i个人坐在第j个板凳上的最小花费,显然$f(i,j) = min_f(i-1,p) + dis(a[i],a[j
阅读全文
摘要:题目链接:M.Stone Games 思路: 先上图: 所以假设当前满足中所有元素都已经选完,那么我们发现,我们判断是否存在没有什么意义,只有判断中元素存在才有意义,选择就是为了能构成上述图中情况1。因为有一个
阅读全文
摘要:题目链接:D. Cut and Stick 思路:询问最少需要分成几个区间,如果该区间众数小于等于,那么显然答案是1。否则的话,我们需要尽可能的满足众数的要求,将尽可能多的众数放在一个区间里面,所以一个区间里面最多能够放的个数是其他数的个数+1,其余的
阅读全文
摘要:题目链接:D. Kill Anton 思路:先考虑他会怎么做才能最少次数还原串。我们发现对于一个串b若将它还原成串a,最好是每一次交换,都减少一个逆序对数量,这里的逆序对数量是以a为中心来说的。这显然是最优解,因为当b相对于a的逆序对数量减为0时,b=a。而且他的交换方式是相邻两个字符间进行交换,所
阅读全文
摘要:题目链接:F. Unusual Matrix 思路:我们可以发现,如果不等于那么他们变化的次数一定是奇数次,否则一定是偶数次,而该元素变化的总次数是行变化次数+列变化次数,所以我们通过就能将1行和1列的情况枚举出来,进一步,因为我们知道其他元素的
阅读全文
摘要:题目链接:D. Cleaning the Phone 思路:考虑先将物品按价值排好,然后我们从高向低拿,一旦有拿大于等于m价值的东西,我们就停止。这时候发现如果我们的物品体积都是1的话,现在肯定是最优的答案,现在拿的物品体积一定是最优的。当我们考虑到有体积为2的物品存在时,我们现在肯定是选择某些体积
阅读全文
摘要:思路:发现2x-y实际就是y关于x的对称操作,然后因为我们只有这一种操作,将所有元素放在一个数轴上可以发现,整体平移任意单位对于整体来说并没有影响。又因为我们发现如果原数组中有0,那么我们就可以通过这个操作来求出任意倍数的,进一步的,我们可以求出所有$gcd(x_1,x_2,...,x_n
阅读全文
摘要:题目链接:D. Max Median 思路:二分答案,因为直接找的话肯定是不行的,因为区间共有$\sum_\theta(n2)\theta(n)\(的时间内求出该数组有一段区间中位数要大于等于该数,这个
阅读全文
摘要:题目链接:1516C - Baby Ehab Partitions Again 思路:背包判断是否能够组成,如果不可以,答案显然,否则进行缩放,因为我们处理该规模/GCD的数比我们直接处理该规模的数的好处体现在,将该规模数除以GCD之后,绝对不可能全是偶数的存在,因为如果全是偶数
阅读全文