环游大同80天 cruisedt

【题目描述】:

一年一度的IOI在风景如画的大同中学举行。按照以往惯例,在激烈的比赛过程后,选手们会应邀去风景名胜区游览。今年当然也不例外。为了确定一条最佳的旅游路线,组委会请各位选手编一程序帮忙寻找。假设所有的风景点都集中在一个C列R行的矩阵中,矩阵的每一元素代表风景点或者障碍物。现在你要寻找一条满足下列条件的最佳旅游路线:

●这条路线上的每一点结点必须是风景点(即不能为障碍物)

●每个风景点最多游览一次

●这条路线必须是连续的相邻风景点的序列(若风景点A和B分别位于矩阵的位置(a1,a2)及(b1,b2),且|a1-b1|+|a2-b2|=1,则风景点A和B是相邻的)

●在满足上述条件下,游览的风景点尽可能多

假设任意的两个风景点都有且仅有一条路径相连。显然,任意一个风景点都可以作为游览路线的起点或者终点。

【输入描述】:

第一行是两个整数C和R(3≤C,R≤1000),表示矩阵的列数和行数。

接下来有R行,每行有C个字符,每个字符都只能是‘#’或‘.’,‘#’表示障碍物,‘.’表示风景点。行手行末无多余空格。

【输出描述】:

只有一行,输出最佳路线的长度。


【样例输入】


【样例输出】


3 3

###

#.#

###


0

【数据范围及描述】:

题解说是 树上最长链(并不懂是什么东西)

两遍正反dfs就好了:

任取一个点,求它所能到达的最远点,在从最远点dfs再找最远点,就是答案!!!

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 using namespace std;
 6
 7 const int maxn=1005;
 8 const int dx[]={1,-1,0,0};
 9 const int dy[]={0,0,1,-1};
10 char g[maxn][maxn];
11 int R,C;
12 bool vis[maxn][maxn];
13 bool been[maxn][maxn];
14 int X,Y,mx;
15
16 void dfs(int x,int y,int c)
17 {
18     been[x][y]=true;
19     bool flag=false;
20     for(int i=0;i<4;i++)
21     {
22         int xx=x+dx[i];
23         int yy=y+dy[i];
24         if(xx>=1&&xx<=R&&yy>=1&&yy<=C&&!vis[xx][yy]&&g[xx][yy]==‘.‘)
25         {
26             vis[xx][yy]=true;
27             flag=true;
28             dfs(xx,yy,c+1);
29             vis[xx][yy]=false;
30         }
31     }
32     if(!flag&&mx<c)
33     {
34         mx=c;
35         X=x,Y=y;
36     }
37     return;
38 }
39
40 int main()
41 {
42     scanf("%d %d",&C,&R);
43     for(int i=1;i<=R;i++)
44         gets(g[i]+1);
45     memset(vis,false,sizeof(vis));
46     memset(been,false,sizeof(been));
47     int ans=-1;
48     for(int i=1;i<=R;i++)
49         for(int j=1;j<=C;j++)
50         {
51             if(!been[i][j]&&g[i][j]==‘.‘)
52             {
53                 mx=-1;vis[i][j]=true;
54                 dfs(i,j,0);vis[i][j]=false;
55                 mx=-1;vis[X][Y]=true;
56                 dfs(X,Y,0);vis[X][Y]=false;
57                 ans=max(ans,mx);
58             }
59         }
60     printf("%d",ans);
61     return 0;
62 }

时间: 2024-10-29 19:06:29

环游大同80天 cruisedt的相关文章

VJ 1107 环游大同80天

