上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页
摘要: 标准的广搜。 采用队列保存形态,如果不会广搜的可以多看看PJ知识点。由于输入多组数据,每次标记数组要清空,每次队列元素也都要清空。 参考代码如下: 1 #include<iostream> 2 #include<cstring> 3 #include<queue> 4 using namespace 阅读全文
posted @ 2019-07-11 21:35 shao0320 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 经典搜索题。 考虑以下9种优化 1)按木棍长度排序,使得较大长度的木棍被较早的选出。 2)只找能够整除的木棍长度,因为不能被sum整除一定不会出整数根,自然也就不是最优解。 3)枚举木棍长度时只需从最大的木棍长度(拼出的木棍长度不会小于最大的长度也不会大于总长度)枚举至总和的二分之一。如果还没有出解 阅读全文
posted @ 2019-07-11 21:31 shao0320 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 个人认为这周题中较难的一道。 题意大概为:给定一张N个点M条边的无向图,求出无向图的一棵最小生成树,满足一号节点的度数不超过给定的整数K。保证 N <= 20 首先用map存取节点,之后抛去1号节点,求每一个联通分量的MST,就得到了一个局部最优解,设p为联通块的个数,接下来从每一个联通分量中找一个 阅读全文
posted @ 2019-07-11 20:32 shao0320 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 给定一棵n个点的图上的最小生成树,让你把它补成完全图,使得新图的MST还是给定的MST且边权和最小,输出需要增加的边权和。 设size[i]表示以i号为祖先的并查集的大小。 首先按边权排序,之后在做MST的过程中,答案cnt+=(size[v]*size[u]-1)*(w+1),来解释一下这个式子, 阅读全文
posted @ 2019-07-11 20:21 shao0320 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 标算是贪心,我写了个差分约束????? 设dist[i]表示1-i号土地种的树的总棵数,考虑以下几种约束条件: 1)dist[y]>=dist[x]+z,即x号土地至y号土地间至少种了z棵树 2)dist[i-1]>=dist[i]-1,即i号土地最多比i-1号土地多种1棵树 3)dist[i]>= 阅读全文
posted @ 2019-07-11 07:59 shao0320 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 新建一个虚拟节点后直接跑最小生成树即可,从虚拟节点往每个节点连的边权为每个点建发电站的代价,许多人的考场贪心策略是:先构建原图的最小生成树后找一个花费最小的地方建发电厂。但是这样做不对的地方在于:如果每个地方的点权很小但是一些边的边权十分大,就不如多建几个发电厂核算,因此新建虚拟节点就是考虑到了这种 阅读全文
posted @ 2019-07-08 21:54 shao0320 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 这题主要考察对“卫星电话”的理解,k个卫星电话相当于可以让k个联通块保持联通,因此我们只需要让原图连成k个联通块,然后给每个联通块的任意一个节点发一部卫星电话即可。因此我们需要连n-k条边,特别地,当k=0时只需要连n-1条边 一定要好好读题!!!题目要求求边权的最大值,毒瘤样例求最大值,最小值,边 阅读全文
posted @ 2019-07-08 21:46 shao0320 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 因为D[i]表示i号节点到1号节点的最短路径,所以可以先以1为源点跑一边SPFA,预处理出每个点到1号节点的最短路。之后开始考虑所谓的“最短路径生成树”,在这棵生成树中有以下性质:当fa[i]==node时,必满足dist[node]+w(node,i)=dist[i],但是dist[node]+w 阅读全文
posted @ 2019-07-08 21:38 shao0320 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 省选D2T3考板子可真是不多见呢。。。。~~~ 这题就是一个裸的树链剖分,对于每一个Add操作,维护从u至v的路径,对于每一个Query操作,询问以u为根的子树之和。如果不会树链剖分可以看我的往期博客,具体细节在代码之中就不多赘述了~ 下面给出参考代码: 1 #include<iostr 阅读全文
posted @ 2019-07-07 08:26 shao0320 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 树链剖分用来解静态树上维护路径信息的问题,例如:给定一颗点带权的树,每次去修改某条路径上所有点的点权,或是求某条路径上的点权之和,当这棵树的形态为一条链时,这实际上就是一个区间修改求和的问题,可以用线段树等数据结构方便地求解。对于其他的情况,由于树的形态不变,因此树链剖分的策略是把这棵树恰当的剖分为 阅读全文
posted @ 2019-07-04 14:44 shao0320 阅读(235) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页
****************************************** 页脚Html代码 ******************************************