青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 195,  comments - 30,  trackbacks - 0
I have my friends to visit. For some reason, I can only visit some of my friends. So I want see my friends as many as possible. Thus I must choose the longest way. Your goal is to help me developing a program that computes the length of the longest path that can be constructed in a given graph from a given starting point (My residence). You can assume that the graph has no cycles (there is no path from any node to itself), so I will reach my destination in a finite time. In the same line of reasoning, nodes are not considered directly connected to themselves.

Input

The input consists of a number of cases. The first line on each case contains a positive number n (1 < n <= 100) that specifies the number of points in the graph. A value of n = 0 indicates the end of the input. After this, a second number s is provided, indicating the starting point in my journey (1 <= s <= n). Then, you are given a list of pairs of places p and q, one pair per line. The pair "p q" indicates that I can visit q after p. A pair of zeros ("0 0") indicates the end of the case. As mentioned before, you can assume that the graphs provided will not be cyclic.

Output

For each test case you have to find the length of the longest path that begins at the starting place. You also have to print the number of the final place of such longest path. If there are several paths of maximum length, print the final place with smallest number.

Print a new line after each test case.

Sample Input

2
1
1 2
0 0
5
3
1 2
3 5
3 1
2 4
4 5
0 0
5
5
5 1
5 2
5 3
5 4
4 1
4 2
0 0
0

Sample Output