描述 一年一度的xuzhenyiOI2006在风景如画的大同中学举行.按照以往惯例, 在激烈的比赛过程后,选手们会应邀去风景名胜区游览.今年当然也不例外.为了确定一条最佳的旅游路线,组委会请各位选手编一程序帮忙寻找.假设所有的风景 点都集中在一个C列R行的矩阵中,矩阵的每一元素代表风景点或者障碍物.现在你要寻找一条满足下列条件的最佳旅游路线: ●这条路线上的每一点结点必须是风景点(即不能为障碍物) ●每个风景点最多游览一次 ●这条路线必须是连续的相邻风景点的序列(若风景点A和B分别位于矩阵的位置

VIJOS1107 求树的最长链

vijos1107环游大同80天 学习了一下求树的最长链的方法 最简单的思路就是两次dfs 两次dfs分别有什么用呢? 第一次dfs,求出某个任意的点能到达的最远的点 第二次dfs,从所搜到的最远的点倒搜回去. 为什么需要两次呢? 其实很容易想通第一遍dfs的起始点或许并不是最长链的起点 从最远的点倒搜到的最长的链就是所求的解 (因为最长链一定经过这个最远的点啊... 这里注意题目表述: 假设任意的两个风景点都有且仅有一条路径(无回路)相连.显然,任意一个风景点都可以作为游览路线的起点或者终点.

大家都应该看看这个贴子,会让你心明眼亮。 注意到这些变化了吗?中国正在发生的100个变化,越往后读越震惊!

1.阿里巴巴.淘宝.京东正在沦为传统企业 2.传统互联网不断扩大贫富差距 3.移动互联网开始消灭贫富差距 4.中国互联网从“尾随”美国变为“反超”美国 5.互联网倒逼中国政府深化改革 6.最贵的东西:以前是地段,现在是流量,未来是粉丝 7.“无生意可做.无工可打”正在成为事实 8.你再也雇佣不到优秀的人才,除非你跟他合伙 9.自由职业正在大量兴起 10.人的个性被不断释放,兴趣正在成为谋生手段 11.中国这轮变革带来的机会远比上一轮改革开放多 12.你获得的回报正在跟你创造的价值成正比 13.有

专业理财网站,年化收益12%以上 承诺100%保本息

http://gz.58.com/jdyd/jh_%E3%80%90%E5%A4%A9%E6%B4%A5%E6%89%BE%E3%80%90%E7%BE%8E%E5%A5%B3%E3%80%91%E4%B8%8A%E9%97%A8%E5%85%A8%E5%A5%97%E5%8C%85%E5%A4%9C%E6%8C%89%E6%91%A9%E6%9C%8D%E5%8A%A1%E3%80%91187-2119-2031/ http://gz.58.com/jdyd/jh_%E3%80%90%E5%A

昆明的

http://www.wasu.cn/search/show/k/%20%E5%B4%87%E5%B7%A6%E5%82%AC%E6%83%85%E8%8D%AF%E6%80%8E%E4%B9%88%E6%89%8D%E8%83%BD%E4%B9%B0%E7%9A%84%E5%88%B0Q%EF%BC%9A%EF%BC%91%EF%BC%91%EF%BC%92%EF%BC%97%EF%BC%94%EF%BC%90%EF%BC%91%EF%BC%91%EF%BC%97%EF%BC%95 http:

apache kafka监控系列-KafkaOffsetMonitor

概览 最近kafka server消息服务上线了,基于jmx指标参数也写到zabbix中了,但总觉得缺少点什么东西,可视化可操作的界面.zabbix中数据比较分散,不能集中看整个集群情况.或者一个cluster中broker列表,自己写web-console比较耗时耗力,用原型工具画了一些管理界面东西,关键自己也不前端方面技术,这方面比较薄弱.这不开源社区提供了kafka的web管理平台KafkaOffsetMonitor.就迅速拿过来运行.大家不要着急,马上娓娓道来. 说明: 这个应用程序来实

thytjsytjytjhyth

http://www.pinterest.com/0xiz27a/%E5%93%AA%E9%87%8C%E6%9C%89%E6%B3%89%E5%B7%9Esm%E4%B8%9D%E8%B6%B3%E4%BC%9A%E6%89%80 http://www.pinterest.com/0xiz27a/%E5%BB%BA%E7%93%AF%E5%93%AA%E9%87%8C%E6%9C%89sm%E4%BC%9A%E6%89%80 http://www.pinterest.com/0xiz27a/%

【bzoj2055】80人环游世界 有上下界费用流

原文地址:http://www.cnblogs.com/GXZlegend 题目描述 想必大家都看过成龙大哥的<80天环游世界>,里面的紧张刺激的打斗场面一定给你留下了深刻的印象.现在就有这么 一个80人的团伙,也想来一次环游世界. 他们打算兵分多路,游遍每一个国家. 因为他们主要分布在东方,所以他们只朝西方进军.设从东方到西方的每一个国家的编号依次为1...N.假若第i个人的游历路线为P1.P2......Pk(0≤k≤N),则P1<P2<......<Pk. 众所周知,中

【BZOJ-2055】80人环游世界 上下界费用流 (无源无汇最小费用最大流)

2055: 80人环游世界 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 321  Solved: 201[Submit][Status][Discuss] Description 想必大家都看过成龙大哥的<80天环游世界>,里面的紧张刺激的打斗场面一定给你留下了深刻的印象.现在就有这么 一个80人的团伙,也想来一次环游世界. 他们打算兵分多路,游遍每一个国家. 因为他们主要分布在东方,所以他们只朝西方进军.设从东方到西方的每一个国家的编号依次为