随笔分类 - 思维题
摘要:C - Points, Lines and Ready-made Titles 把行列看成是图上的点, 一个点(x, y)就相当于x行 向 y列建立一条边, 我们能得出如果一个联通块是一棵树方案数是2 ^ n - 1 否则是2 ^ n。 各个联通块乘起来就是答案。
阅读全文
摘要:D - DZY Loves Strings 思路:感觉这种把询问按大小分成两类解决的问题都很不好想。。 https://codeforces.com/blog/entry/12959 题解说得很清楚啦。
阅读全文
摘要:B - Free Market 思路:这个题怎么说呢,迷惑性很大,题目里说了交换了两个集合的时候如果有相同元素不能交换,感觉如果没 这句话能很快写出来, 其实当交换的两个集合有重复元素的时候只要交换那些不重复的就好啦,这样就相当于能 交换两个有交的集合,那么对于两个集合S1, S2我们不需要去考虑有
阅读全文
摘要:B - Destroying Roads 思路:这么菜的题我居然想了40分钟。。。 n^2枚举两个交汇点,点与点之间肯定都跑最短路,取最小值。
阅读全文
摘要:题目大意:有n个灯泡,m个按钮,(1 <= n, m <= 50),每个按钮和ki 个灯泡相关, 按下后,转换这些灯泡的状态,问你所有2^m的按下按钮的 组合中亮着的灯泡的数量的三次方的和。 思路:要是将所有灯泡混在一起算很难算,我们先考虑 所有2^m的按下按钮的 组合中亮着的灯泡的数量的和, 我们
阅读全文
摘要:E2 - Median on Segments (General Case Edition) 题目大意:给你一个数组,求以m为中位数的区间个数。 思路:很巧秒的转换,我们把<= m 数记为1, >m的数 记为-1, 求其前缀, 我们将问题转变成求以<= m 的数作为中位数的区间个数, 答案就变为an
阅读全文
摘要:托米的简单表示法 思路:网上说dfs建树然后树形dp,我不是很懂。。。 我的写法是,扫一遍字符串找到每个括号的匹配括号,然后给每个括号一个标,每个匹配括号的 宽度为两者在字符串中的下标差值,高度为它们两个之间的括号的标号最大值-自身的标号 + 1,然后算就好啦。
阅读全文
摘要:思路:我刚开始是想旋转四次坐标,每次用bit计算每个点左上角的点到这个点的距离,TLE了。。。。 这种算曼哈顿距离的可以将x 轴和 y 轴独立开来,分别计算。
阅读全文
摘要:E - Nastya and King-Shamans 题目大意:有n个数,每一次操作更改一个数,每次操作之后问你是否有一个数等于其前面所有数的和。 思路:好题,想了很久没想出来,看了题解,主要思想就是满足条件的数会成倍增长,如我们知道了 1 - i 里面没有满足条件的数, 那么我们找一个最小的 j
阅读全文
摘要:D - Nastya and a Game 题目大意:求有多少个区间满足 区间的积/区间的和 = k 思路:我们很容易就能想到我们要在区间的积上做文章,因为如果数组里面每个数都>= 2那么 最多连乘不超过64次后面就不可能存在答案啦, 那么我们把连续的一段1缩成一个点,然后暴力枚举区间,直到区间的值
阅读全文
摘要:思路:感觉脑洞好大啊。。。 因为每两个砝码其中一个都是另一个的倍数,我们可以知道砝码的种数很少,我们将所有容器的 容量都转换成用这些砝码的重量的进制表示,然后将所有砝码排序,然后贪心地取,取到不能再取。
阅读全文
摘要:G - GCD Counting 思路:我猜测了一下gcd的个数不会很多,然后我就用dfs回溯的时候用map暴力合并就好啦。 终判被卡了MLE。。。。。 需要每次清空一下子树的map。。。 通过代码
阅读全文
摘要:E - Thief in a Shop 题目大意:给你n ( n <= 1000)个物品每个物品的价值为ai (ai <= 1000),你只能恰好取k个物品,问你能组成哪些价值。 思路:我们很容易能够想到dp[ i ][ j ]表示取i次j是否存在,但是复杂度1e12肯定不行。 我们将ai排序,每个
阅读全文
摘要:思路:因为被占奇数次的点只有一个, 那么我们可以将数轴分成两部分,奇数次点之前的前缀和为偶数,之后的前缀和为奇数, 然后就可以二分了。
阅读全文
摘要:D - Longest Subsequence 思路:枚举lcm, 每个lcm的答案只能由他的因子获得,类似素数筛搞一下。
阅读全文
摘要:E - Superior Periodic Subarrays 好难的一题啊。。。 这个博客讲的很好,搬运一下。 https://blog.csdn.net/thy_asdf/article/details/49406133
阅读全文
摘要:思路:好难想啊, 考虑到应该从每个数字只有5个数字下手, 但是不知道到底该怎么写。。 首先我们将第一个串按数字的种类分类, 每一类里面有5个, 然后将第二个串里面的数字一个一个加,如果一个加入的第 i 个数为5, 那么也只会对第一个串中的 5 产生影响, 如果第一个串中5的位置为pos, 那么显然d
阅读全文
摘要:这题好难啊! 我好菜啊! 思路:对于最多线段不相交, 我们可以按左端点sort之后,贪心取。 但是这个题要求选取的线段排序之后序号的字典序最小。 那么我们如果按序号贪心地从大往小往里放, 那么对于第k个线段,我们考虑放进去之后是能是还能保证所取的线段个数能 达到最大, 我们考虑函数cal(l, r)
阅读全文
摘要:B - Clique Problem 题目大意:给你坐标轴上n个点,每个点的权值为wi,两个点之间有边当且仅当 |xi - xj| >= wi + wj, 问你两两之间都有边的最大点集的大小。 思路:其实问题能转换为一堆线段问你最多能挑出多少个线段使其两两不相交。。 对于一个点来说可以变成[x -
阅读全文
摘要:题目大意:有一棵树根为1,刚开始每条边的权值为1, 现在有m + n - 1 个操作, A :x y , 将x和y相连的边权值变为1, W:x, 询问x到1路径上的权值和。 思路 : 方法一: 用dfs序建立树状数组, 每个点入栈位置的值为1, 出栈为-1, 询问的值就是sum( l [ x ] )
阅读全文

浙公网安备 33010602011771号