http://codeforces.com/problemset/problem/666/B

题意:
给定一张边权均为1的有向图,求四个不同的点A,B,C,D,使得dis[A][B]+dis[B][C]+dis[C][D]尽可能大。
 
预处理能到B的前3远,C能到的前3远
枚举B、C
 
 
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue> using namespace std; #define N 3001
#define M 5001 int n; int tot,front[N],to[M],nxt[M]; int dis[N][N],f[N][],g[N][]; void read(int &x)
{
x=; char c=getchar();
while(!isdigit(c)) c=getchar();
while(isdigit(c)) { x=x*+c-''; c=getchar(); }
} void add(int u,int v)
{
to[++tot]=v; nxt[tot]=front[u]; front[u]=tot;
} void bfs(int s)
{
int now,t;
static queue<int>q;
q.push(s);
while(!q.empty())
{
now=q.front();
q.pop();
for(int i=front[now];i;i=nxt[i])
{
t=to[i];
if(dis[s][t]==-)
{
dis[s][t]=dis[s][now]+;
q.push(t);
}
}
}
} void solve()
{
int a,b,c,d;
int len=;
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
if(i!=j && dis[i][j]!=-)
for(int k=;k>=;--k)
for(int l=;l>=;--l)
if(f[i][k]!=i && f[i][k]!=j && g[j][l]!=i && g[j][l]!=j && f[i][k]!=g[j][l])
if(dis[i][j]+dis[f[i][k]][i]+dis[j][g[j][l]]>len)
{
len=dis[i][j]+dis[f[i][k]][i]+dis[j][g[j][l]];
a=f[i][k]; b=i; c=j; d=g[j][l];
}
printf("%d %d %d %d",a,b,c,d);
} void pre()
{
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
{
if(dis[i][j]>dis[i][g[i][]])
{
g[i][]=g[i][];
g[i][]=g[i][];
g[i][]=j;
}
else if(dis[i][j]>dis[i][g[i][]])
{
g[i][]=g[i][];
g[i][]=j;
}
else if(dis[i][j]>dis[i][g[i][]]) g[i][]=j;
}
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
{
if(dis[j][i]>dis[f[i][]][i])
{
f[i][]=f[i][];
f[i][]=f[i][];
f[i][]=j;
}
else if(dis[j][i]>dis[f[i][]][i])
{
f[i][]=f[i][];
f[i][]=j;
}
else if(dis[j][i]>dis[f[i][]][i]) f[i][]=j;
}
} int main()
{
int m;
read(n); read(m);
int u,v;
while(m--)
{
read(u); read(v);
add(u,v);
}
memset(dis,-,sizeof(dis));
for(int i=;i<=n;++i) dis[i][i]=;
for(int i=;i<=n;++i) bfs(i);
pre();
solve();
}
B. World Tour
time limit per test

5 seconds

memory limit per test

512 megabytes

input

standard input

output

standard output

A famous sculptor Cicasso goes to a world tour!

Well, it is not actually a world-wide. But not everyone should have the opportunity to see works of sculptor, shouldn't he? Otherwise there will be no any exclusivity. So Cicasso will entirely hold the world tour in his native country — Berland.

Cicasso is very devoted to his work and he wants to be distracted as little as possible. Therefore he will visit only four cities. These cities will be different, so no one could think that he has "favourites". Of course, to save money, he will chose the shortest paths between these cities. But as you have probably guessed, Cicasso is a weird person. Although he doesn't like to organize exhibitions, he likes to travel around the country and enjoy its scenery. So he wants the total distance which he will travel to be as large as possible. However, the sculptor is bad in planning, so he asks you for help.

There are n cities and m one-way roads in Berland. You have to choose four different cities, which Cicasso will visit and also determine the order in which he will visit them. So that the total distance he will travel, if he visits cities in your order, starting from the first city in your list, and ending in the last, choosing each time the shortest route between a pair of cities — will be the largest.

Note that intermediate routes may pass through the cities, which are assigned to the tour, as well as pass twice through the same city. For example, the tour can look like that: . Four cities in the order of visiting marked as overlines:[1, 5, 2, 4].

Note that Berland is a high-tech country. So using nanotechnologies all roads were altered so that they have the same length. For the same reason moving using regular cars is not very popular in the country, and it can happen that there are such pairs of cities, one of which generally can not be reached by car from the other one. However, Cicasso is very conservative and cannot travel without the car. Choose cities so that the sculptor can make the tour using only the automobile. It is guaranteed that it is always possible to do.

Input

In the first line there is a pair of integers n and m (4 ≤ n ≤ 3000, 3 ≤ m ≤ 5000) — a number of cities and one-way roads in Berland.

Each of the next m lines contains a pair of integers ui, vi (1 ≤ ui, vi ≤ n) — a one-way road from the city ui to the city vi. Note that ui andvi are not required to be distinct. Moreover, it can be several one-way roads between the same pair of cities.

