流星雨(記憶化搜尋)

2022-07-24 02:27:12 字數 1719 閱讀 3566

英仙座流星雨(學名perseids)是以英仙座γ星附近為輻射點出現的流星雨,也稱英仙座γ流星雨。每年在7月20日至8月20日前後出現,於8月13日達到高潮。與象限儀座流星雨、雙子座流星雨並稱為北半球三大流星雨。

暑假到了,又是乙個去看流星雨的好季節。

看流星雨最重要的是什麼?當然是許願。

當一顆流星出現時,可以對其許願。

你一次可以選擇一顆流星進行許願,每乙個願望都需要一定的時間才能說完,而且中間不能有中斷。

但是流星的持續時間通常都很短,很難在流星消失之前把自己的乙個願望說完。

你可以朝著新出現的流星接著許上乙個未許完的願望,當且僅當前一顆流星消失的瞬間另外一顆流星同時出現,

你不可以在一顆流星還在出現的時候轉向其他的流星,這樣流星之神會生氣,厄運會降臨

現在給你每顆流星出現和結束的時間,問你許乙個願望的最大時長是多少?

第一行乙個數n n<=1000000

表示流星的數目

接下來每行2個數字 x,y (0<=x,y<=1001000 )

表示流星出現的時間和結束的時間

乙個數字,表示最長可以連續許願的時間
示例1

複製

3

2 32 4

1 2

複製

3

1~4

題意:中文,應該看得懂

思路:將輸入的每個流星開始的時間作為起點,進行搜尋,找到它所能到達的最遠距離(把輸入的流星時間段變成一幅單向圖),

如果每個都重新搜一遍一定會超時,所以要對搜尋過程進行記憶化,將搜尋過程的每一結果都用陣列存下來,到下次再搜尋到時直接取出來用。

**:

#include#include

#include

#include

#include

#include

#include

#include

#include

#define mem(a,b) memset(a,b,sizeof(a)

#define mod 100000007

#define ll long long

#define maxn 1000000

const

double pi = acos(-1.0

);using

namespace

std;

intn;

int tol=0

;int head[1001010

];int num[1001010

];//

建圖 struct

edgee[maxn*3

];void add(int start,int

ed)bool vis[1001010

];int

t[maxn];

//搜尋

int dfs(int

start)

else

}if(tt==-1) return start;//

這個點已經沒有後繼點了,返回這個點,這個即是離start最遠的點

else

return num[start]=tt;//

這個start有乙個可更新的最遠終點,進行更新

}int

main()

int ans=0

;

for(int i=0;i)

}cout

}

流星雨 行者常至 雙子座流星雨

by 傳媒的朋友 李家成 by 傳媒的朋友 餘果林 by 林澤輝 by 張露文 看見的和看不見的 都在等待著人們的探索 五個嫦娥上去了 更有千萬個嫦娥即將遠行 等不到雙子座流星雨灑滿天際 沒有雙子座 沒有流星雨 但今晚有彩色的星星 在絕美的雙子座流星雨下 許個願吧 願今年能不留遺憾 願明年平平安安 ...

流星雨效果頁面

注 字母下落是動態的 如下 charset utf 8 流星雨title name keywords name description content 描述資訊 body style head width 400 height 400 style background 000000 id canva...

(期望概率)流星雨

時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld 現在一共有n天,第i天如果有流星雨的話,會有wiwi顆流星雨。第i天有流星雨的概率是pipi。如果第一天有流星雨了,那麼第二天有流星雨的可能性是p2 pp2 p,否...