2017noip模擬賽T2 attack 題解

2021-09-12 15:58:36 字數 2474 閱讀 4902

將病毒按攻擊力從小到大排序,網線也從小到大排序,乙個病毒能入侵的網路比它強的病毒也能入侵,如果病毒攻擊力遞增,下乙個病毒可入侵網路在此基礎上擴充套件即可,每個節點只擴充套件一次,不會撤銷,每次將病毒可入侵的邊加入,用並查集維護連通塊の利潤和,最高重要度及其個數,並統計這次入侵的連通塊,注意判重。然後,50分就有了?!

此題卡常數,需要乙個給力的輸入輸出優化

#include

#include

#include

using

namespace std;

typedef

long

long ll;

#define bufsize 300000

namespace fib

,*f=b;

}#define gc ((*fib::f)?(*(fib::f++)):(fgets(fib::b,sizeof(fib::b),stdin)?(fib::f=fib::b,*(fib::f++)):-1))

void

read

(int

&tmp)

void

read

(ll &tmp)

namespace fob

,*f=b,

*g=b+bufsize-2;

}#define pob (fwrite(fob::b,sizeof(char),fob::f-fob::b,stdout),fob::f=fob::b,0)

#define pc(x) (*(fob::f++)=(x),(fob::f==fob::g)?pob:0)

struct foce

} _foce;

namespace ib

inline

void

pint

(ll x)

if(x<0)

char

*s=ib::b;

while

(x)*

(++s)

=x%10

, x/=10

;while

(s!=ib::b)pc(

(*(s--))

+48);

}#define n 410000

struct e g[

3010000];

int fr[n]

,tot;

void

add(

int from,

int to)

int n,m,q,num[n]

,val[n]

,rk[n]

,rke[n]

,x[n]

,y[n]

,v[n]

;int f[n]

;ll ans1[n]

,ans2[n]

,hs[n]

,ha[n]

,b[n]

;inline

bool

cmp(

const

int&a,

const

int&b)

inline

bool

cmpe

(const

int&a,

const

int&b)

inline

intfd

(int x)

inline

void

mer(

int x,

int y)

}int le =1;

bool done[n]

;inline

void

slove

(int t)

for(

int i = fr[t]

; i; i = g[i]

.next)

}for

(int i = fr[t]

; i; i = g[i]

.next) done[

fd(g[i]

.to)]=

0;ans1[t]

= tp1; ans2[t]

= tp2;

}int

main()

}sort

(rk+

1,rk+q+

1,cmp)

;sort

(rke+

1,rke+m+

1,cmpe)

;for

(int i =

1; i <= q; i++

)slove

(rk[i]);

for(

int i =

1; i <= q; i++

)pint

(ans1[i]),

pc(' ')

,pint

(totb-ans2[i]),

pc('\n');

return0;

}

2017NOIP模擬賽 松鼠的新家(樹上差分)

松鼠的新家是一棵樹,前幾天剛剛裝修了新家,新家有n個房間,並且有n 1根樹枝連線,每個房間都可以相互到達,且倆個房間之間的路線都是唯一的。天哪,他居然真的住在 樹 上。松鼠想邀請小熊維尼前來參觀,並且還指定乙份參觀指南,他希望維尼能夠按照他的指南順序,先去a1,再去a2,最後到an,去參觀新家。可是...

20161005 NOIP 模擬賽 T2 解題報告

beautiful 2.1 題目描述 乙個長度為 n 的序列,對於每個位置 i 的數 ai 都有乙個優美值,其定義是 找到序列中最 長的一段 l,r 滿足 l i r,且 l,r 中位數為 ai 我們比較序列中兩個位置的數的大小時,以數值為第一關鍵字,下標為第二關鍵字比較。這樣的話 l,r 的長度只...

20161003 NOIP 模擬賽 T2 解題報告

weed duyege的電腦上面已經長草了,經過辨認上面有金坷垃的痕跡。為了查出真相,duyege 準備修好電腦之後再進行一次金坷垃的模擬實驗。電腦上面有若干層金坷垃,每次只能在上面撒上一層高度為 vi 的金坷垃,或者除掉最 新 vi 層 不是量 撒的金坷垃。如果上面只留有不足 vi 層金坷垃,那麼...