Case 1: The longest path from 1 has length 1, finishing at 2.
Case 2: The longest path from 3 has length 4, finishing at 5.
Case 3: The longest path from 5 has length 2, finishing at 1.
提交了10次,AC 3次,超時(shí)4次,wa 3次。
很無語。
應(yīng)該是動(dòng)態(tài)規(guī)劃最好,但是我不是很熟,用了搜索。以下是超時(shí)的代碼
#include<iostream>
#include<cstdlib>
using namespace std;
int path[101][101];
int mark[101];
int len[101];//
int end[101];
int dfs(int start,int num)//返回從當(dāng)前點(diǎn)出發(fā)的最大長(zhǎng)度
{
if(mark[start]==1)return len[start];
mark[start]=1;
end[start]=start;
for(int i=1;i<=num;i++)
{
if(path[start][i])
{
if(len[start]<dfs(i,num)+1)
{
len[start]=len[i]+1;
end[start]=end[i];
}
else
if(len[start]==len[i]+1&&end[start]>end[i])
end[start]=end[i];
}
}
mark[start]=0;//這句堅(jiān)決不需要 
return len[start];
}
int main()
{
// freopen("s.txt","r",stdin);
//freopen("key.txt","w",stdout);
int j,k,turn=0;
int start,num;
while(cin>>num)
{
turn++;
if(num==0)break;
memset(path,0,sizeof(path));
memset(mark,0,sizeof(mark));
memset(len,0,sizeof(len));
memset(end,0,sizeof(end));
cin>>start;
while(cin>>j>>k)
{
if(j==0)break;
path[j][k]=1;
}
cout<<"Case "<<turn<<": The longest path from "<<start<<" has length "<<dfs(start,num)<<", finishing at "<<end[start]<<"."<<endl<<endl;
}
//system("PAUSE");
return   0;
}
以下是ac的代碼
#include<iostream>
#include<cstdlib>
using namespace std;
int path[102][102];
int mark[102], len[102],end[102];
int dfs(int start,int num)//返回從當(dāng)前點(diǎn)出發(fā)的最大長(zhǎng)度
{
if(mark[start]==1)return len[start];
mark[start]=1;
end[start]=start;
len[start]=0;
int i,t;
for( i=1;i<=num;i++)
{
if(path[start][i])
{
t=dfs(i,num)+1;
if(t>len[start])
{
len[start]=t;
end[start]=end[i];
}
else
if(len[start]==t)
{
if(end[start]>end[i])
end[start]=end[i];
}
}
}
return len[start];
}
int main()
{
//freopen("s.txt","r",stdin);
//freopen("key.txt","w",stdout);
int j,k,turn=0;
int start,num;
while(cin>>num,num)
{
turn++;
memset(path,0,sizeof(path));
memset(mark,0,sizeof(mark));
memset(len,0,sizeof(len));
memset(end,0,sizeof(end));
cin>>start;
while(cin>>j>>k,j||k)
{
path[j][k]=1;
}
dfs(start,num);
cout<<"Case "<<turn<<": The longest path from "<<start<<" has length "<<len[start]<<", finishing at "<<end[start]<<"."<<endl<<endl;
}
//system("PAUSE");
return   0;
}
不妨執(zhí)行一下
5
3
1 2
3 5
3 1
2 4
4 5
0 0
先是len[3]=0;end[3]=3;flag[3]=1;
再執(zhí)行t=dfs(1)+1,
轉(zhuǎn)入dfs(1);len[1]=0;end[1]=1;flag[1]=1;
再執(zhí)行t=dfs(2)+1;
轉(zhuǎn)入dfs(2),len[2]=0;end[2]=2;flag[2]=1;
再執(zhí)行t=dfs(4)+1
轉(zhuǎn)入dfs(4),len[4]=0;end[4]=4;flag[4]=1;
再轉(zhuǎn)入t=dfs(5)+1;
轉(zhuǎn)入dfs(5),len[5]=0;end[5]=5;flag[5]=1;return(len[5]=0);
則t=1;t>len[4];len[4]=1;end[4]=end[5]=5;再看4沒了其他相鄰元素。dfs(4)=return(len[4])=1;
t=dfs(4)+1=2;len[2]=t=2;end[2]=end[4]=5;再看2沒了其他相鄰元素,dfs(2)=return(len(2)=2;
再看t=dfs(2)+1=3;len[1]=t=3;end[1]=en[2]=5;再看1有沒有其他相鄰元素,dfs(1)=return(len(1)=3
再執(zhí)行t=dfs(1)+1,len[3]=4;end[3]=end[1]=5;再看3有沒有其他相鄰元素,有dfs(5),已經(jīng)遍歷到了,所以dfs(5)return len【5】。
沒有影響。
假設(shè)改為
5 3 5 2 3 5 3 1 2 4 4 1 0 0 執(zhí)行時(shí)會(huì)走3->1>這時(shí)的1結(jié)點(diǎn)len[1]已經(jīng)求的 3>5>2>4>1len[1]已知了
posted on 2009-06-29 16:13 luis 閱讀(279) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 搜索給我啟發(fā)題
<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

文章分類

文章檔案

友情鏈接

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲无毛电影| 国产精品va在线播放我和闺蜜| 欧美va亚洲va香蕉在线| 久久久人成影片一区二区三区 | 欧美激情一区二区三区在线| 欧美黄色一区二区| 欧美日韩成人在线播放| 欧美日韩在线免费视频| 国产精品视频1区| 国产一区二区按摩在线观看| 国内成+人亚洲| 91久久嫩草影院一区二区| 一本大道久久a久久精二百| 亚洲一区二区精品在线观看| 校园激情久久| 欧美激情乱人伦| 99国产精品久久久久老师| 亚洲精品一二三区| 亚洲男人影院| 久久综合一区二区| 欧美视频在线观看免费| 国产自产v一区二区三区c| 亚洲国产一区二区在线| 亚洲欧美精品伊人久久| 欧美88av| 亚洲一区在线播放| 久久久久久久激情视频| 欧美精品一区二区三区一线天视频| 国产精品国产三级国产aⅴ入口| 国产真实乱偷精品视频免| 亚洲精品免费在线观看| 久久国产66| av成人免费在线观看| 免费成人av在线看| 国产日韩av一区二区| 中文一区在线| 亚洲第一精品夜夜躁人人躁 | 亚洲精品国产精品国自产在线| 亚洲在线成人| 欧美日韩视频在线一区二区 | 亚洲国产精品女人久久久| 亚洲欧美日本日韩| 欧美三级欧美一级| 日韩视频在线观看国产| 另类春色校园亚洲| 午夜精品久久久久久| 国产精品xxx在线观看www| 日韩一级免费| 亚洲国产人成综合网站| 久久久蜜桃精品| 国内精品视频在线播放| 久久久久久伊人| 欧美一区二区三区另类| 国产精品腿扒开做爽爽爽挤奶网站| 日韩视频久久| 最新精品在线| 欧美激情精品久久久久久久变态| 亚洲级视频在线观看免费1级| 久久免费国产| 久久久久久久久久看片| 黄色欧美成人| 久久亚洲精品伦理| 久久午夜视频| 亚洲人成亚洲人成在线观看图片| 免费亚洲网站| 蜜臀av在线播放一区二区三区| 国产亚洲欧美一区二区三区| 欧美黑人在线播放| 欧美三级视频| 亚洲一区二区在线观看视频| 亚洲日本中文字幕免费在线不卡| 免费观看30秒视频久久| 91久久夜色精品国产网站| 欧美激情久久久| 欧美高清在线一区二区| 亚洲精选国产| 中文国产亚洲喷潮| 国产欧美日韩亚州综合| 久久久久久久综合日本| 久久美女性网| 亚洲伦理自拍| 亚洲一级二级在线| 韩国免费一区| 亚洲国产精品久久人人爱蜜臀 | 欧美大片在线影院| 欧美电影免费观看网站| 亚洲一区bb| 久久xxxx精品视频| 亚洲激情网站| 亚洲网站在线| 亚洲高清不卡在线| 野花国产精品入口| 黑人中文字幕一区二区三区 | 欧美一区二区三区在线播放| 亚洲大片免费看| 亚洲毛片在线看| 国产亚洲毛片| 亚洲精品久久嫩草网站秘色| 国产欧美日本| 亚洲茄子视频| 国产综合欧美| 宅男噜噜噜66一区二区66| 极品日韩久久| 亚洲天堂网站在线观看视频| 伊人狠狠色j香婷婷综合| 日韩亚洲不卡在线| 1000部精品久久久久久久久| 一区二区三区产品免费精品久久75 | 91久久亚洲| 午夜国产一区| 亚洲午夜精品一区二区| 久久伊人亚洲| 欧美与黑人午夜性猛交久久久| 免费看的黄色欧美网站| 久久精品在线观看| 欧美午夜精品久久久久久久| 欧美高清视频在线播放| 极品尤物av久久免费看| 亚洲一区三区电影在线观看| 亚洲精品中文字幕在线| 久久一区免费| 狂野欧美一区| 国产视频一区在线| 在线视频你懂得一区| 亚洲美女啪啪| 欧美福利影院| 久久久久久成人| 性色av一区二区三区红粉影视| 欧美激情在线狂野欧美精品| 免费试看一区| 在线欧美日韩| 久久久人成影片一区二区三区| 欧美一级午夜免费电影| 欧美视频在线观看 亚洲欧| 日韩网站在线观看| 中文高清一区| 欧美丝袜第一区| 一区二区三区你懂的| 亚洲综合激情| 国产精品入口尤物| 亚洲欧美日本伦理| 久久久久久97三级| 韩国精品在线观看| 久久免费视频网站| 欧美成人精品一区二区三区| 国产在线视频欧美一区二区三区| 小黄鸭视频精品导航| 久久一区二区三区超碰国产精品| 国产精品网站在线播放| 午夜精品久久久久久久白皮肤| 欧美一区二区黄色| 激情六月婷婷综合| 欧美粗暴jizz性欧美20| 亚洲精品久久7777| 亚洲自拍电影| 国产一区二区三区久久悠悠色av | 久久综合久久久久88| 欧美激情在线狂野欧美精品| 亚洲欧洲精品天堂一级| 欧美日韩亚洲一区二区三区在线观看 | 欧美黑人国产人伦爽爽爽| 999亚洲国产精| 欧美亚洲综合另类| 永久免费精品影视网站| 欧美激情精品久久久久久大尺度 | 这里是久久伊人| 久久久久久久久久看片| 亚洲美女啪啪| 国产亚洲va综合人人澡精品| 美国成人直播| 一区二区三区精品视频| 久久久久欧美精品| 亚洲激情在线| 国产欧美日韩视频一区二区| 男男成人高潮片免费网站| 一级日韩一区在线观看| 久久综合九色99| 亚洲性视频网站| 1000精品久久久久久久久| 欧美午夜片欧美片在线观看| 久久久久久高潮国产精品视| 一本色道久久综合狠狠躁篇的优点| 久久精品一区二区三区不卡| 日韩午夜免费视频| 国产一区二区三区成人欧美日韩在线观看 | 欧美深夜福利| 久久在线免费| 午夜精品国产更新| 日韩一区二区精品在线观看| 女人色偷偷aa久久天堂| 性久久久久久| 亚洲社区在线观看| 亚洲欧洲一区二区天堂久久| 国产婷婷一区二区| 国产精品国产三级国产专区53| 免费欧美视频| 久久伊人亚洲| 久久久99国产精品免费| 亚洲一区日韩在线| 一区二区三区www|