【8.28校内测试】【区间DP】】的更多相关文章

感受到了生活的艰辛QAQ...这才是真正的爆锤啊...(因为t1t3还没有理解所以只能贴t2叻QAQ 区间DP...爆哭把题理解错了,以为随着拿的东西越来越多,断点也会越来越多,出现可以选很多的情况QAQ,然而是不会的,自始至终只会有一个断点,哥哥和妹妹取都只有两个方向,而妹妹还是强制选择的QAQ. 所以把环展开就是一个区间DP叻,枚举长度(长度作为层数).区间,因为是从长度小的转移到长度多的,区间根据长度的奇偶性可以判断当前该谁拿,如果是妹妹,就在两端取大的更新区间(不加dp值),如果是哥哥就…
大眼一看最下面的题意解释的话,发现这和洛谷P1310表达式的值挺像的,大概都是给定一些运算符号,让最后的表达式为true的概率,为false的概率啥的QwQ~: 然后这个题嘛?就是在所有的运算符中提溜出一个作为最后一次运算的运算符,然后我们去算这个运算符左边的那一堆式子,然后再算右边那一堆式子,最后再算一下最后一个运算符对应的运算就好啦! 那么怎么算这个运算符左边的式子和右边的式子呢?我们再从左边的式子中找出一个运算符最为最后一次运算的运算符,然后算它左边的式子,算它右边的式子…… 我们发现这就…
考试的一道附加题~ 一看题目描述:把区间[l,r]里每个数异或上x,求区间[l,r]里所有数的异或和,这明显的要用数据结构或RMQ吧. 恩,所以正解就是线段树啦,至于树状数组行与否,不知道~ water_lift:这不是sb题嘛?线段树板子题都不会?把加法操作改成异或操作不就好啦? 其实好像真的是这样的,将加法操作改成了乘法操作: 然后你会发现自己只得了20分的暴力分,没错!相当于没写线段树! 因为线段树区间修改需要用到一个非常重要的东西: 懒标记 为什么要用到这个,直接暴力递归不好吗? 问得好…
看到这个题之后,一个很暴力很直接的想法就是贴上题目中的代码然后交上去走人,但是很显然这是会TLE+MLE的,想想谁会这么傻把主要代码给你QwQ~: 其实这段代码是想告诉你一件事:用序列中的大数减去小数,直到序列中所有的数一样为止! 这就意味着最后的答案一定是某个数乘以 n! 证明: n=2的情况 想一想n=2的情况.这时这段代码的任务就是:用两个数中较大的数减去较小的数,一直到两数相等为止. 这不就是更相减损术吗! 代码如下: #include<iostream> #include<cs…
这题面有点难理解,建议直接跳到题意解释那一部分(虽然我觉得解释的不大对,但按照解释来做确实能AC): 按照“题意解释”的思路来思考这个题,那么就十分的简单了: 1.首先要读入这个字符矩阵,可以用cin(会不会TLE不知道),这里我用的是getchar读入: 2.从‘ * ’开始一遍广搜,记录一下每个‘ # ’被搜索到的时间,直到所有的点都被遍历过: 3.找出所有‘ # ’的位置时间最大的那个,就是第一问的答案,暂且记为much: 4.因为走过的格子每单位时间会增加1点高度,所以对于某一个格子 i…
对于和规律或者数学有关的题真的束手无策啊QAQ 首先发现两个性质: 1.不管中间怎么碰撞,所有蚂蚁的相对位置不会改变,即后面的蚂蚁不会超过前面的蚂蚁或者落后更后面的蚂蚁. 2.因为所有蚂蚁速度一样,不管标号的话两只蚂蚁的碰撞相当于直接互相穿过,所以最初有多少蚂蚁方向向左,最后就有多少蚂蚁从左落下,向右同理. 总结一下又可以发现,比如有$cntl$只蚂蚁最初向左,$cntr$只蚂蚁最初向右,那么最后就是原位置的左边连续$cntl$只从左落下,原位置右边连续$cntr$只从右落下.我们将所有方向向左…
打崩了-- 事先说明,今天没有很在状态,所以题解就直接写在代码注释里的,非常抱歉 T1 颜色联通块 此题有争议,建议跳过 题目描述 N 个方块排成一排,第 i 个颜色为 Ci .定义一个颜色联通块 [l,r] 当且仅当 l 和 r 之间(包括l,r)所有方块的颜色相同. 例如 [3,3,3] 有 1 个颜色联通块,[5,2,4,4] 有 3 个颜色联通块. 现在你可以选定一个起始位置 p ,每次将 p 所在颜色联通块的所有方块颜色改成另一种.这个操作可能将两个颜色联通块合并成一个.问最少需要多少…
打崩了-- 事先说明,今天没有很在状态,所以题解就直接写在代码注释里的,非常抱歉 T1 颜色联通块 此题有争议,建议跳过 题目描述 N 个方块排成一排,第 i 个颜色为 Ci .定义一个颜色联通块 [l,r] 当且仅当 l 和 r 之间(包括l,r)所有方块的颜色相同. 例如 [3,3,3] 有 1 个颜色联通块,[5,2,4,4] 有 3 个颜色联通块. 现在你可以选定一个起始位置 p ,每次将 p 所在颜色联通块的所有方块颜色改成另一种.这个操作可能将两个颜色联通块合并成一个.问最少需要多少…
题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=737 题目大意: 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆.求出总的代价最小值. 解题思路: 设dp[i][j]为合并完[i,j]区间所有石子的最小花费,sum[i]是1~i对石子价值的前缀和. 得到状态转移方程:dp[i][j]=min(dp[i]…
Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65535 K (Java/Others) Total Submission(s): 2836 Accepted Submission(s): 1160 Problem Description In mathematics, a subsequence is a sequence that can be derived from a…