题目链接:
#includeusing namespace std;#define maxn 200005#define LL long long#define pii pair map ,LL>mp,mpp;LL a[maxn],b[maxn];LL gcd(LL a,LL b){ return b?gcd(b,a%b):a;}int main(){ LL n; scanf("%lld",&n); for(LL j=0;j
F1:
判断一下 bfs 就ok
#includeusing namespace std;#define maxn 200005#define LL long longvector q[maxn];int fa[maxn];bool flag[maxn];void bfs(int u){ queue Q; Q.push(u); while(!Q.empty()){ u = Q.front(); Q.pop(); for(int j=0;j
F2 :
先判断 节点的度够不够 不够直接 输出 NO
dfs 判断1有多少个连通块 如果连通块数量 大于d 直接输出NO
最后 添加 在 1 节点添加 d-连通块个数个 点 bfs
#includeusing namespace std;#define maxn 200005#define LL long long#define pii pair vector q[maxn],z;vector lis;bool fa[maxn];int n,m,d;void dfs(int u){ for(int j=0;j