綿陽東辰國際test2019 10 31

2022-01-29 08:39:43 字數 1617 閱讀 8555

吐槽:當時腦抽了,總是往難得地方想,實際上很簡單一道簽到題,總結以後要求自己第一題**不能超過50行,不然就不要寫(肯定就是方法錯了)

分析:構造的時候就每次在它前面從大到小的放,這樣保證肯定能消完的

吐槽:n3log暴力炸了?,我真的是服了我自己了,**功底太好了

這題資料用腳造的,暴力能過,這樣這道題就毫無意義了

我們考慮乙個顯然的貪心:將所有沒有連線的邊放入乙個堆中,並按照度數之和

從大到小進行排序。然後每次選出度數和最大的那個,把它們連起來,並將所有度數

和變化的點相鄰的邊重新加入堆中,重複上述過程

正解是n3的

但是事實上,注意到度數和不超過 2n,所以我們可以將堆換為 2n 個佇列。

每次如果新加入的邊度數和 ≥ k,那麼我們就把他們直接連起來,否則加入對應和的佇列中。

那麼因為這樣只有 < k 的佇列會新增元素,所以我們每次考慮將 k 減少 1 之

後得到的佇列並加入即可

code:

#includeusing namespace std;

#define co const

#define in inline

typedef long long ll;

templatet read()

templatein t read(t&x)

int n;

int ans,rem,deg[501];

bool vis[501][501];

vector> vec[1001];

extern void extend(int u,int v);

void add(int u,int v)

}void extend(int u,int v)

int main()

ans=2*n,rem=n*(n-1)/2-m;

for(int i=1;i<=n;++i)

for(int j=i+1;j<=n;++j) extend(i,j);

while(rem)

printf("%d\n",ans);

return 0;

}

t3考試的時候沒看,講課的時候在睡覺,於是就跳過吧

綿陽東辰國際test201910 21

分析 哈密爾頓環 每個點只經過一次的路線,有哈密爾頓環的圖叫哈密爾頓圖 先考慮只是一條鏈 很容易想到隔乙個跳一次,這樣無論鏈有多長一定是從a出發,b回來 所以直接拓展到樹上即可 如 果當前節點深度是奇數,那麼我們在dfs前輸出這個點,否則在dfs完所有孩子之 後再輸出這個點。part code il...

綿陽東辰國際test10 12

蒟蒻分析 考試時寫個權值線段樹就是調不出來 蒟蒻總結 平時多練手 solution 其實就用樹狀陣列維護一下就行 多了個撤銷操作而已,應該十分鐘就寫完的,我寫了三個小時!code by jklover includeusing namespace std inline int read const ...

綿陽東辰國際test201910 22eve

這是乙個很老的題了 想到肯定和lca樹剖啊有關,但當時我看到1e6的範圍時果斷放棄 結果它m的時限時2秒 說說我的分析 最值問題?不是貪心就是dp 對於dp,如果轉化為線性的,就是乙個單調佇列優化dp的模板 但是想了半天一棵樹怎麼都不能轉化為線性的 對於貪心,考慮乙個點如果能被較多的區間覆蓋就肯定最...