• 树的性质和dfs的性质 Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) E


    http://codeforces.com/contest/782/problem/E

    题目大意:

    有n个节点,m条边,k个人,k个人中每个人都可以从任意起点开始走(2*n)/k步,且这个步数是向上取整的。要求:着k个人要走完所有的节点,且每个人至少走1步。

    思路:= =dfs找一棵树,一棵树是n-1条边,所以从树根开始走完所有的,也就只有n*2-2步,所以不会达到上限。md这么简单都没有想到,233

    //看看会不会爆int!数组会不会少了一维!
    //取物问题一定要小心先手胜利的条件
    #include <bits/stdc++.h>
    using namespace std;
    #pragma comment(linker,"/STACK:102400000,102400000")
    #define LL long long
    #define ALL(a) a.begin(), a.end()
    #define pb push_back
    #define mk make_pair
    #define fi first
    #define se second
    #define haha printf("haha
    ")
    const int maxn = 2e5 + 10;
    int n, m, k;
    vector<int> G[maxn];
    bool vis[maxn];
    vector<int> ans[maxn];
    int lim, cnt, rest;
    
    void dfs(int u){
        vis[u] = true;
        ans[cnt].pb(u); rest--;
        if (rest == 0) {cnt++; rest = lim;}
        for (int i = 0; i < G[u].size(); i++){
            int v = G[u][i];
            if (vis[v]) continue;
            dfs(v);
            ans[cnt].pb(u); rest--;
            if (rest == 0) {cnt++; rest = lim;}
        }
    }
    
    int main(){
        cin >> n >> m >> k;
        for (int i = 1; i <= m; i++){
            int u, v; scanf("%d%d", &u, &v);
            G[u].pb(v); G[v].pb(u);
        }
        lim = n * 2 / k;
        if ((2 * n) % k) lim++;
        rest = lim, cnt = 1;
        dfs(1);
        if (rest == lim) cnt--;
        for (int i = cnt + 1; i <= k; i++){
            ans[i].pb(1); ans[i].pb(G[1][0]);
        }
        for (int i = 1; i <= k; i++){
            printf("%d ", ans[i].size());
            for (int j = 0; j < ans[i].size(); j++){
                printf("%d ", ans[i][j]);
            }
            cout << endl;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    最长回文子序列---DP
    最长回文子串(暴力破解)
    两数相加
    多数元素
    MPI集群搭建
    字符串截取子串(Java substring , indexOf)
    JDK和环境配置,eclipse安装与使用
    ubantu上面 NFS服务器安装
    Django中间件的应用
    Django的url路由系统简介
  • 原文地址:https://www.cnblogs.com/heimao5027/p/6661903.html
Copyright © 2020-2023  润新知