题目链接: http://codeforces.com/problemset/problem/780/E

题意: 给出一个 n 个点 m 条边的图, 有 k 个人, 初始位置可以为任意位置, 每个人最多不能经过超过 ceil(2 * n / k) 个顶点. 要使 k 个人经历所有顶点, 并输出 k 个人经历的顶点数目和路径.

思路: 先 dfs 遍历一下图, 并记录路径 (回溯路径也要记录). 然后再将路径按条件分配给 k 个人即可.

代码:

 #include <iostream>
#include <stdio.h>
#include <vector>
using namespace std; const int MAXN = 2e5 + ;
vector<int> vt[MAXN];
int vis[MAXN], path[MAXN << ];
int indx = ; void dfs(int x){
vis[x] = ;
path[++indx] = x;
for(int i = ; i < vt[x].size(); i++){
if(!vis[vt[x][i]]){
dfs(vt[x][i]);
path[++indx] = x;
}
}
} int main(void){
int n, m, k, x, y;
scanf("%d%d%d", &n, &m, &k);
for(int i = ; i < m; i++){
scanf("%d%d", &x, &y);
vt[x].push_back(y);
vt[y].push_back(x); }
dfs();
int cnt = ( * n + k - ) / k;
for(int i = ; i < k; i++){
int cc = min(cnt, indx);
if(!cc){
printf("1 1\n");
continue;
}
printf("%d ", cc);
for(int j = ; j < cc && indx; j++,indx--){
printf("%d ", path[indx]);
}
puts("");
}
return ;
}

cf780E(dfs)的更多相关文章

  1. BZOJ 3083: 遥远的国度 [树链剖分 DFS序 LCA]

    3083: 遥远的国度 Time Limit: 10 Sec  Memory Limit: 1280 MBSubmit: 3127  Solved: 795[Submit][Status][Discu ...

  2. BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]

    1103: [POI2007]大都市meg Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2221  Solved: 1179[Submit][Sta ...

  3. BZOJ 4196: [Noi2015]软件包管理器 [树链剖分 DFS序]

    4196: [Noi2015]软件包管理器 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1352  Solved: 780[Submit][Stat ...

  4. 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)

    图的遍历的定义: 从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次.(连通图与非连通图) 深度优先遍历(DFS): 1.访问指定的起始顶点: 2.若当前访问的顶点的邻接顶点有未被访问的,则 ...

  5. BZOJ 2434: [Noi2011]阿狸的打字机 [AC自动机 Fail树 树状数组 DFS序]

    2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 2545  Solved: 1419[Submit][Sta ...

  6. POJ_2386 Lake Counting (dfs 错了一个负号找了一上午)

    来之不易的2017第一发ac http://poj.org/problem?id=2386 Lake Counting Time Limit: 1000MS   Memory Limit: 65536 ...

  7. 深度优先搜索(DFS)

    [算法入门] 郭志伟@SYSU:raphealguo(at)qq.com 2012/05/12 1.前言 深度优先搜索(缩写DFS)有点类似广度优先搜索,也是对一个连通图进行遍历的算法.它的思想是从一 ...

  8. 【BZOJ-3779】重组病毒 LinkCutTree + 线段树 + DFS序

    3779: 重组病毒 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 224  Solved: 95[Submit][Status][Discuss] ...

  9. 【BZOJ-1146】网络管理Network DFS序 + 带修主席树

    1146: [CTSC2008]网络管理Network Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 3495  Solved: 1032[Submi ...

随机推荐

  1. java是用utf-16be编码方式编的。中文和英文都是两个字节

  2. Java 对象引用以及对象赋值

    一.Vehicle veh1 = new Vehicle(); 通常这条语句执行的动作被称为创建一个对象,其实他包含了四个动作. 1.new Vehicle  :表示在堆空间内创建了一个Vehicle ...

  3. SM234

    2017-2018-2 20179212 <网络攻防> 作业 本次实验课由王孟亚.李栋我们三个共同完成,我主要负责SM3的研究和Python实现. SM3的工作原理 SM3密码杂凑算法采用 ...

  4. ACM学习历程—Hihocoder 1290 Demo Day(动态规划)

    http://hihocoder.com/problemset/problem/1290 这题是这次微软笔试的第三题,过的人比第一题少一点,这题一眼看过去就是动态规划,不过转移方程貌似不是很简单,调试 ...

  5. ACM学习历程—HDU 5534 Partial Tree(动态规划)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5534 题目大意是给了n个结点,让后让构成一个树,假设每个节点的度为r1, r2, ...rn,求f(x ...

  6. bzoj 4103: 异或运算 可持久化Trie

    题目大意: 给定长度为n的数列X={x1,x2,...,xn}和长度为m的数列Y={y1,y2,...,ym},令矩阵A中第i行第j列的值\(A_{ij} = x_i \text{ xor } y_j ...

  7. BZOJ3039:玉蟾宫

    浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?id ...

  8. bzoj 2716 天使玩偶 —— K-D树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2716 果然和 bzoj 2648 是一样的吧: 只是数组要迷之开大,3e5+5 会RE? 代 ...

  9. poj 2388 Who's in the Middle(快速排序求中位数)

    一.Description FJ is surveying his herd to find the most average cow. He wants to know how much milk ...

  10. POJ3087(模拟)

    #include"iostream" #include"string" #include"map" using namespace std; ...