08 2018 档案

摘要:感觉全是思维乱搞题。 Gym - 101775J Straight Master 给你n种扑克,你每次可以出连续的3 ~ 5 张,问你能否出完。 相当于每次把一个长度为3~5的区间整体减1,问最后是否能够全部减成0。 显然,每次把一个长度大于5的区间整体减1也是可以的,因为6 = 3+3,7 = 3 阅读全文
posted @ 2018-08-31 23:11 jvruodejrLS 阅读(1265) 评论(0) 推荐(0)
摘要:有n(2e4)个宝石两个人轮流从左侧取宝石,Alice先手,首轮取1个或2个宝石,如果上一轮取了k个宝石,则这一轮只能取k或k+1个宝石。一旦不能再取宝石就结束。双方都希望自己拿到的宝石数比对方尽可能多。问你,先手比后手多拿的最大宝石数。 dp[s][k] 表示从已经拿了s个,这一次可以拿k个,也可 阅读全文
posted @ 2018-08-30 11:26 jvruodejrLS 阅读(365) 评论(0) 推荐(0)
摘要:你有三种盘子,黑薄,白薄,黑厚。 薄的盘子占1,厚的盘子占k。 有一个高度为L的桶,盘子总高度不能超出桶的总高度(可以小于等于)。相同颜色的盘子不能挨着放。 问桶内装盘子的方案数。 如 L = 5,k = 3时的方案数为6(下图) 很简单的DP。 注意好 k 和当前枚举到的位置的关系。 f[i][1 阅读全文
posted @ 2018-08-28 10:57 jvruodejrLS 阅读(270) 评论(0) 推荐(0)
摘要:给你n个区间,求: 1:最多有多少区间与同一个区间相交。 2:相交部分的最大区间数目。 第二个问题可以直接用差分解决。(区间修改) 第一个问题: 对于每一个区间,统计在它左端点前面的右端点的数目,和在它右端点前面的左端点的数目。 然后与它相交的区间数 = 后者 - 前者。(!!!) 这样用两个前缀和 阅读全文
posted @ 2018-08-27 21:25 jvruodejrLS 阅读(381) 评论(0) 推荐(0)
摘要:n个点的一张图,问能否给每个点染上三种颜色中的一种,使得没有相邻的点颜色相同? n <= 35。 先想的求出最大团,然后如果最大团的点数 > 3一定不可以。 最大团的点数 <= 3呢?一定可以吗?不是这样的。 下面这个图最大团是3,然而也是不满足条件的。 可以搜索,枚举第一个点染的颜色,就可以3*2 阅读全文
posted @ 2018-08-26 21:50 jvruodejrLS 阅读(336) 评论(0) 推荐(0)
摘要:初学网络流。存一下Dinic板子。 复杂度O(n^2*m) UVA - 1515 Pool construction 把每个草地与 S 相连,花费为dig,每个洞与 T 相连,花费为 然后对于每个两个相邻的点连一条权值为 build 的边。 求最小割,就是把草和洞分开的花费。 因为只有三种割的情况: 阅读全文
posted @ 2018-08-25 20:52 jvruodejrLS 阅读(162) 评论(0) 推荐(0)
摘要:有n个数字,你需要把这n个数字合成一个数字,每次只能把k个数字合并成一个,花费为这k个数字的和。 给一个最大花费,问不超过这个最大花费的情况下,k的最小值。 这个题很容易想到二分答案+优先队列check 然而这样复杂度是 O(n logn*logn ),会TLE(这特么都会TLE?加个读入优化就过了 阅读全文
posted @ 2018-08-24 16:25 jvruodejrLS 阅读(196) 评论(0) 推荐(0)
摘要:有 n 种主武器,m 种副武器。每种武器有一个基础分数k种属性值 X[i] 。 选出一种主武器 mw 和一种副武器 sw,使得两种武器的分数和 + 每个属性的差值尽量大。(参考下面的式子) 多维的最远曼哈顿距离。 因为对于每一种属性对答案的贡献,要么是 Xmw[i] - Xsw[i] ,要么是 Xs 阅读全文
posted @ 2018-08-23 13:30 jvruodejrLS 阅读(185) 评论(0) 推荐(0)
摘要:首先膜一发网上的题解。大佬们tql。 给你n个单调递增的数字,问是否能够把这些数字重新构成一棵二叉搜索树(BST),且所有的父亲结点和叶子结点之间的gcd > 1? 这个题场上是想暴力试试的。结果不行。发现符合最优子结构,可以DP。但是想不出来怎么转移。 看了大佬的题解。 若以第 k 个结点为根节点 阅读全文
posted @ 2018-08-21 22:12 jvruodejrLS 阅读(356) 评论(0) 推荐(0)
摘要:参考博客:zro https://blog.csdn.net/alusang/article/details/81840944 orz 给你一个分母 m 和一个浮点数 x,让你求出一个分母不超过 m 的分数值最接近 x 的分数。 最终答案要求是最简分数。 数学上,n阶的法里数列是0和1之间最简分数的 阅读全文
posted @ 2018-08-21 20:06 jvruodejrLS 阅读(564) 评论(0) 推荐(0)
摘要:From : North American Invitational Programming Contest 2018 给你一个图,以及它的补图。如果部分点在原图中是团,并且其他的所有点在补图中也是团,那么就叫做一个双团。 要求计算图中双团的数量。 这篇博客使我理解了这个问题:zro https:/ 阅读全文
posted @ 2018-08-21 11:03 jvruodejrLS 阅读(347) 评论(0) 推荐(0)
摘要:给定一个序列,每次从序列中找一个长度最大的元素相同的片段,删除它。 如果长度相同,删除最靠左边的那个片段。 问,需要删几次。 用链表处理删除片段。对于删除之后两边又能连成一个片段的那种情况,用set记一下合并就好了。 就是如果这个片段被合并成另一片段了,那么优先队列取到这个的时候就直接pop掉。 本 阅读全文
posted @ 2018-08-20 18:59 jvruodejrLS 阅读(347) 评论(0) 推荐(0)
摘要:给你 n 条线段,计算这 n 条线段总共的交点数目。 几何线段相交的裸题。 快速排斥实验 + 跨立实验,N^2 两两判断就可以。 关于上述判定线段相交的方法可以去百度资料,在此不再赘述。 阅读全文
posted @ 2018-08-17 15:29 jvruodejrLS 阅读(146) 评论(0) 推荐(0)
摘要:给定一个字符串,求出一个前缀A,使得字符串的构成可以表示成ABABA的形式(B可以为空串)。 输出这个前缀的最大长度。 KMP算法Next数组的使用。 枚举中间的每个位置,可以根据Next数组求出这个位置对应的前缀。然后暴力判断前缀与后缀是否相等即可。 如图,枚举的位置为 i,则Next[i] = 阅读全文
posted @ 2018-08-17 00:02 jvruodejrLS 阅读(118) 评论(0) 推荐(0)
摘要:void GetNext(char s[], int len) { Next[0] = -1; int j = -1; for (int i = 1; i -1 && s[j+1] != s[i]) j = Next[j]; if (s[j+1] == s[i... 阅读全文
posted @ 2018-08-16 13:54 jvruodejrLS 阅读(105) 评论(0) 推荐(0)
摘要:有 n 个员工,n-1个从属关系。 不能同时选择某个员工和他的直接上司,问最多可以选多少人,以及选法是否唯一。 树上的最大独立集问题。只不过多了一个判断唯一性。 dp[u][0]表示不选这个点的状态,dp[u][1]表示选这个点的状态。 如果不选 u, 那么 u点状态是由 dp[v][0] 或者 d 阅读全文
posted @ 2018-08-16 09:54 jvruodejrLS 阅读(149) 评论(0) 推荐(0)
摘要:给出一个长度不超过300000的字符串 S,然后给出 n 个长度不超过100的字符串。 如果字符串可以多次使用,用这 n 个字符串组成 S 的方法数是多少? 比如样例中,abcd = a + b + cd = ab + cd dp[i] 表示用这n个字符串构成,S中从 i ~ len之间的字母构成的 阅读全文
posted @ 2018-08-13 16:31 jvruodejrLS 阅读(135) 评论(0) 推荐(0)
摘要:有很多单词(只有小写字母组成,不会有重复的单词出现) 要统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). 每个单词长度不会超过10. Trie树的模板题。这个题内存把控不好容易MLE。 经过某一个节点就记一下插入时经过的次数。那么最后判断一个前缀的时候就看前缀是否能够存在。 如果存在, 阅读全文
posted @ 2018-08-11 22:52 jvruodejrLS 阅读(138) 评论(0) 推荐(0)
摘要:RMQ问题: 给定一个序列,每次询问一个区间最小值 / 最大值。 没有修改。 阅读全文
posted @ 2018-08-11 17:22 jvruodejrLS 阅读(328) 评论(0) 推荐(0)
摘要:HDU有个网名叫做8006的男性同学,结交网友无数,最近该同学玩起了浪漫,同时给n个网友每人写了一封信,这都没什么,要命的是,他竟然把所有的信都装错了信封!注意了,是全部装错哟! 现在的问题是:请大家帮可怜的8006同学计算一下,一共有多少种可能的错误方式呢? 错排。 当n个编号元素放在n个编号位置 阅读全文
posted @ 2018-08-11 10:39 jvruodejrLS 阅读(146) 评论(0) 推荐(0)
摘要:给定一个长度为n的序列,m次操作。 每次操作 可以将一个区间内的所有数字变为它的根号。 可以查询一个区间内所有元素的和。 线段树的初级应用。 如果把一个区间内的元素都改为它的根号的话,是需要每个数字都进行修改的。这样就会超时。 一个优化就是区间修改的当区间时,若区间长度等于区间和,那这个区间里的所有 阅读全文
posted @ 2018-08-11 10:08 jvruodejrLS 阅读(139) 评论(0) 推荐(0)
摘要:HDU - 1166 敌兵布阵 一个区间,两种操作:区间求和,单点修改。 HDU - 1754 I Hate It 单点修改,区间求最大值。 阅读全文
posted @ 2018-08-08 19:16 jvruodejrLS 阅读(122) 评论(0) 推荐(0)
摘要:区间DP主要思想是先在小区间取得最优解,然后小区间合并时更新大区间的最优解。 基本代码: //mst(dp,0) 初始化DP数组 for(int i=1;i<=n;i++) { dp[i][i]=初始值 } for(int len=2;len<=n;len++) //区间长度 for(int i=1 阅读全文
posted @ 2018-08-07 16:06 jvruodejrLS 阅读(593) 评论(0) 推荐(0)
摘要:nlogn写法。 维护一个 x 序列,存放着一个不下降子序列。(这个子序列并不是答案) 枚举到下一个数字 a[i] 时,若a[i] >= x序列中末尾的数字,则把它加到 x 序列最后面。 否则,找到 x 序列中,第一个大于 a[i] 的值,用 a[i] 更新它,目的是为了使后来的可能的 x 序列更长 阅读全文
posted @ 2018-08-06 20:43 jvruodejrLS 阅读(213) 评论(0) 推荐(0)
摘要:题意: 现有一笔经费可以报销一定额度的发票。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不超过给定额度的最大报销额。 这个题本来没啥好写的。处理一 阅读全文
posted @ 2018-08-06 18:49 jvruodejrLS 阅读(185) 评论(0) 推荐(0)
摘要:题意: n个数,求出这些数中满足 ai >= aj 的 ai % aj 的最大值。 排序去重,然后对于每一个a[i], 如果找到a[i] 的一个倍数 k*a[i] (k > 1)的位置,那么它之前的第一个数字就是一个使a[j] % a[i] 最大的可能的解。 这样,枚举a[i] 所有的倍数,求最大的 阅读全文
posted @ 2018-08-05 20:47 jvruodejrLS 阅读(241) 评论(0) 推荐(0)
摘要:题意: 多组测试数据。 每组数据有一个方程 a*x1^2 + b*x2^2 + c*x3^2 + d*x4^2 = 0,方程中四个未知数 x1, x2, x3, x4 ∈ [-100, 100], 且都不为0。 给定a, b, c, d ∈ [-50, 50] ,且都不为0, 求上述条件下方程解的个 阅读全文
posted @ 2018-08-05 18:56 jvruodejrLS 阅读(144) 评论(0) 推荐(0)

Contact with me