乍一看,一道基環樹。
說實話考場上有點懵,day2t1直接上基環樹?
再一看,好像只是一道無腦的搜尋加剪枝
對於noip資料範圍,o(n^2)是可以可過去的
但是對於那個加強版資料,可能需要乙個筆者不會的超級玄學。
好吧不扯了,咱們來看看資料範圍。
m=n-1的情況比較簡單只需一遍跑一邊搜尋,每次找字典序最小的往下搜就行了。
而對於m=n的情況,就是神(wei)奇(suo)的基環樹了。
對於基環樹的簡單定義,可以說是一顆有且僅有乙個簡單環的樹,再通俗一點,就是乙個n個點n條邊的連通圖。
但是,其實用不著基環樹的知識
終極奧秘,暴力
沒錯,只要暴力刪除任意一條邊就行了,再跑搜尋。
因為總有一條邊是用不到的。
最後加乙個剪枝,就是如果當前搜到的字典序肯定大於搜到過的答案了,那就return掉
直接上**
#include
using
namespace std;
int n,m;
vector<
int> edge[
10010];
int d1,d2,d3,d4;
vector<
int> ans1,ans2;
bool ha[
5010][
5010];
int cnt;
bool h,k;
template
<
typename t>
inline
void
read
(t &x)
inline
void
addedge
(int u,
int v)
inline
bool
chck
(int u,
int v)
void
dfs(
int u)
if(ans1.
size()
>
0&&ans2[ans2.
size()
-1]size()
-1])k=1;
ha[u]
[cnt]=1
;for
(int i=
0;i.size()
;i++)}
inline
void
print()
intmain()
for(
int i=
1;i<=n;i++
)sort
(edge[i]
.begin()
,edge[i]
.end()
);if(m==n-1)
for(
int i=
1;i<=n;i++)}
print()
;return0;
}
NOIP2018Day1T1 鋪設道路
春春是一名道路工程師,負責鋪設一條長度為 n 的道路。鋪設道路的主要工作是填平下陷的地表。整段道路可以看作是 n 塊首尾相連的區域,一開始,第 i 塊區域下陷的深度為 d i 春春每天可以選擇一段連續區間 l,r 填充這段區間中的每塊區域,讓其下陷深度減少 1 在選擇區間時,需要保證,區間內的每塊區...
NOIP2018D1T2 貨幣系統
題面 這道題我是親自在考場上考過的 先說題解吧 乙個貨幣系統中 x xx是沒用的,當且僅當他能被系統中別的貨幣表示 我們拿rmb rmbrm b來舉個例子 發現所有的錢都能被一分錢表示出來 所以只留乙個一分錢的就好了 啪咳咳 不鬧了 題面可以簡述為 給你乙個貨幣系統a aa 讓我們可以給他簡化 使得...
CTSC2018 Day2T1 Juice混合果汁
題解 在考場上a掉的題。把美味度排個序,然後按照 p為權值建立主席樹,把每個果汁按照拍好的順序新增進去。主席樹上維護總公升數cnt以及總 sum。對於每個詢問,我們二分乙個美味值,check的時候去主席樹上查詢大於等於這個美味值的果汁中購買l公升的 即可。1 include2 include3 de...