codeforces
Glory_g
明日之我胸中有沟壑,立马振山河
展开
-
Codeforces Round #432 (Div. 2) D - Arpa and a list of numbers
题意 : 给出n个数,以及x,y。现在你可以对这n个数进行两种操作。把任意一个数删除,花费为x。把任意一个数加一,花费为y。现在要求操作后所有数gcd不为1(不互质),求最小花费。题解 : 这个题我们要考虑调和级数,怎么做呢,我们考虑最大公因数只可能是某个素数,如果不是素数,那么这个数一定不会最优的。这里面有一个套路。因为注意到 ai 的范围只有 1e6 的大小,所原创 2017-09-05 19:38:49 · 237 阅读 · 0 评论 -
2012-2013 ACM-ICPC, Asia Tokyo Regional Contest Beautiful Spacing 二分 + dp + 双指针扫描
题意 : 给你一个含n个单词的文本,按照一些规则放入宽度为w的矩形中,怎样使最大的空格最小。题解 : 首先我们可以发现答案是满足二分性质的,如果少的空格可以那么多的也一定可以,这样的话我们就可以对答案进行二分,判断一个mid 是否可以成为答案。我们定义dp[i]表示第i个单词能不能当某一行的末尾,这样的话,我们可以定义dp[0] = 1 认为一开始的满足的 (这就是边界条件),dp[i] 肯定原创 2017-09-13 20:21:55 · 468 阅读 · 0 评论 -
Codeforces 863D Yet Another Array Queries Problem
题意 :一个序列支持两种操作 1. 将 l 到 r 向右移动一个单位 2. 将l 到 r 翻转题解 :首先注意到这个题目是一种离线的查询方式,另外又发现这个题最后的询问只有100个,这样的话我们不难想到这个题目应该有 O( 100 * 2e5 ) 的算法。考虑到每一次的操作只会影响在这个操作后面的操作,但是不会影响前面的操作,所以我们只需要逆序的将所有的操作模拟一遍就可以了。#include <原创 2017-10-01 10:40:28 · 263 阅读 · 0 评论 -
Codeforces 453B B. Little Pony and Harmony Chest(dp+数论)
题解 : 首先发现这个题目中的 b 数组中每一个元素都不会超过 58 为什么呢 ? 自己想去 …. 然后我们发现,两个数互质就是没有相同的素因子,然后 1 -57 只有 18 个素数,先将这 18 个数打进一个表然后,用 state[i] 存下每个数包含的所有的素因子。 剩下的就是转移了 dp[i][j] 表示前 i 个 用了 j 这些素数 (j 是一个二维的压缩状态)。 dp[i原创 2017-10-19 15:35:05 · 428 阅读 · 1 评论 -
Codeforces Round #443 (Div. 2) C Short Program
题解 : 这个题目让你求少于 5 个的一种表示,对于每一个数的使用。其实就是对于每个数的每一位不管是 0 还是 1 都可以变成相应的数 我们就可以先让每一位都是 0 和每一位都是1 的数 (0 和 1023) 分别对这些操作进行操作,然后,这样的话我们就知道了每一位0、1操作之后变成了什么东西,然后我们就可以仅用 | 和 ^操作表示这些操作 ans <= 2; 具体细节看代码.#include <原创 2017-10-27 12:40:24 · 265 阅读 · 0 评论 -
codeforces 486D D. Valid Sets(树形dp)
题解 : 由于这个题目说了是最大值和最小值的差,注意到数据范围,我们就可以枚举每一个值作为最大值然后去找联通块 就可以了 注意在这样做的时候有一个小问题就是出现与最大值相等的一个值的时候怎么办,我们可以规定好他们的顺序,每次选择下标大的或者下标小的那个都可以,这仅仅是为了避免重复。 dp (i) *= (dp (son) + 1) son 取遍 i 的所有儿子节点 #include <iost原创 2017-10-10 20:56:05 · 235 阅读 · 0 评论 -
codeforces 337D D. Book of Evil (树形 dp)
题解 : 我们发现可能藏着魔鬼的点就是那些,到所有被感染的点的最大距离小于等于d的点,剩下的我们的目的就是求出每个点到所有感染点的最大距离,这就是一个类似于求,树上的任意一个点,到所有点的最大距离,就是一个简单的树形dp;#include <algorithm>#include <cstring>#include <cstdio>#include <vector>#include <iost原创 2017-10-17 09:30:28 · 280 阅读 · 0 评论 -
Codeforces Round#450 div2 D - Unusual Sequences
吐槽自己 : 从上次青岛区域赛回来自己的做题时间约等于零,发现自己变得超级菜啊,最近要找找手感要不ec 要凉了啊题意 :很容易理解 不说了题解 : 首先如果 y 不能整除 x 肯定无解,这就是唯一的一种无解的情况,下面说有解的情况,就是y 整除 x ,在y 整除 x的情况下,有多少解呢 ?思想就是对 y / x的质因数进行容斥,用全部的减去不符合条件的,利用状态压缩思想进行二进制枚举就好了。具体细节原创 2017-12-12 21:36:38 · 246 阅读 · 0 评论