04 2018 档案
摘要:题意 : 给出 n 个点,每个点有一个维护时间 a[i]。m 个条件,每个条件有2个点(x,y)且 a[x] != a[y]。选择最少的 k (最少一个)个点,使其值加1后,m个条件仍成立。 分析 : 发现改变某些数加一后可能产生联动效应 换句话说就是改变某些数则必须改变另一些数来维持 m 个条件的
阅读全文
摘要:题意 : 给出 N 表示有标号 1~N 的 N 个数,然后从下标 1 开始将这 N 个数每隔一位放置一个,直到 N 个数被安排完,现在有一个操作就是每次将数列中最右边的数向离其左边最近的空缺处填上,一直这样子填,直到下标 1~N 被填满,然后现在给出 Q 个询问,每个询问给出一个 X ,你需要回答下
阅读全文
摘要:题意 : 给出一个 01 串,要求你将其分隔出若干个子序列 ( 每个数字只能属于某一个子序列 ) ,子序列必须满足由 0 开头和结尾,且中间需 01 交替构成。若无法做到,则输出 -1。 分析 : 很容易想到需要去贪心配对 0 和 1 即 能 01 交替去构造就尽量选择这种方案,这样才能用更少的 0
阅读全文
摘要:题意 : 题目链接 分析 : 一开始这个想法也有想到,但是貌似要开很大数组,就感觉应该不行 遂放弃想其他方法,万万没想到注意到可以滚动优化(其实不优化也可以过) 定义 dp[i][j] 表示 到第 i 个数为止,凑成 j 分数所要转的最小次数 转移方程如下 若选择旋转 i 这个多米诺 dp[i][j
阅读全文
摘要:题意 : 题目链接 分析 : 可以观察到给出的配对代价表中对角线部分是正数 其余的都是负数,也就是说让相同字母的匹配的越多越好 即找出 LCS 但是这里 DP 的过程需要记录一下代价 有关 LCS 的一篇博客 ==> Click here 如果不是计算长度而是计算配对的价值,那么初始化的时候 记得将
阅读全文
摘要:题意 : 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成。尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束。当尼克到达单位后他就开始干活。如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个
阅读全文
摘要:题意 : 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分。 分析 : 有大佬给出了四边形不等式优化........ 发现并不会,于是开始
阅读全文
摘要:单调栈简单点说就是维护一个元素满足单调性的栈,即栈内元素总是单调的 找出序列中某一个元素 左边/右边 第一个 比它 大/小 的元素的位置 用单调栈做的话,复杂度是 O(n) 的 如果要求比某一元素小的 第一个 元素的位置的话,维护递减 如果要求比某一元素大的 第一个 元素的位置的话,维护递增 裸题在
阅读全文
摘要:题意 : 有n块土地,每块有A[i]泥土,现把其改造成B[i]泥土,有3种操作:(1)花费X向任意土地增加1泥土;(2)花费Y向任意土地减少1泥土;(3)花费Z*|i-j|把土地i的1泥土运到土地j。问最小花费是多少。 分析 : 参考了洛谷大神们给出的思路,下面简述一下 简单的讲就是对于每一个点,先
阅读全文
摘要:题意 : 题目链接 分析 : Tutorial 讲的很清楚 至于为什么这样去考虑 算是一个经验问题吧 如果一个问题要你给出模意义下的答案 就多考虑一下答案是要用逆元构造出来 也就说明有除法的存在 那么可以去考虑等比数列或者等差数列求和公式等 #include<bits/stdc++.h> #defi
阅读全文
摘要:题意 : 给出一颗无限层的满二叉树,然后每个值为 X (根的 X 等于 1 ) 左孩子的值是 2*X,右孩子的值是 2*X+1 ,现在有两种操作,(1, x,k) 表示将 x 所在层的所有节点整体向右循环地移动 k 个单位、(2,x,k)表示将 x 所在的层的所有节点及其子树向右循环地移动 k 个单
阅读全文
摘要:题意 : 给出一个序列,然后每次将重复出现的元素进行求和合并(若有多个,则优先取最小的进行合并),若某重复元素有很多,那么取最左边的那两个进行合并且合并后元素位于原来右边元素的位置,例如 3 2 6 2 2 这里 2 是重复元素,取最左边的两个 2 进行一次求和合并,合并后将变成 4 ,且这个 4
阅读全文
摘要:题目链接 题意 : 给出 N 个点(最多 1e6 )和 M 条边 (最多 N + 20 条 )要你输出一条从 1 开始回到 1 的哈密顿回路路径,不存在则输出 " There is no route, Karl! " 分析 : 题意很简单明了 众所周知,哈密顿回路是个 NP-Hard 问题 这么多个
阅读全文
摘要:混合图 : 同时包含有有向边以及无向边的图 求解混合图的欧拉路径/回路问题需要先了解 有向or无向图的欧拉回路/路径问题 ==> Click here 图论最大流算法 ==> Click here (误) 好了!接下来就是混合图欧拉回路/路径的算法讲解了 好吧,其实我并不会讲,但是找到了一个很详细且
阅读全文
摘要:题意 : 给出若干个边,每条边按照给出的顺序编号,问你找到一条最长的边权以及边的编号同时严格升序的一条路径,要使得这条路径包含的边尽可能多,最后输出边的条数 分析 : 这题和 LIS 很相似,不同的是加多了一个需要边和边相连这一条件 考虑使用树状数组求 LIS 的方法来考虑这题 如果你还不知道 LI
阅读全文
摘要:欧拉路径(瞎)定义 : 如果有一条路径使得能够走完所有的边且每一条边经过有且只有一次,这样的路径叫做欧拉路径 欧拉回路定义 : 如果有从起点出发最后回到起点的一条路径使得能够走完所有的边且每条边经过有且只有一次,称其为欧拉回路 根据定义,欧拉回路是欧拉路径的一个子集,存在欧拉回路定存欧拉路径,反之则
阅读全文
摘要:Floyd 可以求解图上的最小环 这里需要注意的是无向图和有向图的求法是不一样的 有向图 : 正常跑一遍 Floyd 再遍历所有的 dp[i][i] 即自身到自身的距离,便是所求的最小环 #include<bits/stdc++.h> using namespace std; const int m
阅读全文