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 ...
随机推荐
- 错了:用流量能够放肆,有wifi则要节制
网络上疯传的节制体中就有这么一句:有wifi就会放肆,但用流量就会节制.榜上有名,也说明了人们对wifi网络的需求.尤其是免费wifi.从对无线网络需求方面,毫无疑问,可是从还有一角度,我则觉得是流量 ...
- linux 清内存
注意:首先我们需要使用sync指令,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node.已延迟的块 I/O 和读写映射文件.否则在释放缓存的过程中,可能会丢失未保存的文件. 的值可以为0~3 ...
- ngModelController的方法和属性的使用
ngModelController方法 $render(); 当视图需要更新的时候会被调用.使用ng-model的指令应该自行实现这个方法. $isEmpty(value); 该方法用于判断输入值是否 ...
- C# 改变无边框窗体尺寸大小的方法
; ; ; ; ; ; const int HTBOTTOMLEFT = 0x10; ; protected override void WndProc(ref Message m) { switch ...
- vue2 vue-router2 webpack1
转自:http://www.qinshenxue.com/article/20161106163608.html: 项目地址:https://github.com/qinshenxue/vue2-vu ...
- vue知识点2018.6.3
文件夹和文件名称 简介 build 构建脚本目录 config 应用程序的配置文件 index.html 入口页面 node_modules 存放 NPM 依赖模块 package-lock.json ...
- FreeRTOS基础知识
前面一篇文章介绍了一些命名规范之类的基础知识,但是我觉得还缺少一定前言知识,就是裸机和操作系统有什么区别,为什么我们需要学freertos,因为招聘要求?那么为什么招聘网又会有这个要求呢?所以我们为什 ...
- gpio 灯的对应关系
1 点灯验证通过: GPIO160 TX1-LED GPIO161 RX1-LED GPIO163 TX2-LED GPIO164 RX2-LED GPIO ...
- man page用法
通过man man可查看man page的具体用法. 1 Executable programs or shell commands 2 System calls (functio ...
- [转]hadoop,spark,storm,pig,hive,mahout等到底有什么区别和联系?
摘自知乎大神的论述 作者:Xiaoyu Ma链接:https://www.zhihu.com/question/27974418/answer/38965760来源:知乎著作权归作者所有,转载请联系作 ...