Output

Print four integers — numbers of cities which Cicasso will visit according to optimal choice of the route. Numbers of cities should be printed in the order that Cicasso will visit them. If there are multiple solutions, print any of them.

Example
input
8 9
1 2
2 3
3 4
4 1
4 5
5 6
6 7
7 8
8 5
output
2 1 8 7
Note

Let d(x, y) be the shortest distance between cities x and y. Then in the example d(2, 1) = 3, d(1, 8) = 7, d(8, 7) = 3. The total distance equals 13.

Codeforces 666 B. World Tour的更多相关文章

  1. 【Codeforces 1137C】Museums Tour

    Codeforces 1137 C 题意:给一个有向图,一周有\(d\)天,每一个点在每一周的某些时刻会开放,现在可以在这个图上从\(1\)号点开始随意地走,问最多能走到多少个开放的点.一个点如果重复 ...

  2. Codeforces 543 B. World Tour

    http://codeforces.com/problemset/problem/543/B 题意: 给定一张边权均为1的无向图. 问至多可以删除多少边,使得s1到t1的最短路不超过l1,s2到t2的 ...

  3. codeforces 667D D. World Tour(最短路)

    题目链接: D. World Tour time limit per test 5 seconds memory limit per test 512 megabytes input standard ...

  4. CodeForces 860D Wizard's Tour

    题意 给出一张无向图,要求找出尽量多的长度为2的不同路径(边不可以重复使用,点可以重复使用) 分析 yzy:这是原题 http://www.lydsy.com/JudgeOnline/problem. ...

  5. Html5 学习笔记 【PC固定布局】 实战7 风景欣赏 联系我们

    风景欣赏最终效果: 关于公司最终效果: 风景欣赏Html代码: <!DOCTYPE html> <html lang="zh-cn"> <head&g ...

  6. Html5 学习笔记 【PC固定布局】 实战7 机票预订页面

    最终实际效果: HTML代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta char ...

  7. Html5 学习笔记 【PC固定布局】 实战6 咨询页面

    最终效果: Html页面代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta char ...

  8. Codeforces Round #349 (Div. 1) B. World Tour 暴力最短路

    B. World Tour 题目连接: http://www.codeforces.com/contest/666/problem/B Description A famous sculptor Ci ...

  9. Codeforces Round #349 (Div. 1) B. World Tour 最短路+暴力枚举

    题目链接: http://www.codeforces.com/contest/666/problem/B 题意: 给你n个城市,m条单向边,求通过最短路径访问四个不同的点能获得的最大距离,答案输出一 ...

随机推荐

  1. 【原】python3.7 无法pip安装提示ssl错误解决方案

    问题 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not av ...

  2. 零点计费系统_Ros云计费(下面是对接教程)

    零 点 计 费 系 统 对 接 ROS 教 程 1.首先我们到零点控制台:oa.eczcz.com先注册一个主账号:(当然,以前有维盟片区的主账号就不用再注册了,因为零点早就设计到支持多台路由器,所以 ...

  3. Kaggle: Google Analytics Customer Revenue Prediction EDA

    前言 内容提要 本文为Kaggle竞赛 Google Analytics Customer Revenue Prediction 的探索性分析 题目要求根据历史顾客访问GStore的数据,预测其中部分 ...

  4. DFA化简

    首先是未化简DFA的转换表 NFA状态 DFA状态 a b {0,1,2,4,7} A B C {1,2,3,4,6,7,8} B B D {1,2,4,5,6,7} C B C {1,2,4,5,6 ...

  5. idea创建web项目教程

    官网下载idea,安装配置好后,双击进来,第一次创建项目时新建是这样的 第一步:   第二步:创建项目名和项目存放的路径 点finish进入这里   第三步: 第二步点OK进入这个页面,点上面那个加号 ...

  6. 手机Gmail上用Exchange协议配置收发QQ邮箱

    1.开启Exchange服务  2.生成授权码(登录密码)  3."服务器"填入ex.qq.com

  7. 《linux内核分析》chapter3读书笔记

  8. ping出现dup问题

    华为交换机收到mac地址漂移告警:  Dec 24 2018 16:48:22+08:00 HW5320 %%01SECE/4/UCSUPPRESSRESUME(l) [66]:MAC address ...

  9. 【Leetcode】222. Count Complete Tree Nodes

    Question: Given a complete binary tree, count the number of nodes. Definition of a complete binary t ...

  10. Majority Element问题---Moore's voting算法

    Leetcode上面有这么一道难度为easy的算法题:找出一个长度为n的数组中,重复次数超过一半的数,假设这样的数一定存在.O(n2)和O(nlog(n))(二叉树插入)的算法比较直观.Boyer–M ...