随笔分类 -  Kruskal

摘要:本题看似很难,实际上思路非常简单——如果你想通了。 首先有一个问题:图中有几个点?大部分的人会回答$n$个点。错了,有$n+1$个。 多出来的那个点在哪?关键在于你要理解每一个决策的意义。实际上,多出来的那个点是地下的天然矿泉水。当我们打井时,我们实际上是在往地下连边。理解了这一点,代码就没有任何难 阅读全文
posted @ 2019-07-03 19:56 hulean 阅读(138) 评论(0) 推荐(0)
摘要:【题意】 平面上有$n(n using namespace std; const int MAXN=1000+10; const int MAXM=MAXN MAXN; int n,q,T,ans=0x3f3f3f3f; int s[10][MAXN]; int c[10]; struct Node 阅读全文
posted @ 2019-07-02 20:40 hulean 阅读(240) 评论(0) 推荐(0)
摘要:【题意】 给出一个$n(n using namespace std; const int MAXN=100+10; const int MAXM=10000+10; int n,m; int fa[MAXN]; int maxn,ans=0x3f3f3f3f; struct Node { int u 阅读全文
posted @ 2019-07-02 20:40 hulean 阅读(193) 评论(0) 推荐(0)
摘要:由于此题边数比较小,所以可以先给边排个序,然后跑m遍最小生成树,每跑一次删除一条边,找最优解。 防TLE技巧 把边按从小到大的顺序排好,那么只要当前无法联通,那么后面也无法联通 最优解找法 cpp double tmp=(1.0 e[i].w)/(1.0 e[j].w); //因为边是有序的,所以当 阅读全文
posted @ 2019-05-01 10:17 hulean 阅读(374) 评论(0) 推荐(0)