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

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次,超時4次,wa 3次。
很無語。
應該是動態規劃最好,但是我不是很熟,用了搜索。以下是超時的代碼
#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)//返回從當前點出發的最大長度
{
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;//這句堅決不需要 
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)//返回從當前點出發的最大長度
{
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;
}
不妨執行一下
5
3
1 2
3 5
3 1
2 4
4 5
0 0
先是len[3]=0;end[3]=3;flag[3]=1;
再執行t=dfs(1)+1,
轉入dfs(1);len[1]=0;end[1]=1;flag[1]=1;
再執行t=dfs(2)+1;
轉入dfs(2),len[2]=0;end[2]=2;flag[2]=1;
再執行t=dfs(4)+1
轉入dfs(4),len[4]=0;end[4]=4;flag[4]=1;
再轉入t=dfs(5)+1;
轉入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
再執行t=dfs(1)+1,len[3]=4;end[3]=end[1]=5;再看3有沒有其他相鄰元素,有dfs(5),已經遍歷到了,所以dfs(5)return len【5】。
沒有影響。
假設改為
5 3 5 2 3 5 3 1 2 4 4 1 0 0 執行時會走3->1>這時的1結點len[1]已經求的 3>5>2>4>1len[1]已知了
posted on 2009-06-29 16:13 luis 閱讀(287) 評論(0)  編輯 收藏 引用 所屬分類: 搜索給我啟發題
<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

文章分類

文章檔案

友情鏈接

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            免费日韩一区二区| 国产精品免费电影| 国产在线精品一区二区中文| 亚洲视频一区在线| 夜夜嗨网站十八久久| 欧美天天视频| 性色av一区二区三区在线观看| 亚洲女同性videos| 国产亚洲欧美一区二区三区| 久久综合婷婷| 欧美激情国产日韩精品一区18| 亚洲美女诱惑| 亚洲午夜黄色| 精品96久久久久久中文字幕无| 亚洲福利视频在线| 欧美成人综合一区| 香蕉久久国产| 久久久亚洲午夜电影| 99这里有精品| 亚洲激情自拍| 亚洲日韩第九十九页| 国产精品久久久久久久午夜| 久久九九免费视频| 欧美激情a∨在线视频播放| 中文一区二区| 久久久www成人免费精品| 亚洲另类视频| 欧美在线视频观看免费网站| 亚洲日本中文字幕| 欧美成人高清视频| 国产精品电影网站| 久久综合网色—综合色88| 欧美精品18+| 欧美一区亚洲| 欧美人成在线视频| 久久综合色综合88| 国产精品久久久久9999| 麻豆9191精品国产| 国产精品久久久久久影视 | 亚洲人成亚洲人成在线观看| 99精品视频免费观看| 激情六月综合| 亚洲一区二区在线| 国产精品国色综合久久| 欧美激情一区二区三区| 国产精品入口| 99这里只有久久精品视频| 亚洲高清不卡| 久久精品卡一| 久久精品综合| 国产欧美精品xxxx另类| 在线一区观看| 一区二区三区国产在线| 欧美电影免费网站| 欧美激情综合| 亚洲激情视频在线播放| 久久亚洲不卡| 麻豆精品视频在线观看| 国产亚洲一区二区三区| 亚洲综合日本| 欧美一级视频一区二区| 国产精品人人做人人爽| 亚洲视频电影在线| 在线亚洲一区观看| 欧美日韩伦理在线| 亚洲欧洲另类| 亚洲激情视频在线观看| 欧美一区二区视频免费观看| 亚洲精品美女在线| 久久精品欧美日韩精品| 亚洲人在线视频| 欧美精品三级日韩久久| 欧美不卡高清| 怡红院精品视频| 久久久久欧美精品| 久久欧美中文字幕| 国产亚洲精品久久久久久| 一本色道88久久加勒比精品| 亚洲国产精品嫩草影院| 久久一区免费| 欧美国产日本在线| 亚洲国产一区二区三区在线播| 久久久精品动漫| 另类图片综合电影| 国产欧美视频一区二区三区| 欧美在线一二三区| 老鸭窝毛片一区二区三区| 韩国av一区| 久久婷婷国产麻豆91天堂| 欧美va亚洲va日韩∨a综合色| 一区二区三区在线免费播放| 久久精品一区四区| 麻豆av福利av久久av| 亚洲精品一二三| 欧美日韩国产专区| 亚洲视频免费看| 欧美亚洲视频| 在线精品福利| 欧美精品1区2区3区| 欧美顶级艳妇交换群宴| 中文久久精品| 国产精品一区二区三区成人| 午夜在线精品| 欧美电影免费观看| 这里只有精品在线播放| 国产精品一区二区三区成人| 中国女人久久久| 美女被久久久| 亚洲美女视频| 国产日韩综合一区二区性色av| 久久国产精品网站| 亚洲国产日韩欧美在线动漫| 亚洲天天影视| 在线观看一区二区视频| 欧美日韩另类字幕中文| 欧美一区二区三区在线播放| 久久一区二区三区四区| 亚洲精品久久在线| 国产日韩欧美不卡在线| 欧美不卡在线视频| 午夜精品成人在线| 亚洲黄色成人久久久| 欧美一区二区三区播放老司机| 国产在线视频欧美一区二区三区| 欧美三级在线播放| 久久久人成影片一区二区三区 | 精品盗摄一区二区三区| 欧美久色视频| 久久精品视频在线免费观看| 日韩网站在线观看| 欧美成年人视频| 久久aⅴ国产紧身牛仔裤| 最新国产成人av网站网址麻豆| 欧美视频三区在线播放| 欧美人成网站| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲小说欧美另类社区| 91久久精品一区二区别| 久热国产精品| 欧美一级日韩一级| 99riav国产精品| 亚洲美女91| 亚洲国产欧美一区二区三区久久| 国产精品视频久久久| 欧美日韩国产不卡| 欧美成人乱码一区二区三区| 亚洲欧美精品在线观看| 亚洲欧美日本国产专区一区| 亚洲精品在线视频观看| 欧美国产精品劲爆| 麻豆国产精品va在线观看不卡| 久久本道综合色狠狠五月| 一区二区三区欧美| 亚洲午夜在线| 中文精品视频| 亚洲网站在线看| 亚洲视频欧美视频| 中国女人久久久| 午夜在线一区| 性久久久久久久久| 亚洲一区一卡| 亚洲欧美一区二区激情| 一区二区三区四区蜜桃| 在线天堂一区av电影| 亚洲无毛电影| 午夜精品久久久久久久99热浪潮| 亚洲私人影院在线观看| 亚洲精品视频在线| 午夜激情亚洲| 久久黄金**| 美女精品网站| 欧美激情在线有限公司| 亚洲国产一成人久久精品| 99re亚洲国产精品| 亚洲一本大道在线| 亚洲欧美一区二区精品久久久 | 日韩一级免费| 亚洲一级二级| 久久久精品国产一区二区三区| 欧美+日本+国产+在线a∨观看| 美日韩精品免费观看视频| 亚洲电影观看| 一本大道久久a久久精品综合| 亚洲天堂av电影| 亚洲一区二区三区精品动漫| 久久中文欧美| 欧美视频在线观看视频极品| 国产欧美日韩在线播放| 永久免费精品影视网站| 一区二区亚洲精品| 亚洲自啪免费| 六月天综合网| 99视频精品全部免费在线| 亚洲欧美国产制服动漫| 卡一卡二国产精品| 欧美日韩视频在线| 黄色亚洲大片免费在线观看| 亚洲另类一区二区| 欧美在线视频不卡| 亚洲国产精品福利|