CodeForces 24A Ring road(dfs)
2 seconds
256 megabytes
standard input
standard output
Nowadays the one-way traffic is introduced all over the world in order to improve driving safety and reduce traffic jams. The government of Berland decided to keep up with new trends. Formerly all ncities
of Berland were connected by n two-way roads in the ring, i. e. each city was connected directly to exactly two other cities, and from
each city it was possible to get to any other city. Government of Berland introduced one-way traffic on all n roads, but it soon became
clear that it's impossible to get from some of the cities to some others. Now for each road is known in which direction the traffic is directed at it, and the cost of redirecting the traffic. What is the smallest amount of money the government should spend
on the redirecting of roads so that from every city you can get to any other?
The first line contains integer n (3 ≤ n ≤ 100)
— amount of cities (and roads) in Berland. Next nlines contain description of roads. Each road is described by three integers ai, bi, ci(1 ≤ ai, bi ≤ n, ai ≠ bi, 1 ≤ ci ≤ 100)
— road is directed from city ai to
city bi,
redirecting the traffic costs ci.
Output single integer — the smallest amount of money the government should spend on the redirecting of roads so that from every city you can get to any other.
3
1 3 1
1 2 1
3 2 1
1
3
1 3 1
1 2 5
3 2 1
2
6
1 5 4
5 3 8
2 4 15
1 6 16
2 3 23
4 6 42
39
4
1 2 9
2 3 8
3 4 7
4 1 5
0
深搜
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <math.h>
#include <stdio.h>
#include <vector>
using namespace std;
vector<pair<int,int> >a[105];
vector<pair<int,int> >b[105];
int n;
int num;
int now;
void dfs(int x,int pre)
{
if(x==now)
return;
if(a[x].size()>0&&a[x][0].first!=pre)
dfs(a[x][0].first,x);
else if(a[x].size()>1&&a[x][1].first!=pre)
dfs(a[x][1].first,x);
else if(b[x].size()>0&&b[x][0].first!=pre)
{
num+=b[x][0].second;
dfs(b[x][0].first,x);
}
else if(b[x].size()>1&&b[x][1].first!=pre)
{
num+=b[x][1].second;
dfs(b[x][1].first,x);
}
}
int main()
{
scanf("%d",&n);
int x,y,z; for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&x,&y,&z);
a[x].push_back(make_pair(y,z));
b[y].push_back(make_pair(x,z));
}
int ans=1e9;
for(int i=1;i<=n;i++)
{
num=0;
now=i;
if(a[i].size()>0)
{
num=0,now=i;
dfs(a[i][0].first,i);
ans=min(ans,num);
}
if(a[i].size()>1)
{
num=0,now=i;
dfs(a[i][1].first,i);
ans=min(ans,num);
}
if(b[i].size()>0)
{
num=0,now=i;
num+=b[i][0].second;
dfs(b[i][0].first,i);
ans=min(ans,num);
}
if(b[i].size()>1)
{
num=0,now=i;
num+=b[i][1].second;
dfs(b[i][1].first,i);
ans=min(ans,num);
} }
printf("%d\n",ans);
return 0; }
CodeForces 24A Ring road(dfs)的更多相关文章
- CodeForces 27D - Ring Road 2 构图2-sat..并输出选择方案
题意 n个数1~n按顺序围成一个圈...现在在某些两点间加边..边可以加在圈内或者圈外..问是否会发生冲突?如果不发生冲突..输每一条边是放圈内还是圈外. 题解 ...
- HDOJ(HDU).1016 Prime Ring Problem (DFS)
HDOJ(HDU).1016 Prime Ring Problem (DFS) [从零开始DFS(3)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...
- [Codeforces 1214D]Treasure Island(dfs)
[Codeforces 1214D]Treasure Island(dfs) 题面 给出一个n*m的字符矩阵,'.'表示能通过,'#'表示不能通过.每步可以往下或往右走.问至少把多少个'.'变成'#' ...
- [Codeforces 163D]Large Refrigerator (DFS+剪枝)
[Codeforces 163D]Large Refrigerator (DFS+剪枝) 题面 已知一个长方体的体积为V,三边长a,b,c均为正整数,求长方体的最小表面积S V以质因数分解的形式给出 ...
- Codeforces 839C Journey【DFS】
C. Journey time limit per test:2 seconds memory limit per test:256 megabytes input:standard input ou ...
- 【Codeforces 738C】Road to Cinema
http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...
- Codeforces Gym 100463D Evil DFS
Evil Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100463/attachments Descr ...
- HDU 1016 Prime Ring Problem (DFS)
Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- Educational Codeforces Round 25 Five-In-a-Row(DFS)
题目网址:http://codeforces.com/contest/825/problem/B 题目: Alice and Bob play 5-in-a-row game. They have ...
随机推荐
- Murano环境搭建、使用介绍和思考
murano是OpenStack的Application Catalog服务.推崇AaaS(Anything-as-a-Service)的概念.通过统一的框架和API实现应用程序高速部署和应用程序 ...
- 李洪强iOS经典面试题35-按层遍历二叉树的节点
李洪强iOS经典面试题35-按层遍历二叉树的节点 问题 给你一棵二叉树,请按层输出其的节点值,即:按从上到下,从左到右的顺序. 例如,如果给你如下一棵二叉树: 3 / \ 9 20 ...
- FreeRTOS 定时器组
以下转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 FreeRTOS 支持的定时器组,或者叫软件定时器,又或者叫用户定时器均可.软件定时器的功 ...
- WP8持续集成之通过命令行跑单元测试
理论基础 对于如何在WP8上创建单元测试工程,在这里首先提供一个MSDN的文档作为参考. http://msdn.microsoft.com/en-us/library/windowsphon ...
- 基于HTML5/CSS3可折叠的3D立方体动画
今天要给大家带来另外一款CSS3 3D立方体动画,尤其在DEMO2中可以看到,鼠标滑过立方体后,它将会被打开,从里面弹出另外一个小立方体,动画效果非常酷,非常逼真. 在线预览 源码下载 实现的代码 ...
- [未解决]Exception in thread "main" java.lang.IllegalArgumentException: offset (0) + length (8) exceed the capacity of the array: 6
调用这个方法 是报错,未解决 binfo.setTradeAmount(Double.parseDouble(new String(result.getValue(Bytes.toBytes(fami ...
- 缓存技术PK:选择Memcached还是Redis(转)
[IT168 技术]要Memcached还是要Redis?在构建一款现代且由数据库驱动的Web应用程序并希望使其拥有更为出色的性能表现时,这个问题总会时不时出现.并给每一位开发人员带来困扰.在考虑对应 ...
- Hibernate Annotation 字段 默认值
http://emavaj.blog.163.com/blog/static/133280557201032262741999/ ——————————————————————————————————— ...
- word 操作教程
http://blog.163.com/haolongqin@126/blog/static/10999842220159993540527/ https://blog.csdn.net/ibigpi ...
- jquery mobile小经验
现在网站上关于jquery mobile的demo和帖子可真少啊,我刚开始接触,遇到了一些问题,都找不到人请教. 这是我的个人经验总结,或多或少会对刚入门的童鞋有点帮助吧. 如果想一开始进入页面的时候 ...