题目描述

H国的国家博物馆最近要展出一颗巨型钻石,当然,为了防止钻石被盗,博物馆对其进行了重重保护。

H国博物馆的结构可以看成一个凸n边形,顶点编号1到n。然后通过若干面墙壁将博物馆分割成多个三角形的房间,每一道墙都会连接n边形的两个顶点。显然我们可以知道H国博物馆的房间一共有n-2个,下图为n=7是博物馆的一个平面图。

为了方便游客参观,博物馆的所有墙壁上都会有一道门(包括外墙)。游客可以通过门从一个房间来到另一个房间参观,或是进出博物馆。平时这些门都是打开着的,一旦钻石被盗,这些门就会立即锁上。著名的大盗Joker盯上了这枚巨型钻石,但是他也知道自己一旦把钻石带走,所有的门都会锁上。但这并不能难倒他,他能够打开所有门上的锁,然而开锁会消耗时间,而逃离博物馆的时间正比于开锁的总次数。为了尽快逃离,Joker会选择最优的逃离路径(他已经事先获得了博物馆的结构图)。

由于博物馆的安保人员有限,他们不能够在第一时间赶到,抓住Joker。因此他们希望将钻石摆放在尽量安全的房间中,使得Joker的逃离时间尽可能长。请你告诉馆长,Joker的逃离时间(即开锁次数)最大为多少,以方便馆长确定是否需要更多的安保人员。

输入

输入文件的第一行,包含一个正整数n,表示博物馆外墙的顶点数。

接下来的n-2行,每行三个正整数xi,yi和zi,表示每个房间的三个顶点编号。

输出

输出文件仅一行一个正整数,表示Joker的最大逃离时间。

样例输入

7 1 2 3 1 3 4 1 4 6 1 6 7 4 5 6

样例输出

2

提示

30%数据n<=50.

60%数据n<=5000.

100%数据n<=200000.

SOL:bfs

#pragma GCC optimize("-Ofast")
#include<bits/stdc++.h>
#define pii pair<int,int>
#define eho(x) for(int i=head[x];i;i=net[i])
#define M 1000007
#define N 400007
#define v fall[i]
using namespace std;
int n,tot,p[4],fall[M],net[M],head[N],vis[N],x,ans;
queue<int> q;
map<pii,int> mp;
void read(int &x){static char c; static int b;for (b=1,c=getchar();!isdigit(c);c=getchar()) if (c=='-') b=-1;for (x=0;isdigit(c);c=getchar()) x=x*10+c-48;x*=b;
}
void add(int x,int y){
//  cerr<<x<<' '<<y<<endl;fall[++tot]=y; net[tot]=head[x]; head[x]=tot;fall[++tot]=x; net[tot]=head[y]; head[y]=tot;
}
signed main () {read(n);for (int i=1;i<=n-2;i++) {read(p[0]),read(p[1]),read(p[2]);sort(p,p+3);if (mp.count(pii(p[0],p[1]))) add(i,mp[pii(p[0],p[1])]);else mp[pii(p[0],p[1])]=i;if (mp.count(pii(p[0],p[2]))) add(i,mp[pii(p[0],p[2])]);else mp[pii(p[0],p[2])]=i;if (mp.count(pii(p[1],p[2]))) add(i,mp[pii(p[1],p[2])]);else mp[pii(p[1],p[2])]=i;if (p[1]-p[0]==1) add(n+1,i);if (p[2]-p[1]==1) add(n+1,i);if (p[2]==n&&p[0]==1) add(n+1,i);}q.push(n+1);memset(vis,127,sizeof vis);vis[n+1]=0;while (!q.empty()) {x=q.front(); q.pop();eho(x) if (vis[v]>vis[x]+1) {vis[v]=vis[x]+1,q.push(v); if (vis[v]>ans) ans=vis[v];}}printf("%d\n",ans);
}

转载于:https://www.cnblogs.com/rrsb/p/9489555.html

