摘要: 70分做法: 全排列,再枚举这个点由那个点扩展出来的即可。 cpp include include include include include include include using namespace std; typedef long long ll; const int maxm=20 阅读全文
posted @ 2019-10-12 19:28 lihan123 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 两种方法 1.Kruskal算法(解决疏松图) 7.最小生成树计数 做法:应用最小生成树的两条性质: 1.不同的最小生成树中,每种权值的边出现的个数是确定的 2.不同的生成树中,某一种权值的边连接完成后,形成的联通块状态是一样的 此时需要记录所有的边权种类,最小生成树需要的种类边权个数,暴力二进制枚 阅读全文
posted @ 2019-10-12 19:18 lihan123 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 介绍几种贪心题型 1.选择不相交区间: 按照结束时间从大到小排序,如果区间左端点大于当前最右点就选,否则不选。 例题:活动安排: 2.区间选点问题: 按照区间的结束位置从大到小排序。对于当前区间如果选的点不够,就尽量在区间末尾选点。 例题:种树 3.区间覆盖问题: 将闭区间按照左端点从小到大排序。对 阅读全文
posted @ 2019-10-12 19:14 lihan123 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 感觉这个题没什么好说的。 对于树的情况直接从1开始搜(保证字典序最小),从大到小排序它的子节点,再接着搜。 对于基环树,直接$n^2$暴力删边即可,用$vector$存边,排序预处理,枚举边,给边两侧的点打上标记,在搜到他们俩时直接continue就行,剩下的和树一样 cpp include inc 阅读全文
posted @ 2019-10-12 16:40 lihan123 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 60分做法: 暴力枚举两个没被覆盖点,形成一个合法的抛物线,在扫一遍能在抛物线上的点,打上标记即可。 cpp include include include include include include using namespace std; int t; int n,m,U,w; double 阅读全文
posted @ 2019-10-12 10:06 lihan123 阅读(185) 评论(0) 推荐(0) 编辑