Vijos1404 遭遇戰(最短路)

2022-03-20 03:38:34 字數 712 閱讀 2476

vijos

顯然可以樹狀陣列之類的東西維護一下\(dp\)。這裡考慮一種最短路的做法。

首先對於乙個區間\([l,r]\),顯然可以連邊\((l,r+1)\),那麼最終的問題轉化成了從\(s\)時刻到\(e\)時刻的最短路。發現顯然並不在意乙個時間可以被個線段覆蓋,所以連邊\((i+1,i)\),邊權為\(0\)的邊。

#include#include#include#include#includeusing namespace std;

#define ll long long

#define max 1000000

inline int read()

struct linee[max];

int h[max],cnt=1;

inline void add(int u,int v,int w);h[u]=cnt++;}

int n,s,e;ll dis[max];

bool vis[max];

void spfa()

} vis[u]=false; }}

int main()

for(int i=s;i<=e+1;++i)add(i,i-1,0);

spfa();

printf("%lld\n",dis[e+1]>=1e18?-1:dis[e+1]);

return 0;

}

140 單詞拆分 II

給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,在字串中增加空格來構建乙個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。說明 分隔時可以重複使用字典中的單詞。你可以假設字典中沒有重複的單詞。示例 1 輸入 s catsanddog worddict cat ca...

140 單詞拆分 II(continue)

給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,在字串中增加空格來構建乙個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。說明 示例 1 輸入 s catsanddog worddict cat cats and sand dog 輸出 cats and dog ...

140 單詞拆分 II leecode

給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,在字串中增加空格來構建乙個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。說明 分隔時可以重複使用字典中的單詞。你可以假設字典中沒有重複的單詞。題目鏈結 這道題明顯是個搜尋的題目。但問題在於如何進行搜尋。每個位置可能...