6 22聯考題解

2021-08-20 22:00:42 字數 3829 閱讀 8024

a:

和某題很像,這題是帶修改版本的

考慮把每條邊(u

,v,w

) (u,

v,w)

邊權加到他連線的兩點u,

v u,v

上 當a,b中某人同時取了u,

v u,v

,他獲得2w

2

w的價值,對差值貢獻±2

w ±2w

當a,b一人取了

u u

,一人取了

v'>v

v,各獲得

w w

,對差值貢獻

0'>00

發現將差值/2

/

2後和原來取邊的情況等價

問題變成了

n n

個點,取每個點有點權,a,b輪流取,a想最大化a-b,b反之

顯然a,b會輪流取最大權的點

我們只要維護點權排序後奇數字置的權值和偶數字置的權值

帶修改,修改=刪除+插入

寫一棵splay維護

code:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace

std;

ll ans;

inline

void read(ll &x)

inline

void up(int &a,const

int &b)

if(l!=x) fa[son[x][0]=build(l,x-1)]=x;

if(x!=r) fa[son[x][1]=build(x+1,r)]=x;

pushup(x);

return x;

}void pushup(int x)

void rot(int x,int &k)

void splay(int x,int &k)

pushup(x);

}int go(int x,int t)

void del(int x)

else fa[root=son[x][1]]=0;

pushup(root);

}void ins(int x)}}

ll cal()

}tr;

int main()

else

ans=tr.cal()>>1;

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

ans*=o;

}return

0;}

b:

突然就成了板子題?

設起點從左到右為a1

,a2....an

'>a1,

a2....an

a1,a

2....an

,終點從左到右b1

,b2.....bn

b 1,

b2.....bn

因為不能路徑相交,最終路徑顯然是a1

−>b1

,a2−

>b2

,a3−

>

b3.....an

−>bn

a 1−

>b1

,a2−

>b2

,a3−

>

b3.....an

−>bn

先考慮怎麼求點

s s

到t'>t

t,不經過障礙點的方案數 將t

t

看作障礙點,設f[

i]'>f[i

]f[i

]表示s s

到第i'>i

i個障礙點,中途不經過其他障礙點的方案數,轉移的時候容斥一下,總方案數減不合法的,不合法的通過列舉遇到的第乙個障礙點計算f[

i]=w

ays(

s,i)

−∑f[

j]wa

ys(j

,i) f[i

]=wa

ys(s

,i)−

∑f[j

]way

s(j,

i)

然後設m[i

][j]

m [i

][j]

表示ai

a

i到bj

b

j不經過障礙點的方案數,根據某定理,這個n∗

n n∗n

的矩陣的行列式就是路徑兩兩不想交的總方案數

感受一下似乎就是個容斥

code:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace

std;

const

int maxc = 210000;

const

int maxn = 405;

const

int mod = 998244353;

inline

void add(int &a,const

int &b)

inline

void dec(int &a,const

int &b)

int pw(int x,int k)

int inv(int x)

int s[maxc],invs[maxc];

void pre()

int c(int i,int j)

int n,m,p,q;

struct point

}st[maxn],ed[maxn],pi[maxn];

inline

bool cmp(const point x,const point y)

if(k)

else

continue;

}int ii=inv(a[i][i]);

for(int j=1;j<=n;j++) if(a[j][i]&&j!=i)

}int ans=1;

for(int i=1;i<=n;i++) ans=(ll)ans*a[i][i]%mod;

return ans;

}}int f[maxn];

int main()

}printf("%d\n",gauss::solve());

return

0;}

c:

simpson積分能拿50pt

求凸多邊形和所有圓並面積,圓並面積,凸多邊形面積

算面積格林公式變二重積分,然後找每條線段,每個圓的圓弧,在邊界上的部分,叉積積分一下算面積

反正我不會

題解 六省聯考2017

題目順序不是做題順序也不是考試順序更不是難度順序,是隨機順序。為了不影響 體驗決定把 刪去,需要請私信我,qq或皆可。題目裡的難度評分是個人評分,僅供參考開心就好。題意是給定期末考試每門課的出分時間和學生希望的出分時間,如果學生要等就會有不滿意度。你可以進行老師的增加和調換操作,但是都會產生不滿意度...

六省聯考2017 題解

t1 期末考試 題意 有 n 位同學,每位同學都參加了全部的 m 門課程的期末考試,都在焦急的等待成績的公布。第 i 位同學希望在第 t i 天或之前得知所有課程的成績。如果在第 t i 天,有至少一門課程的成績沒有公布,他就會等待最後公布成績的課程公布成績,每等待一天就會產生 c 不愉快度。對於第...

六省聯考2017題解

觀察資料範圍,發現 n 非常大,但是 k 和 r 很小,容易想到矩陣乘法。原題式子的組合意義就是從 n times k 個物品選擇 i i bmod k r 個物品。考慮dp,設 f 表示從 i 個物品中選擇 s s bmod k j 個物品。由於 c c c 因此可以推出 f f f 發現所有的 ...