• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dwtfukgv
博客园    首页    新随笔    联系   管理    订阅  订阅

随笔分类 -  思维

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 13 下一页
HDU 4714 Tree2cycle (树形DP)

摘要:题意:给定一棵树,断开一条边或者接上一条边都要花费 1,问你花费最少把这棵树就成一个环。 析:树形DP,想一想,要想把一棵树变成一个环,那么就要把一些枝枝叶叶都换掉,对于一个分叉是大于等于2的我们一定要把它从父结点上剪下来是最优的, 因为如果这样剪下来再粘上花费是2(先不管另一端),如果分别剪下来再 阅读全文
posted @ 2016-10-06 21:09 dwtfukgv 阅读(262) 评论(0) 推荐(0)
HDU 5916 Harmonic Value Description (构造)

摘要:题意:给你 n 和 m,求一个1-n的排列,使得∑gcd(Ai,Ai+1) 恰为第 m 小. 析:可以想到最小的就是相邻都互质,然后依次,第 m 小就可以有一个是gcd为 k,然后其他的为1喽。 那么我们就可以想到把 m 和2*m 拿出来,然后让其他的都相邻,那么就一定是gcd为1. 代码如下: 阅读全文
posted @ 2016-10-04 20:49 dwtfukgv 阅读(147) 评论(0) 推荐(0)
CodeForces 722C Destroying Array (并查集)

摘要:题意:给定 n 个数,然后每次破坏一个位置的数,那么剩下的连通块的和最大是多少。 析:用并查集来做,从后往前推,一开始什么也没有,如果破坏一个,那么我们就加上一个,然后判断它左右两侧是不是存在,如果存在,那么就合并起来, 然后不断最大值,因为这个最大值肯定是不递减,所以我们一直更新就好。 代码如下: 阅读全文
posted @ 2016-10-04 10:22 dwtfukgv 阅读(610) 评论(0) 推荐(0)
HDU 4389 X mod f(x) (数位DP)

摘要:题意:求一个区间内各位数字之和能被该数整除的个数。 析:数位DP,dp[i][j][k][l] 表示前 i 位和为 j,对 k 取模为 l,然后就好做了。 代码如下: 阅读全文
posted @ 2016-10-02 23:11 dwtfukgv 阅读(224) 评论(0) 推荐(0)
HDU 4514 湫湫系列故事――设计风景线 (树形DP)

摘要:题意:略。 析:首先先判环,如果有环直接输出,用并查集就好,如果没有环,那么就是一棵树,然后最长的就是树的直径,这个题注意少开内存,容易超内存, 还有用C++交用的少一些,我用G++交的卡在32764K,限制是32768K。。 代码如下: 阅读全文
posted @ 2016-10-01 17:28 dwtfukgv 阅读(364) 评论(1) 推荐(0)
HDU 5903 Square Distance (贪心+DP)

摘要:题意:一个字符串被称为square当且仅当它可以由两个相同的串连接而成. 例如, "abab", "aa"是square, 而"aaa", "abba"不是. 两个长度相同字符串之间的 hamming distance是对应位置上字符不同的位数. 给定一行字符串和 m,输出字典序最小的字符串。 析: 阅读全文
posted @ 2016-10-01 13:25 dwtfukgv 阅读(317) 评论(0) 推荐(0)
CodeForces 721B Journey (DP)

摘要:题意:给定一个有向图,你从1出发到n,走尽可能多的点,并且使总权值不大于t。 析:在比赛时,竟然看成有向图了,就想了好久,感觉dp,但是不会啊。。。如果是有向图就好做多了,枚举边,然后打印就好,dp[i][j] 表示, 经过 i 个结点,并且在 j的最小时间。 代码如下: 阅读全文
posted @ 2016-10-01 10:43 dwtfukgv 阅读(378) 评论(0) 推荐(0)
UVa 12716 && UVaLive 6657 GCD XOR (数论)

摘要:题意:给定一个 n ,让你求有多少对整数 (a, b) 1 <= b <= a 且 gcd(a, b) = a ^ b。 析:设 c = a ^ b 那么 c 就是 a 的约数,那么根据异或的性质 b = a ^ c,那么我们就可以枚举 a 和 c和素数筛选一样,加上gcd, n*logn*logn 阅读全文
posted @ 2016-09-28 23:29 dwtfukgv 阅读(270) 评论(0) 推荐(0)
Gym 100962J Jimi Hendrix (树形DP)

摘要:题意:给定一棵树,然后每条边有一个字母,然后给定一行字符串,问你能不能从这棵树上找到,并输出两个端点。 析:树形DP,先进行递归到叶子结点,然后再回溯,在回溯的时候要四个值,一个是正着匹配的长度和端点,一个是反着匹配的长度和端点, 然后一个一个匹配,并不断更新这个长度和端点。 代码如下: 阅读全文
posted @ 2016-09-26 21:01 dwtfukgv 阅读(943) 评论(0) 推荐(0)
Gym 100962G Green Day (找规律)

摘要:题意:你用k 个生成树构成一个完全图。 析:n 个点的完全图有n(n-1)/2个边,一个生成树有n-1个边,你有k 个生成树 即边数等于 K(n-1) ,即 n(n-1)/2 == k(n-1) n = 2*k 所以2k 个边足够,你会发现在每个结点只能做一次开头或者结尾。然后找找规律就好。 代码如 阅读全文
posted @ 2016-09-25 23:32 dwtfukgv 阅读(378) 评论(0) 推荐(0)
CodeForces 718A Efim and Strange Grade (贪心)

