图生成树)连通性
2020100XWH
这个作者很懒,什么都没留下…
展开
-
k叉树最短路径和
[NOI2015] 荷马史诗 - 洛谷哈夫曼树的思想,每次合成k个点为一个(注意补点为k-1整数倍),边合成边记录总路径和。#include<iostream>#include<math.h>#include<stdio.h>#include<vector>#include<queue>using namespace std;typedef long long ll;struct node{ ll w,h; .原创 2022-02-28 14:49:16 · 73 阅读 · 0 评论 -
倍增((((
直接找2的幂次的距离不好找但可以通过递推从低次找到高次0次即是初始在中间点更新(Floyd)加一维更新幂次Floyd用于中间点更新两点最短距离跑路 - 洛谷#include<bits/stdc++.h>using namespace std;bool f[55][55][61];long long dis[55][55];int n,m,u,v;int main (){ cin>>n>>m; memset(dis,原创 2022-02-25 00:07:35 · 394 阅读 · 0 评论 -
单一维度方向选择的联通数最优
对于每个可能的联通分支(等价类)有两个可能的选择,被从左同化和被从右同化,两边达到的效果是不一定一样的,因为传递有条件。可以bfs标记两个方向的同类(用两个数组标记每个目标点)然后用链表处理求解最优分配,将一个方向联通代表分别指向另一个方向的联通代表(加一是为了防止末尾空跳不出)通过去min的方法减去了另一方向重复的情况,再通过链表(以及方向的大小关系)直接跳过来减去此方向的重复情况#include<bits/stdc++.h>using namespace std;c.原创 2021-09-15 12:12:49 · 57 阅读 · 0 评论 -
第一道交互)找树
给ceil(n/2)次询问目标点和其余点到他的最短距离,距离1即直接相连直接确定位置,先取一个点,将距离分为奇和偶,奇架连在偶上#include<bits/stdc++.h>using namespace std;int d[2005][2005];int n;void ask1(int k){ printf("? %d\n",k); fflush(stdout); for(int i=1;i<=n;++i) scanf("%d",&d[k][i]);}原创 2021-09-13 17:49:25 · 47 阅读 · 0 评论 -
判断图能否存在生成树即判断是否连通
连掉一个点后不是去掉这个点,还可以与其他有联系的点连接(想当然),结合案例整理题意可以加个过程先后考虑:用地图存数据,用并查集连接点,连接一切能连接的点,连接即连前被连即连后,直至加入n个点,用结构体存贮连接时的边#include<bits/stdc++.h>#define xx first;#define yy second;#define rep(i,a,b) for(int i=a;i<=b;++i)using namespace std;const .原创 2021-09-09 11:38:17 · 379 阅读 · 0 评论