女友的考驗

2021-08-13 17:37:09 字數 1945 閱讀 7966

終於放寒假了,小明要和女朋友一起去看電影。這天,女朋友想給小明乙個考驗,在小明正準備出發的時候,女朋友告訴他,她在電影院等他,小明過來的路線必須滿足給定的規則: 

1、假設小明在的位置是1號點,女朋友在的位置是n號點,則他們之間有n-2個點可以走,小明每次走的時候只能走到比當前所在點編號大的位置; 

2、小明來的時候不能按一定的順序經過某些地方。比如,如果女朋友告訴小明不能經過1 -> 2 -> 3,那麼就要求小明來的時候走過的路徑不能包含有1 -> 2 -> 3這部分,但是1 -> 3 或者1 -> 2都是可以的,這樣的限制路徑可能有多條。 

這讓小明非常頭痛,現在他把問題交給了你。 

特別說明,如果1 2 3這三個點共線,但是小明是直接從1到3然後再從3繼續,那麼此種情況是不認為小明經過了2這個點的。 

現在,小明即想走最短的路盡快見到女朋友,又不想打破女朋友的規定,你能幫助小明解決這個問題嗎?

輸入包含多組樣例,每組樣例首先包含兩個整數n和m,其中n代表有n個點,小明在1號點,女朋友在n號點,m代表小明的女朋友有m個要求;

接下來n行每行輸入2個整數x 和y(x和y均在int範圍),代表這n個點的位置(點的編號從1到n);

再接著是m個要求,每個要求2行,首先一行是乙個k,表示這個要求和k個點有關,然後是順序給出的k個點編號,代表小明不能走k1 -> k2 -> k3 ……-> ki這個順序的路徑;

n 和 m等於0的時候輸入結束。

[technical specification]

2 <= n <= 50

1 <= m <= 100

2 <= k <= 5

對於每個樣例,如果存在滿足要求的最短路徑,請輸出這個最短路徑,結果保留兩位小數;否則,請輸出」can not be reached!」 (引號不用輸出)。
示例1

3 1

1 12 1

3 12

1 22 1

0 01 1

2 1 2

5 30 0

5 31 2

1 22

5 21

31 2 3

2 4 5

21 5

0 0

2.00

can not be reached!

21.65

#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

const double inf = 1e20;

int n;

pairp[100];

double dis(paira,pairb)

double dp[55][1000];

void checkmin(double &a,double b)

struct trie

void init()

void insert(int a,int cnt)

end[now] = 1;

}void build()

while(!q.empty())}}

void solve()

}double ans = inf;

for(int i = 0;i < l;i++)

if(dp[n][i] < inf)

checkmin(ans,dp[n][i]);

if(ans == inf)printf("can not be reached!\n");

else printf("%.2f\n",ans);

}}ac;

int a[10];

int main()

ac.build();

ac.solve();

}return 0;

}

hdu 4511 小明系列故事 女友的考驗

ac自動機上的最短路問題,題目要求所經過結點公升序,且規定某些線路是不合法的,對應於ac自動機上的非法狀態。這道題目大部分題解是用dp來做的,而我是用dijstra變形來解決這個題目的 同上篇文章 做了好幾天的ac自動機的習題,對於ac自動機還是有了一些理解,ac自動機在某個角度來看就是一張有特殊限...

考驗,在真正的考驗來臨之前

前天上午到一客戶處辦理續簽業務,當天下午到一朋友所在公司辦理續簽業務。當時和朋友聊了個把鐘頭。昨天又在網亂逛,結果心有些散了。有一件非常有趣的事情,凡是有朋友聽說我在學佛,都問我還吃不吃肉。在他們的印象裡,好象信佛和修佛法的人不應該吃肉的。我說自己只是進行了皈依還沒有受戒,暫時還是可以吃肉的,盡量不...

人性的考驗

今天是2020 07 08,值得紀念的一天。一次人性的考驗,也是一次人生的選擇。今天老婆給我了50萬,讓我開科創板。以下是我和老婆的對話。雖然錢在我的賬號上,操作是我輕而易舉的事情,因為現在是牛市,我判斷乙個月內有券商 應該是可以給昨天調整的券商帶來至少10 的收益,在開盤30分鐘,我經歷了人性的考...