上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 83 下一页
摘要: 嘟嘟嘟 我真不信这题在洛谷上是一道黄题,起码绿题也行啊…… dp方程不难,dp[i][j]表示前 i 位用了 j 个乘号时的答案。然后转移方程我竟然没想出来(菜的过分)……其实就是枚举第 j 个乘号在哪儿,然后转移方程就是dp[i][j] = max(dp[i][j], dp[k][j] * num 阅读全文
posted @ 2018-10-31 23:02 mrclr 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 自己写了一个封装在结构体里的高精度模板,支持的操作有限,但是NOIP应该够用了。 支持一下操作: 1.读入,输出,将字符串转换成对应的高精度数 2.不支持负数 3.高精加、减、乘、高精除以低精。 4.高精取模低精。 5.比较大小 6.取最大值。 1 #include<cstdio> 2 #inclu 阅读全文
posted @ 2018-10-31 21:48 mrclr 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这虽然是一道水题,然而我Debug了快一个点儿,于是决定在A了之后发篇博客。 这显然是一个有依赖性的背包问题,但是因为这道题一个主件最多只有两个附件,所以只有4种情况: 1.只选主件 2.主件+附件1 3.主件+附件2 4.主件+附件1+附件2 (5.都不选) 而且这四种情况是互斥的,那么这 阅读全文
posted @ 2018-10-31 17:56 mrclr 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 一道非常好的构造题。 我反正是一点思路都没有,最后还是看了题解。 假如n = 2,那么树的重量就是di,j。 然后n = 3,画一个图:,则重量=(d1,3 + d2,3 - d1,2) / 2。 n = 4同理:,加上的应该是(d1,4 + dj,4 - d1,j) / 2 (j < 4) 阅读全文
posted @ 2018-10-31 13:23 mrclr 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 一道人人皆知的dp基础题。我听人讲了无数遍,就是没写。 问题可以转化为找到两条从(1, 1)到(n, m)不相交的路径,使路径上的好感度之和最大。 这道题的关键在于dp的顺序,观察会发现,只要保持这两条路径枚举到同一条对角线上,顺序就对了。于是令dp[k][i][j]表示到第k条对角线,靠右 阅读全文
posted @ 2018-10-31 09:39 mrclr 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 题面挺绕的,“翻译”一下: 1.牧区是一个点,牧场是所有直接相连的点构成的联通块。 2.两个牧区之间的距离是这两个距离之间的最短路,只有直接相连的两个牧区之间的距离是欧几里得距离。 3.牧场的直径:这个牧场中两个相隔最远的两个牧区之间的距离。 4.求添加一条边合并两个牧场之后,使这个新的牧场 阅读全文
posted @ 2018-10-30 22:03 mrclr 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 看n那么小,刚开始我就想暴力dijkstra,结果O(Qnlogn)光荣TLE,竟得了80分…… 正解是floyd。 考虑朴素的floyd,dis[i][j]表示 i 到 j 的最短路,然而最原始的是dis[k][i][j],以前k个点为中继点时 i 到 j 的最短路,于是有dis[k][i 阅读全文
posted @ 2018-10-30 17:48 mrclr 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这道题的题面相当的迷,我看了半天都没懂。最后看了题解的解释才懂。 他是这么个意思:对于所有能活着走到终点的路径,输出每一条路径中过路费最多的城市的最小值。 那么自然想到二分过路费,然后用dijkstra或spfa判断是否存在一条路径,该路径上的每一个城市的过路费都小于当前二分值mid。用di 阅读全文
posted @ 2018-10-30 15:48 mrclr 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 又刷了一道水题…… 很显然只要判断这个图是否是二分图就行了,判断方法就是染色。如果对于边(u->v),两个点颜色相同,那么就说明图中存在奇环,不是二分图。 统计答案的时候输出两种颜色较小的就行了。 需要注意的是,图可能不连通,或者有些点不存在。 1 #include<cstdio> 2 #i 阅读全文
posted @ 2018-10-30 14:51 mrclr 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 题面很清楚,就是让求最小环。 有两种做法: F1:用带权并查集。将每一条边连接的两个点所在集合合并,如果已经在一个集合,说明形成了环,用dis[x] + dis[y] + 1更新ans。因为图中的边是有向的,所以并查集也必须又向,对于边(x->y),可以规定x所在集合向y和并,那么同时dis 阅读全文
posted @ 2018-10-30 12:01 mrclr 阅读(169) 评论(0) 推荐(0) 编辑
上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 83 下一页