5895 NOIP2018模擬10 5 旅遊

2021-08-28 18:09:53 字數 557 閱讀 6990

這題目比較特殊點在於他的邊權是2^i,比賽的時候傻,沒有想到有什麼用,後來看到題解,如果構出一顆最小生成樹,那麼最短路一定在最小生成樹上面,這樣子就變成了一棵樹上在原圖中的奇點要配對,因為樹上的一些奇怪性質,我們可以之間貪心得出答案,最後答案就是所有邊權加上最小生成樹上面貪心的結果。

#include#include#include#include#define mo 998244353

#define n 500005

#define ll long long

using namespace std;

ll du[n],last[n],g[n],fa[n],n,m,v,u,o,ans,cnt,s;

struct treee[n*2];

void add(ll x,ll y,ll w)

void dfs(int x,int fa)

}ll father(ll x)

int main()

} dfs(1,0);

printf("%lld",ans%mo);

}

計蒜客NOIP2018模擬1

t1 最失敗的一道題,其實就是道水題,好幾種寫法,一種都沒想出來。題意轉化後就是 每個數可以選a i 和a i k,最後求使1,2,3,t都存在的最大的t 1和最多能讓多少個數小於等於t。為什麼第一問可以轉化成求有多少個數小於等於t呢?首先不大於k的怪物可以直接殺死,然後大於k的怪物顯然當且僅當血量...

NOIP2018 模擬賽day1 塔

小 a 想搭乙個體積不超過 m 的塔,他有各種大小的立方積木,比 如邊長為 a 的積木,體積為 a 3,現在小 a 需要你給乙個 x,每次小 a 會用乙個體積不超過 x 的最大積木,依次到搭好為止,現在他想最 大化積木的個數,同時在積木個數最大的情況下使 x 最大。這道題只有那麼神奇了,寶寶看了n久...

NOIP2018模擬9 15總結

就是這樣 分數100 80 60 240 rank1 暴力真是爽 t1題意 有n個點,m條邊,k個特殊點,邊權為1 求每個點到離他最遠的特殊點的最短距離 nk 10000000 顯然暴力 t1 include define n 300001 using namespace std int i,j,k...