Processing math: 100%

09 2018 档案

摘要:传送门 考虑一个状态(a,b,c)的转移 b可以往左右跳 或者a和c中离b比较近的往中间跳 如果把当前状态看成一个节点 那么可以吧b往左右跳的情况看成当前节点的左右儿子状态 而且左右儿子状态要到父节点的状态就只能往中间跳,只有唯一的方法 那么所有可以互相转移的状态一起构成了一颗二叉树 树根就是不能往 阅读全文
posted @ 2018-09-29 10:01 LLTYYC 阅读(321) 评论(0) 推荐(0)
摘要:传送门 感觉题意有坑 害我看了半天 题目原文: 一块墓地的虔诚度是指以这块墓地为中心的十字架的数目。一个十字架可以看成中间是墓地,墓地的正上、正下、正左、正右都有恰好k棵常青树。 本来以为要刚好 k 颗,不能多了 结果看着样例一脸懵逼 才发现多的可以不管 比如有一行有 a 颗树,那么从这 a 颗中随 阅读全文
posted @ 2018-09-28 22:35 LLTYYC 阅读(172) 评论(1) 推荐(1)
摘要:传送门 正解矩阵树 不会 显然最小生成树每个长度的边的数量是不变的 而且题目说:具有相同权值的边不会超过10条。 暴力 dfs 枚举所有相同长度的边,看看有多少种方案 然后就过了 代码: 阅读全文
posted @ 2018-09-28 21:36 LLTYYC 阅读(209) 评论(0) 推荐(0)
摘要:传送门 思维难度很大的DP 设 f [ i ] 表示长度为 i 的山脉的合法方案数 考虑枚举最高的山的位置 j 那么在不考虑 j 左右两边是山谷或山脉的情况下 f[ i ] += f[ j-1 ] * f[ i-j ] * C[ i-1 ] [ j-1 ](C[ i-1 ] [ j-1 ] 表示i- 阅读全文
posted @ 2018-09-28 13:26 LLTYYC 阅读(227) 评论(0) 推荐(0)
摘要:传送门 搞回文串很容易想到manacher 把每个回文串看成线段 那就是求两个相邻线段的最长总长度 设 l[ i ] 表示左端点为 i-1 时线段的最大长度,r[ i ] 表示右端点为 i+1 时线段的最大长度 (这里 i 在manacher处理后的字符串a上,线段的最大长度是指原字符串上的长度) 阅读全文
posted @ 2018-09-28 10:40 LLTYYC 阅读(173) 评论(0) 推荐(0)
摘要:传送门 Folyd 本题需要对Folyd有较深的理解 考虑Folyd的思想 枚举每个中转点 用这些点去尝试更新其它所有两点的距离 如果有点不能走,显然它不能作为中转点 本题在不同的时间有不同的点能走 用Floyd可以枚举所有可以走的中转点,更新其它两点的距离 好像复杂度是 O(n^3 * q) 但是 阅读全文
posted @ 2018-09-28 10:19 LLTYYC 阅读(200) 评论(0) 推荐(0)
摘要:传送门 考虑只有两个人的情况 集合点可以是树上两点间路径上的任一点 总长度可以用LCA求出 ans=dep[ x ] - dep[ LCA(x,y) ] + dep[ y ] - dep[ LCA(x,y) ] 三个人也差不多 Ans=dep[ x ] - dep[ LCA(x,y) ] + dep 阅读全文
posted @ 2018-09-28 09:56 LLTYYC 阅读(251) 评论(0) 推荐(0)
摘要:传送门 线段树 开根号好像没办法搞延迟标记 但是可以发现 10^12 只要开 6 次根号向下取整就等于 1 1再怎么开也是1 所以一个数最多只要开6次根号就不用再搞了 我们可以维护一个最大值 如果整个区间的最大值<=1 那么整个区间都不需要修改,直接跳过就好了 不然的话就暴力开根 修改复杂度 O(6 阅读全文
posted @ 2018-09-28 09:37 LLTYYC 阅读(211) 评论(0) 推荐(0)
摘要:传送门 枚举右端点 可以发现左右端点中有一个合法的咖啡店就可以了 而且为了让合法的左端点尽量多 咖啡店要尽量靠右 所以可以记录目前最右边的合法咖啡店左边每种颜色的客栈的个数 cnt[ color ] 然后如果更右边有合法的咖啡店,就更新一波 cnt 累计所有右端点的情况 复杂度 O(nk) #inc 阅读全文
posted @ 2018-09-27 14:14 LLTYYC 阅读(192) 评论(0) 推荐(0)
摘要:传送门 显然是RMQ问题 用ST表就行了 用倍增的思想,像DP一样转移 设 mx[ i ] [ j ] 表示从点 i 开始,后面一共 2^j 个点的最大值 显然 mx[ i ] [ 0 ] = a [ i ](a是原数列) 那么 mx [ i ] [ j ] = max( mx[ i ] [ j-1 阅读全文
posted @ 2018-09-27 13:48 LLTYYC 阅读(150) 评论(0) 推荐(0)
摘要:传送门 好好读题 读懂了题后就不难了 可以发现和强联通分量的定义有点像 强连通的要求:对于任意两点u,v都存在一条路径使得 u->v 并且 v->u 而半联通的要求:对于任意两点u,v都存在一条路径使得 u->v 或者 v->u 那么显然一个强联通分量肯定属于半联通子图 那先考虑缩点,看看缩点后的情 阅读全文
posted @ 2018-09-27 13:23 LLTYYC 阅读(238) 评论(0) 推荐(0)
摘要:传送门 显然可以把所有间谍的关系建一个图 如果A间谍手中掌握着关于B间谍的犯罪证据,那就从A连一条边到B 如果贿赂了一个间谍,那么整个联通块的间谍肯定都被控制 那就先把图缩成DAG 如果控制了一个块,那么这个块后面所有的块都能被控制 为了控制所有块,一定要贿赂没有入度的块,因为它不能被其它块控制到 阅读全文
posted @ 2018-09-27 11:37 LLTYYC 阅读(141) 评论(0) 推荐(0)
摘要:传送门 算法:Tarjan & DP 显然缩点后的图是一个DAG DAG上搞DP是基本操作啊 按拓扑序搞一波DP就好了 设 f[ i ] 表示从起点抢劫到 DAG 上的点 i 时能得到的最多的钱 那么 f[ i ] = max( f [ i ] , f[ j ] + sval[ i ]) ( j 有 阅读全文
posted @ 2018-09-27 11:16 LLTYYC 阅读(280) 评论(0) 推荐(0)
摘要:权限题... 题目描述: Description 给出一个长度为N的数列{a[n]},1<=a[i]<=M(1<=i<=N)。 现在问题是,对于1到M的每个整数d,有多少个不同的数列b[1], b[2], ..., b[N],满足: (1)1<=b[i]<=M(1<=i<=N); (2)gcd(b[ 阅读全文
posted @ 2018-09-26 13:31 LLTYYC 阅读(245) 评论(0) 推荐(0)
摘要:传送门 差分约束 注意每头牛排队顺序和编号顺序一致 然后数据有保证 A<B 所以距离只要考虑 B-A 就可以了 要求最大距离 所以要用 ≤ 号来表示牛之间的关系 然后跑最短路 注意搞出来的图可能不连通 所以判断合法方案时要把每个块都跑一遍 最后 dis [ i ] 就表示牛 1 和 牛 i 之间的最 阅读全文
posted @ 2018-09-26 10:08 LLTYYC 阅读(162) 评论(0) 推荐(0)
摘要:传送门 显然的差分约束 要求最小值 那就要用 ≥ 号来表示每个小朋友之间的关系 边 ( u,v ) 的权值 x 表示 u 小朋友要比 v 小朋友多 x 个糖 然后跑最长路 如果有正环说明无法满足所有人的要求(A比B多,B比C多,C又要比A多这样的环) 然后因为毒瘤的数据 1.要特判一波小朋友的无理要 阅读全文
posted @ 2018-09-26 09:47 LLTYYC 阅读(137) 评论(0) 推荐(0)
摘要:权限题... 描述: Description 母亲节就要到了,小 H 准备送给她一个特殊的项链。这个项链可以看作一个用小写字 母组成的字符串,每个小写字母表示一种颜色。为了制作这个项链,小 H 购买了两个机器。第一个机器可以生成所有形式的回文串,第二个机器可以把两个回文串连接起来,而且第二个机器还有 阅读全文
posted @ 2018-09-25 18:32 LLTYYC 阅读(239) 评论(0) 推荐(0)
摘要:传送门 做菜主要是按时间顺序,所以可以考虑DP 但是可能后面的人会先打饭 可以发现同学最多只能让后面的第7个同学先打饭 可以从这里入手考虑问题 把每8个一起的同学看成一个状态 在他们之前的人都已经打好饭了 想象一个从左往右的队列 从1~i-1 的同学都打完饭了 然后需要知道的状态是 i~i+7 共8 阅读全文
posted @ 2018-09-25 17:04 LLTYYC 阅读(282) 评论(0) 推荐(0)
摘要:传送门 N和K都不大 可以跑分层图 设dis[ i ] [ j ] [ k ] 表示从起点到坐标为 i , j 的点,还剩下可以跑 k 步的油时的最少花费 然后用 Dijkstra 跑分层图 走下一步时就分开来讨论每种可能的操作 但是一定要注意每种操作的顺序 先走,然后考虑走到的这点要不要设加油站, 阅读全文
posted @ 2018-09-25 13:41 LLTYYC 阅读(349) 评论(0) 推荐(0)
摘要:传送门 肯定是最短路 而且题目有限制,不存在负环 所以可以跑堆优化的Dijkstra 但是因为有负边权,所以跑得很慢 这时可以利用题目的条件 每个联通块内是没有负边权的 所以可以优先处理单个块之内的最短路 这样一个块一个块地处理 可以跑得很快 可以用Tarjan处理每个点所在的联通块 代码: #in 阅读全文
posted @ 2018-09-25 13:15 LLTYYC 阅读(248) 评论(0) 推荐(0)
摘要:传送门 次小生成树 那肯定是最小生成树上改一条边(改两条肯定不如只改其中一条小) 那就枚举所有不在最小生成树上的边 考虑如果把此边加入,另一边删除后的情况 考虑要删哪条边后才能保持树的形态,并且总长最小 加入一条边后树就会出现一个环 那么删掉的边要在加入的边连接的两点间的路径上 并且删去的边要尽量大 阅读全文
posted @ 2018-09-24 14:51 LLTYYC 阅读(207) 评论(0) 推荐(0)
摘要:传送门 走一条路线时 肯定先在最便宜的城市买入,然后在最贵的城市卖出 所以我们只要确定一条路径中最便宜的价格和一条路径中最贵的价格 但是要注意一点:先买入,再卖出 可以从起点dfs一波,求出起点到每个点的所有路径中,最便宜的价格为多少 然后从终点沿反向边再dfs一波,求出每个点到终点的所有路径中,最 阅读全文
posted @ 2018-09-24 11:25 LLTYYC 阅读(175) 评论(0) 推荐(0)
摘要:传送门 最短路 二分+SPFA 二分最小支出 如果边权<=最小支出,那么就相当于0 如果大于最小支出,值设为1 跑SPFA 如果dis[n] > k 说明到不了 否则说明可以到 模板套进去就好了,没什么好注释的... #include<iostream> #include<cstdio> #incl 阅读全文
posted @ 2018-09-23 11:00 LLTYYC 阅读(221) 评论(0) 推荐(0)
摘要:传送门 先想想暴力怎么搞 搞一个AC自动机 对每个询问 x,y 把 y 暴力向下匹配 每个点都暴力跳fail 看看x出现了几次 稍微优化一波 因为有多组询问 考虑离线 可以把同一组的 y 一起来计算 还是把 y 暴力匹配 看看所有的 x 出现了几次 再来一波优化 考虑什么时候 x 的出现次数会增加 阅读全文
posted @ 2018-09-23 10:40 LLTYYC 阅读(168) 评论(0) 推荐(0)
摘要:传送门 从 i 到 n 的异或和 = 从 1 到 n 的异或和 异或 从 1 到 i-1 的异或和 所以只要存 1 到 i-1 的异或和就行了 开一个可持久化字典树 从高位到低位,存每个从 1 ~ i 的异或和 询问 i 到 n 异或 x 就相当于询问 (1到n 的异或和 异或 x )再异或 1到 阅读全文
posted @ 2018-09-22 13:20 LLTYYC 阅读(239) 评论(0) 推荐(0)
摘要:传送门 AC自动机 考虑一位一位填字符 一旦包含了单词(即经过了结束标记或fail上的结束标记) 那么后面不管填什么都是一篇可读的文章 如果一共要填 m 个单词,当前填到了第 i 个字符就一定可读了 那么后面每个字符都有 26 种填法,所以方案就多了 26^(m-i) 种 然后打了个 30 分的搜索 阅读全文
posted @ 2018-09-22 10:37 LLTYYC 阅读(225) 评论(0) 推荐(0)
摘要:传送门 看到题面肯定先搞个AC自动机 考虑一位一位填字符 那么在自动机上就是一位一位匹配 考虑什么时候包含了所有子串 显然是经过了所有的结束标记(当然fail上的也算经过) 最多只有11个单词 考虑状态压缩 经过第 i 个单词结尾就把状态的第 i 位 | 1 然后就可以广搜找了 因为扩展是从 A 到 阅读全文
posted @ 2018-09-22 10:10 LLTYYC 阅读(203) 评论(0) 推荐(0)
摘要:传送门 显然是个AC自动机 考虑删除完单词后怎么回到前面 可以开一个栈 存到每个字符时匹配的位置 然后就可以搞了 答案也用一个栈存 每次删单词时把答案栈里的单词也弹出来 最后输出栈里的单词就好了 数据有毒,输出后要换行,不然会WA... 阅读全文
posted @ 2018-09-22 09:40 LLTYYC 阅读(193) 评论(0) 推荐(0)
摘要:传送门 把所有方程放到一个二维数组里 样例的数组为[ 1,3,4,5 ] [ 1,4,7,3 ] [ 9,3,2,2 ] 考虑一个一个消元 拿一个方程出来,把未知数 x 的系数化成1 用加减消元消去其他方程的 x 然后再消下一个未知数 最后一个未知数消完后再把值往上一个方程代入 最后每个未知数都求出 阅读全文
posted @ 2018-09-21 13:09 LLTYYC 阅读(223) 评论(0) 推荐(0)
摘要:传送门 显然式子可以变成: 然后发现两个部分差不多,就是余数求和,传送门 但是有限制 i ≠ j 所以特殊考虑 i=j 时的答案,减去就好了 当 i = j 时的答案 可以像余数求和那样吧 n mod i 变成 然后展开一波可以得到: = $n\times m\times min(n,m) - \s 阅读全文
posted @ 2018-09-21 10:45 LLTYYC 阅读(204) 评论(0) 推荐(0)
摘要:传送门 显然是网络流最小割 朴素的dinic会被卡 但是如果加上玄学优化就可以过了 主要是讲另一个方法 可以发现每条路径是不会交错的 对于样例的图,我们如果从右上随便走出发一条线到左下 把线经过的边全部割掉,就是一种可行的方案 所以可以把每个平面看成点,点之间的边就是平面之间的公共边 只要我们从右上 阅读全文
posted @ 2018-09-20 18:48 LLTYYC 阅读(149) 评论(0) 推荐(0)
摘要:传送门 AC自动机 如果有一个无限长的安全串 那么这个串在所有危险代码构成的AC自动机上一直匹配下去都不会走到结束标记 因为如果走到结束标记说明串中有危险代码 考虑怎样才能无限匹配 可以发现,如果在AC自动机上从根节点出发,一直走能走出一个环的话 那么就可以一直走这个环,从而无限匹配下去 所以要在自 阅读全文
posted @ 2018-09-20 18:06 LLTYYC 阅读(205) 评论(0) 推荐(0)
摘要:传送门 AC自动机 一看就知道是AC自动机 它问的是每一个单词在所有单词中出现的次数 对所有单词搞一个AC自动机 然后把所有单词连在一起,中间用一个不会出现的字符或者其他什么的隔开 然后把连在一起的串放到AC自动机上搞匹配就行了 要注意单词可能有重复 所以要把重复的单词判一下 具体看代码 阅读全文
posted @ 2018-09-19 09:51 LLTYYC 阅读(219) 评论(0) 推荐(0)
摘要:传送门 AC自动机的模板 简单的理解就是字典树上的KMP 注意数组不要开太大 不然每次memset耗时太多 有一个小优化 每次走 fail 边找匹配时只有一些会更新答案 那么就可以把没用的fail边压缩掉 设 g[x] 表示从 x 点一直走 fail 边,走到的第一个有结束标记的点 那么找匹配时就只 阅读全文
posted @ 2018-09-19 09:39 LLTYYC 阅读(220) 评论(0) 推荐(0)
摘要:传送门 数位DP 考虑从右边最小的一位,一位一位填数,填到最大一位 对于 a' b' 各可填 0 或 1 但是发现如果 a' b' 都填一,更高一位会进1 所以要多一维表示更高一位是否为 1 那么设 f [ i ] [ j ] [ k ] [ l ] [ 0/1 ] 表示填到第 i 个数,a' 填了 阅读全文
posted @ 2018-09-18 09:53 LLTYYC 阅读(274) 评论(0) 推荐(0)
摘要:传送门 CDQ分治 先三关键字排序 然后把第二关键字归并排序 在合并子区间时用 第三关键字的权值树状树组 算出子区间的答案 为什么可以这样搞呢 首先第一维已经有序 所以只要考虑左边对右边的影响 把第二维归并时 左子区间的第一二关键字 全部小于或等于 右子区间的第一二关键字 所以也只要考虑左边对右边的 阅读全文
posted @ 2018-09-17 14:11 LLTYYC 阅读(197) 评论(0) 推荐(0)
摘要:传送门 贪心+字典树 很显然,填一个单词前肯定要优先把所有是它后缀的单词填掉 考虑怎么判后缀 可以把单词倒过来,加入字典树 那么填一个单词前要先填掉它所有祖先的单词 即要从深度小的填到深度大的 可以按搜索顺序填 考虑要怎样确定搜索顺序 随便画一颗树 发现深度优先比广度优先更优 在深度优先时 单词少的 阅读全文
posted @ 2018-09-16 09:26 LLTYYC 阅读(248) 评论(0) 推荐(0)
摘要:从同机房大佬那里听来的... 用O(1)时间求出两个相乘超过long long的数的取摸的结果 神奇的操作... 据说如果模数过大可能导致精度误差..反正我是没遇到过.... 阅读全文
posted @ 2018-09-15 22:24 LLTYYC 阅读(913) 评论(0) 推荐(0)
摘要:传送门 DP 十分显然的DP,但是不好写 设 f[ i ] 表示以第 i 个数作结尾时的方案数,原序列为 a 如果不考虑相同的序列: 那么转移就是 Σ f[ j ] (0< j < i && a [ j ] < a [ i ]) 复杂度为 O(n^2) 考虑优化: 先去重 ,得到数组 b 每次把f 阅读全文
posted @ 2018-09-15 17:29 LLTYYC 阅读(225) 评论(0) 推荐(0)
摘要:传送门 KMP 对于这种一个字符串的问题 肯定先考虑KMP 如果一个串A要成为周期 设A长度为len_A,原串长度为len 那么串A要成为周期的充分必要条件就是: 从0 ~ (len-len_A)的串就要等于(len_A) ~ len的串 如下图: 要怎么找出我们上图红色的串呢? 考虑 KMP 的 阅读全文
posted @ 2018-09-15 16:42 LLTYYC 阅读(133) 评论(0) 推荐(0)
摘要:传送门 字典树 把所有信息建一个字典树 然后把每条密码在字典树上跑一遍 把经过的结束标记以及跑到的最后的一个节点的整个子树的结束标记加起来 开一个数组存一下每个节点的子树的结束标记和就好了 阅读全文
posted @ 2018-09-15 14:06 LLTYYC 阅读(176) 评论(0) 推荐(0)
摘要:传送门 字典树 几乎就是模板 但是要注意如果每组数据都用一波memset... 会TLE 所以要考虑动态删点 如果要用到再把这个点的数据清空 没有什么好说的了... 阅读全文
posted @ 2018-09-15 13:56 LLTYYC 阅读(172) 评论(0) 推荐(0)
摘要:传送门 直接搞好像搞不了 考虑转换模型 显然每一行棋子不会跑到其他行.. 所以可以把每一行的情况看成一个子博弈 显然整个答案就是每一行的SG值的异或和 不懂的回去学SG函数... 考虑怎么分析一行的状况 可以发现空位的个数是不会变的 如果把每一段连续的棋子看成一块 整块的的值为块中棋子的个数 那么每 阅读全文
posted @ 2018-09-14 19:36 LLTYYC 阅读(305) 评论(0) 推荐(0)
摘要:传送门 DP+字典树 设 如果存在一种分法,使得第 i 个字符能被理解,并且 i 为此分法中的最后一个字符 (显然也是最后一个单词的最后一个字符) 那么 f [ i ] = 1 那么就是要求最大的 i 使得 f [ i ] = 1 考虑如何转移 如果知道了 f [ i ] = 1 那么 f[ i+l 阅读全文
posted @ 2018-09-13 17:25 LLTYYC 阅读(206) 评论(0) 推荐(0)
摘要:传送门 哈希 首先要知道一个结论: 判断一个串s中 长度为k的串是不是循环节 的充分必要条件是: s[1]~s[len-k] = s[k] ~ s[len] 并且 len%k=0 怎么证明呢 如图: 显然红色的串=s1(因为s[1]~s[len-k] = s[k] ~ s[len]) 同样s1=s2 阅读全文
posted @ 2018-09-13 16:24 LLTYYC 阅读(163) 评论(0) 推荐(0)
摘要:传送门 线性筛法 让每个合数只被它最小的素因数筛到 从而保证每个数均摊复杂度为O(1) 总复杂度O(n) 具体看模板 阅读全文
posted @ 2018-09-13 13:54 LLTYYC 阅读(344) 评论(0) 推荐(0)
摘要:传送门 哈希 or Manacher 首先有一个很显然的结论 对于一个回文串s 每次从s的中心开始向左右扩展一步 每次扩展的串一定都是回文串 如 s=abccba 从s的中心左右扩展一步得到 cc 扩展两步得到 bccb 扩展三步就得到了 abccba = s 所以如果我们枚举中心 向左右扩展,找到 阅读全文
posted @ 2018-09-13 13:35 LLTYYC 阅读(187) 评论(0) 推荐(0)
摘要:传送门 哈希表 枚举子串长度 k 把每个子串的哈希值加到哈希表里 用哈希表判重 因为子串可以反转 所以要两个哈希 一个从前往后,一个从后往前 复杂度为O(n + n/2 + n/3+ ... + n/n) 约等于 O(n ln n) 但是每次长度k更新都要清空哈希表 非常耗时(只有60分) #inc 阅读全文
posted @ 2018-09-12 13:08 LLTYYC 阅读(227) 评论(0) 推荐(0)
摘要:传送门 题目描述: 给定一个字符串 求出该字符串最多由几个相同的子串连接构成 字符串长度 n<=1000000 hash or KMP hash的话就枚举长度,暴力判断 复杂度约为O(n log n) 主要是KMP怎么搞 先想想如果该字符串是由一些相同的子串构成,如abcabcabcabc 那么fa 阅读全文
posted @ 2018-09-12 10:06 LLTYYC 阅读(141) 评论(0) 推荐(0)
摘要:传送门 坑很多的一题 这里要感谢crk大佬提前帮我把所有的坑都踩了一遍...233 讲一下题目的意思: 给你一个神奇的 r*c 的键盘 (r,c<=50) 上面有大写的字母,数字,' - '号 和 ' * ' 号 有一个光标在键盘上 一开始在左上角,每次可以对光标进行一次操作: 向上,向下,向左,向 阅读全文
posted @ 2018-09-11 13:31 LLTYYC 阅读(248) 评论(0) 推荐(0)
摘要:传送门 广搜 4*4 的方阵只有 0 和 1 显然可以状态压缩 (如样例的开始状态压缩后就是1111000011100010) 为了加快速度用了双向广搜(顺便学了一下双向广搜) 双向广搜顾名思义 就是从起点和终点两个方向广搜 每次选择扩展步数少的扩展一层 然后一旦一个状态被两边都找到了 那就把两边的 阅读全文
posted @ 2018-09-11 09:57 LLTYYC 阅读(236) 评论(0) 推荐(0)
摘要:传送门 算法Dijkstra要求次短路 那么在不考虑重复走一条边的情况下 肯定是把最短路中的一段改成另一段 至少要换另一条边到路径里所以可以枚举所有不属于最短路的每条边(a,b) 那么dis(1,a)+(a,b)+ dis(b,n)就是一种可能的答案(记为S) 显然如果另一条不属于S的边更新S后会使 阅读全文
posted @ 2018-09-09 21:39 LLTYYC 阅读(595) 评论(0) 推荐(2)
摘要:传送门 刚开始想都没想直接爆搜 然后35 然后试了优先找分值大的点,优先填大的数 发现样例2都过不了 放弃了 考虑怎么剪枝 对于一个点,有多种可能的数 如果可能的数少,那么从这个点下去的分支也会比较少 所以预处理一波 把可以填的点按可以填的数的数量排序一遍 然后按排序后的顺序dfs 然后80... 阅读全文
posted @ 2018-09-09 10:11 LLTYYC 阅读(222) 评论(0) 推荐(0)
摘要:传送门 题目大意 给出一个真分数 a/b,要求出几个互不相同的埃及分数(从大到小),使得它们之和为 a/b (埃及分数意思是分子为1的分数,详见百度百科) 如果有多组解,则分数数量少的优先 如果分数数量一样则分母最大的要尽量小,如果最大的分母同样大,则第二大的分母尽量小,以此类推 为了加大难度,会给 阅读全文
posted @ 2018-09-09 09:25 LLTYYC 阅读(407) 评论(0) 推荐(0)
摘要:传送门 然后要注意细节和精度问题(要注意A,B或C,D在同一点的可能,导致三分还没开始就结束了) 阅读全文
posted @ 2018-09-09 08:41 LLTYYC 阅读(202) 评论(0) 推荐(0)
摘要:传送门 好好看题 看懂了就不难了 在2^k进制下,一位一位看 每一位都有一些数可以填 除非是最左边一位,不然可以填的数最大都是 2^k-1 所以显然当填的位数为 i 时(不是最后一位),可能的选取方案总共有 C(2^k-1,i ) 如果要填最后一位 最后一位可以填的最大的数为 2^ (w%k)-1 阅读全文
posted @ 2018-09-07 17:03 LLTYYC 阅读(288) 评论(0) 推荐(0)
摘要:传送门 首先只有一列下去 那肯定DP啦 然后想DP的时候发现 如果知道了第 1 个的状态 那么第 2 个的状态就可以从右边一列的第 1 个数推出来 然后知道了前面 2 个状态,第 3 个状态就可以从右边第 2 个数推出来 然后一直推下去 然后就全部出来了 根本就只有两种可能好吧!(第一个为雷 or 阅读全文
posted @ 2018-09-07 16:31 LLTYYC 阅读(142) 评论(0) 推荐(0)
摘要:传送门 O(n) 算法可以60分,不用讲了吧... 考虑怎么加快速度 首先在不用“%”的情况下求余数应该懂吧 a%b = a - int(a/b) * b int() 是向下取整的意思 那么题目要求 k%1 + k%2 + ... + k%n 就等于 k-int(k/1)*1 + k-int(k/2 阅读全文
posted @ 2018-09-07 16:20 LLTYYC 阅读(173) 评论(0) 推荐(0)
摘要:传送门 期望DP 刚开始想的就是DP 设 f [ i ] [ j ] 表示已经进行了 i 轮,庄家为 j 但是发现好像转不了... 不知道哪些人被踢出去了... 看一下数据,好像搞不了状压 那么换种思路 从 结束状态 往 开始状态 推 不需要知道具体哪个人是庄家,只要知道与庄家相对位置为 x 时的获 阅读全文
posted @ 2018-09-06 09:57 LLTYYC 阅读(179) 评论(0) 推荐(0)
摘要:传送门 期望DP 因为 课程是按时间顺序的,后面的变化不会影响前面的结果 对于每个时间段的课,只有两种选择(换 or 不换) 那么 显然 DP,而且 好像 转移也很好写... 显然设 dp[i][j] 表示到了第 i 个时间段,已经提交了 j 节课的申请时的最短期望路程 写到一半 阅读全文
posted @ 2018-09-05 14:05 LLTYYC 阅读(258) 评论(0) 推荐(0)
摘要:传送门 考虑前面7个魔法 如果前面七个魔法各不相同,那么就能完成一次帕琪七重奏 设 A=a1*a2*...*a7,S=a1+a2+...+a7,B=S*(S-1)*...*(S-6) 对于不同的施法顺序,前面七个魔法各不相同的概率总是:A/B 不同的顺序如: a1,a3,a2,a4,a5,a6,a7 阅读全文
posted @ 2018-09-05 13:08 LLTYYC 阅读(211) 评论(0) 推荐(0)
摘要:传送门 计算长度期望嘛 期望长度 = 长度 * 走这条边的概率 概率很好求 按照拓扑序跑一下DP就好了 设 s [ i ] 为走到这点的概率,j 为 i 的后继节点,k为 i 的后继节点总数 s [ j ] += s[ i ] / k 走边(i,j)的概率显然就是 k 就是期望DP的入门题... 阅读全文
posted @ 2018-09-04 21:46 LLTYYC 阅读(169) 评论(0) 推荐(0)
摘要:传送门 花圃只有两种 m最大为5 可以把C形的花圃看成 1 ,其他的看成 0 每m个花圃看成一个状态,只有 2^5 种状态 显然状态可以互相转移 比如说第 1~5 个花圃为一个状态 它可以转移到第 2~6 个花圃的一个状态 那筛一下可以转移的状态,然后跑DP就可以了 设 f [ i ] [ j ] 阅读全文
posted @ 2018-09-04 13:26 LLTYYC 阅读(199) 评论(0) 推荐(0)
摘要:传送门 显然可以DP 设 f [ i ] [ j ] 表示已经换了 i 次车,现在在 j 号车站(j = 1~8 分别表示A~H)时的方案数 那么 f [ i ] [ j ] = f [ i-1 ] [ j-1 ] + f [ i-1 ] [ j+1 ] 注意一下当 j=1 和 j=8 时的情况 还 阅读全文
posted @ 2018-09-04 10:04 LLTYYC 阅读(369) 评论(0) 推荐(0)
摘要:传送门 很显然可以递推 前一项可以推出后一项 但是数据太大 那就考虑矩阵优化 那么构造一个初始矩阵:[ x[0] , 1 ] 然后构造一个转移矩阵:[ a , 0 ] [ c , 1 ] 然后就可以了 看到这里的大佬应该都会矩阵优化吧... 阅读全文
posted @ 2018-09-03 22:19 LLTYYC 阅读(229) 评论(0) 推荐(0)
摘要:传送门 斐波那契数列 看一眼果断递推 f[ i ] = f[ i-1 ] + f[ i-2 ] 嘛 数据一看.. 好像不行.... 那就矩阵优化一下嘛 最基础的矩阵乘法嘛 (不懂先学一下 矩阵乘法 吧) 稍微想一想: 设矩阵为 A 那么矩阵 [ f[i-2] , f[i-1] ] * A 要等于 [ 阅读全文
posted @ 2018-09-03 21:59 LLTYYC 阅读(290) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示