zoukankan      html  css  js  c++  java
  • #423 Div2 D

    #423 Div2 D

    题意

    构造一个 n 个节点的树,恰好有 k 个叶子节点 (叶子节点的定义是只与树上的某一个节点存在连边),要求任意两个叶子节点的距离的最大值最小,距离为两个节点间边的数量,输出距离的最大值,以及 n - 1 条边。

    分析

    构造 “星型树” ,节点 1 为中心,首先连 k 条边到 k 个节点,对于多的点,周期性的绕最外层的 k 个点不断连接即可。

    code

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int MAXN = 1e5 + 5;
    typedef pair<int, int> P;
    vector<P> ans;
    vector<int> v1, v2;
    int main() {
        int n, k;
        cin >> n >> k;
        n--;
        n -= k;
        int lens = 2;
        for(int i = 2; i <= k + 1; i++) {
            ans.push_back(P(1, i));
            v1.push_back(i);
        }
        int z = k + 2;
        while(n) {
            lens++;
            if(n > 1) lens++;
            for(int i = 0; i < v1.size() && n > 0; i++) {
                ans.push_back(P(v1[i], z));
                v2.push_back(z);
                z++; n--;
            }
            v1.clear();
            v1 = v2;
            v2.clear();
        }
        cout << lens << endl;
        for(int i = 0; i < ans.size(); i++) {
            cout << ans[i].first << " " << ans[i].second << endl;
        }
        return 0;
    }
    
  • 相关阅读:
    fastx_toolkit软件使用说明
    转:bwa的使用方法
    转: Annovar 软件注释流程介绍
    转:linux下bwa和samtools的安装与使用
    GFF3格式
    漂浮广告窗
    CPU指令集设计RISC和CISC
    南方
    成都 夹三品
    微嵌1
  • 原文地址:https://www.cnblogs.com/ftae/p/7163586.html
Copyright © 2011-2022 走看看