瞬间移动

题意:要求构造一个图,使其dfs树中有t条树边,b条返祖边,f条前向边,c条其他边。

膜了题解才会,好神啊。

考虑所有结点的深度之和,这个值必须介于$[max(b,f+t),C^{2}_{n}-c]$之间。按照这个构造树以后就容易了。

#include<vector>
#include<cstdio>
#include<algorithm>
#define MN 110000
using namespace std; int n,t,b,f,c,to[MN],top,mi;
vector<int> v[MN],e[MN];
void dfs(int x){
to[++top]=x;
for (int i=;i<top&&b;i++) e[x].push_back(to[i]),b--;
for (int i=;i<top-&&f;i++) e[to[i]].push_back(x),f--;
for (int i=;i<v[x].size();i++) dfs(v[x][i]);
top--;
}
void DFS(int x){
to[++top]=x;
for (int i=;i<v[x].size();i++) DFS(v[x][i]);
}
void _DFS(int x){
for (int i=;i<=top&&c;i++) e[x].push_back(to[i]),c--;
for (int i=;i<v[x].size();i++) _DFS(v[x][i]);
}
int main(){
scanf("%d%d%d%d",&t,&b,&f,&c);n=t+;
mi=max(b,f+t);
if (1LL*n*(n-)/-c<mi) return puts("-1"),;
to[top=]=;
for (int i=;i<=n;i++){
int s=min(mi-(n-i),top);
mi-=s;v[to[s]].push_back(i);
if (s==top) to[++top]=i;
}
top=;
dfs();
for (int i=;i<=n&&c;i++){
for (int j=;j<v[i].size()&&c;j++){
top=;
for (int k=;k<j;k++) DFS(v[i][k]);
_DFS(v[i][j]);
}
}
printf("%d\n",n);
for (int i=;i<=n;i++){
printf("%d",v[i].size()+e[i].size());
for (int j=;j<v[i].size();j++) printf(" %d",v[i][j]);
for (int j=;j<e[i].size();j++) printf(" %d",e[i][j]);puts("");
}
}

hackerrank DFS Edges的更多相关文章

  1. [luogu P3787][新创无际夏日公开赛] 冰精冻西瓜 [树状数组][dfs序]

    题目背景 盛夏,冰之妖精琪露诺发现了一大片西瓜地,终于可以吃到美味的冻西瓜啦. 题目描述 琪露诺是拥有操纵冷气程度的能力的妖精,一天她发现了一片西瓜地.这里有n个西瓜,由n-1条西瓜蔓连接,形成一个有 ...

  2. 链式前向星DFS

    本文链接:http://www.cnblogs.com/Ash-ly/p/5399057.html 采用链式前向星存图的DFS: #include <iostream> #include ...

  3. HDU 4280Island Transport(Dinc非STL 模板)

    题意: n岛m条路,然后是 n个岛的坐标,然后是m条双向路,包括 岛和 岛 之间 最大客流量,让求 最左边的岛 到右边的岛 最大客流量 分析: 建图 以 左边的岛为原点,最右边的为终点求最大客流量. ...

  4. 【Python排序搜索基本算法】之深度优先搜索、广度优先搜索、拓扑排序、强联通&Kosaraju算法

    Graph Search and Connectivity Generic Graph Search Goals 1. find everything findable 2. don't explor ...

  5. Codeforces Round #288 (Div. 2)D. Tanya and Password 欧拉通路

    D. Tanya and Password Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/508 ...

  6. POJ2230 Watchcow【欧拉回路】

    Watchcow Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 6172Accepted: 2663 Special Judge ...

  7. 后缀自动机/回文自动机/AC自动机/序列自动机----各种自动机(自冻鸡) 题目泛做

    题目1 BZOJ 3676 APIO2014 回文串 算法讨论: cnt表示回文自动机上每个结点回文串出现的次数.这是回文自动机的定义考查题. #include <cstdlib> #in ...

  8. [vijos 1642]班长的任务 [树形dp]

    背景 十八居士的毕业典礼(1) 描述 福州时代中学2009届十班同学毕业了,于是班长PRT开始筹办毕业晚会,但是由于条件有限,可能每个同学不能都去,但每个人都有一个权值,PRT希望来的同学们的权值总和 ...

  9. [luogu P1967][NOIp2013] 货车运输

    题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多 ...

随机推荐

  1. 在Azure上部署IPv6的App通过IOS App Store审核

    随着中国企业出海Go Global,越来越多的用户开始在Global Azure部署自己的应用.由于对Global Azure功能和文档的不熟悉,使用过程中或多或少遇到了一些坑.事实上呢,这些并不是坑 ...

  2. LeetCode中的最大子串和问题(Maximum Subarray)

    问题描述: Find the contiguous subarray within an array (containing at least one number) which has the la ...

  3. SQL数据库语句

    on xxx --主文件 ( name=‘xxxx’, fliename='里面写文件放的路径\xxxx.mdf', size=xxMB, filegrowth=xxMB, maxsize=xxMB ...

  4. shiro Filter--拦截器

    一 shiro自带的filter:下面主要叙述顺序是 NameableFilter->OncePerRequestFilter->AdviceFilter->PathMatching ...

  5. 脚本全选全不选操作asp.net treeview控件

    //树节点勾选(取消)上级自动全部勾选(取消)下级,勾选下级自动勾选上级,取消全部下级,自动取消上级 //事件响应函数 var HandleCheckbox = function () { //取得事 ...

  6. SQL Server(解决问题)已成功与服务器建立连接,但是在登录过程中发生错误。(provider: Shared Memory Provider, error:0 - 管道的另一端上无任何进程。

    http://blog.csdn.net/github_35160620/article/details/52676416 如果你在使用新创建的 SQL Server 用户名和密码 对数据库进行连接的 ...

  7. CSS学习之首页简单布局

    作为一个PHPer,在前端方面javascript.jquery这些的日常工作还搞的定.可对于div+css这些东西可就头疼了,所以现在开始学习CSS 跟着燕十八的教程开始从最基础学起,首先练习一个简 ...

  8. vue 自定义组件 v-model双向绑定、 父子组件同步通信

    父子组件通信,都是单项的,很多时候需要双向通信.方法如下: 1.父组件使用:msg.sync="aa"  子组件使用$emit('update:msg', 'msg改变后的值xxx ...

  9. iOS开发系列

    因为最近面试了一些人,校招.初中级.高级.架构师,各种级别的,发现大家水平差异很大,有的高级的工程师很多问题都回答不上来,所以想梳理下iOS的知识点,写成一个系列,如果时间允许的话,会录制成视频放到网 ...

  10. 未知宽高图片水平垂直居中在div

    <BODY> <div class="box"> <span class="car"></span> <i ...