摘要:题意:给定一个浮点数,让你在时间 t 内,变成一个最大的数,操作只有把某个小数位进行四舍五入,每秒可进行一次。 析:贪心策略就是从小数点开始找第一个大于等于5的,然后进行四舍五入,完成后再看看是不是还可以,一循环下去,直到整数位,或者没时间了。 代码如下: 阅读全文
posted @ 2016-09-24 22:57 dwtfukgv 阅读(488) 评论(0) 推荐(0)
UVaLive 6588 && Gym 100299I (贪心+构造)

摘要:题意:给定一个序列,让你经过不超过9的6次方次操作,变成一个有序的,操作只有在一个连续区间,交换前一半和后一半。 析:这是一个构造题,我们可以对第 i 个位置找 i 在哪,假设 i 在pos 位置,那么如果 (pos-i)*2+i-1 <= n,那么可以操作一次换过来, 如果不行再换一种,如果他们之 阅读全文
posted @ 2016-09-22 23:38 dwtfukgv 阅读(320) 评论(0) 推荐(0)
UVa 1611 Crane (构造+贪心)

摘要:题意:给定一个序列,让你经过不超过9的6次方次操作,变成一个有序的,操作只有在一个连续区间,交换前一半和后一半。 析:这是一个构造题,我们可以对第 i 个位置找 i 在哪,假设 i 在pos 位置,那么如果 (pos-i)*2+i-1 <= n,那么可以操作一次换过来, 如果不行再换一种,如果他们之 阅读全文
posted @ 2016-09-22 23:37 dwtfukgv 阅读(719) 评论(0) 推荐(0)
HDU 5900 QSC and Master (区间DP)

摘要:题意:给出n对数keyi,vali表示当前这对数的键值和权值,可以操作将连续的两个数合并,如果满足gcd(a[i],a[i+1])>1,得到的价值是两个数的权值和, 每次合并两个数之后,这两个数就会消失,然后旁边的数会接上. 析:区间DP,首先dp[i][j] 表示区间第 i 段到第 j 段所能得到 阅读全文
posted @ 2016-09-20 13:39 dwtfukgv 阅读(174) 评论(0) 推荐(0)
CodeForces 712C Memory and De-Evolution (贪心+暴力)

摘要:题意:现在有一个长度为 x 的正三角形,每次可以把一条边减小,然后用最少的时间变成长度为 y 的正三角形。 析:一开始,正着想,然后有一个问题,就是第一次减小多少才能最快呢?这个好像并不好确定,然后我就可以倒着想,从一个小三角形变成一个大三角, 那么边长长的越快越好了,剩下的就暴力了。 代码如下: 阅读全文
posted @ 2016-09-18 20:46 dwtfukgv 阅读(182) 评论(0) 推荐(0)
HDU 5881 Tea (模拟)

摘要:题意:有一壶水, 体积在 LLL 和 RRR 之间, 有两个杯子, 你要把水倒到两个杯子里面, 使得杯子水体积几乎相同(体积的差值小于等于1), 并且使得壶里剩下水体积不大于1. 你无法测量壶里剩下水的体积, 问最小需要倒水的次数。 析:考虑倒水的大致过程,不妨设 L > 0。首先向一个杯子倒 L/ 阅读全文
posted @ 2016-09-18 00:24 dwtfukgv 阅读(432) 评论(0) 推荐(0)
HDU 5884 Sort (二分+k叉哈夫曼树)

摘要:题意:n 个有序序列的归并排序.每次可以选择不超过 k 个序列进行合并,合并代价为这些序列的长度和.总的合并代价不能超过T, 问 k最小是多少。 析:首先二分一下这个 k 。然后在给定 k 的情况下,这个代价其实就是 k 叉的哈夫曼树问题。然后用两个队列维护一下就好。 代码如下: 阅读全文
posted @ 2016-09-17 23:19 dwtfukgv 阅读(468) 评论(0) 推荐(1)
HDU 5883 The Best Path (欧拉路或者欧拉回路)

摘要:题意: n 个点 m 条无向边的图,找一个欧拉通路/回路使得这个路径所有结点的异或值最大。 析:由欧拉路性质,奇度点数量为0或2。一个节点被进一次出一次,度减2,产生一次贡献,因此节点 i 的贡献为 i 点的度数除以2然后再模22​​degree​u​​​​⌋ mod 2)∗a​u​​。欧拉回路的起 阅读全文
posted @ 2016-09-17 20:10 dwtfukgv 阅读(714) 评论(0) 推荐(0)
UVaLive 7455 Linear Ecosystem (Gaussi 消元)

摘要:题意:对一个k元向量, 每次左乘一个k*k的矩阵得到新的向量.问经过一定次数的左乘后,能否使得该向量不再变化. (同时要求此时向量非零)。 析:设初始向量为A,矩阵为P.由于每次矩阵P都是左乘A, 那么可以把若干个P合并. 则题目的条件是: 化简为: 由于要求 所以 P-1 必须不可逆.可以直接用高 阅读全文
posted @ 2016-09-16 22:20 dwtfukgv 阅读(284) 评论(0) 推荐(0)
UVaLive 7461 Separating Pebbles (暴力)

摘要:题意:给出平面上的两类点,判断是否能画一条直线将两类点完全分割开来. 析:用暴力去枚举任意两点当作直线即可。 代码如下: 阅读全文
posted @ 2016-09-16 20:26 dwtfukgv 阅读(511) 评论(1) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 13 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3