偷盗钻石(Diamond)相关推荐

  1. OpenCV钻石Diamond 标记的检测

    OpenCV钻石Diamond 标记的检测 钻石Diamond 标记的检测 ChArUco钻石Diamond 创作 ChArUco钻石Diamond 检测 ChArUco钻石Diamond 姿势估计 ...

  2. 钻石DIAMOND英语源于DIAMAUND钻石

    在全部宝石中,最贵重.最吸引人的要数钻石了.钻石贵重,所以选购钻石时,有必要懂得辨别钻石的常识.   钻石(DIAMOND)一词,开始来源于希腊文演化的古法文DIAMAUND,愈思是指"坚固 ...

  3. 钻石DIAMOND一词来源于古法文DIAMAUND钻石

    在全部宝石中,最贵重.最吸引人的要数钻石了.钻石贵重,所以选购钻石时,有必要懂得辨别钻石的常识.   钻石(DIAMOND)一词,开始来源于希腊文演化的古法文DIAMAUND,愈思是指"坚固 ...

  4. CodeVs天梯钻石Diamond题解

    title: CodeVs天梯之Diamond date: 2017-12-28 tags: 天梯 CodesVs categories: OI CodeVs刷题攻略之Diamond 2018.1.1 ...

  5. 【codevs1063NOIP04PJ】合并果子,贪心の钻石

    1063 合并果子 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 在一个果园里,多多已经将所有的果子打了下来,而且按果 ...

  6. 【codevs2287】火车站,第一个A掉的钻石题(迟来的解题报告)

    2287 火车站  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 钻石 Diamond 题解 题目描述 Description 火车从始发站(称为第1站)开出,在始发站上车的人数 ...

  7. css3绘制常见的30种形状(心形,五角星,六边形,钻石,对话框,阴阳鱼图等)

    CSS实现圆角,三角,五角星,五边形,爱心,12角星,8角星,圆,椭圆,圆圈,八卦等等 新出的html5新增了不少标签,性能更强,原来的很繁琐的功能几个标签就能实现,同时CSS3也推出,更是一大亮点, ...

  8. Lesson 7 Too late 为时太晚

    1.原文 2. 参考译文 3. New words and expressions ★detective n. 侦探 detective story 侦探小说 ★airport n. 机场 ★airf ...

  9. 1380 没有上司的舞会

    1380 没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解 题目描述 Description Ural大学有N个职员,编号为1~N.他 ...

最新文章

  1. CUDA 7流简化并发
  2. AI志愿超强攻略|中国高校AI专业最全院校排名课程对比(附链接)
  3. 何恺明、陈鑫磊新研究:提出实例分割新方法,效果比肩Mask R-CNN
  4. linux下redmine3.3迁移、升级、插件备忘录
  5. JavaScript碎片—函数闭包(模拟面向对象)
  6. 子组件是表格时向父组件传值
  7. 厂办大集体改制不签字_许昌二印,磨砂技术被外国觊觎,老工人说烂在肚子里也不外漏...
  8. 场景文字识别的算法创新与应用,来自百度的技术前沿
  9. 实战系列-IDEA中Spring MVC实现接口功能
  10. matlab练习程序(方框模糊)
  11. 用Python DBUtils安全连接mssql
  12. 怎么在服务器跑sql文件,服务器mysql数据库如何运行脚本
  13. 【Oracle】Oracle错误编码大全
  14. Java Wbe 学习心得 day06
  15. 微原创——好用的文章转换工具自媒体利器
  16. 树莓派安装系统和系统备份还原
  17. NIVIDIA Tegra K1 QWT安装使用问题和解决办法
  18. Tkinter——②entry(文本框)和text(多行文本)
  19. 鸿蒙app前后端流程实现
  20. 数据库的事务ACID特性以及MySQL如何保持事物特性

热门文章

  1. Python黑马头条推荐系统第一天 架构介绍和离线计算更新Item画像
  2. 用友文件服务器恢复,用友U8账套数据恢复及备份.doc
  3. webview漏洞 -转
  4. OkHttp3 发送网络请求服务器
  5. kali虚拟机网络配置
  6. GO实现websocket消息推送
  7. Linux网络编程 入门
  8. lambdaquerywrapper in使用样例
  9. php 无法加载activex,IE怎么无法加载 Activex 控件?
  10. C语言某年某月的天数