BZOJ 1064 Noi2008 假面舞會

2022-09-18 01:51:44 字數 861 閱讀 6901

題目大意:n個人,k種假面,每人戴一種,戴第i種的可以看見第i+1種,戴第k種的可以看見第1種,給出m條關係表示乙個人可以看到另乙個人,問k可能的最大值和最小值。(n<=100,000,m<=1,000,000)

思路:染色,若點i顏色為ci,就把點i能到的點染成ci+1,能到點i的點染成ci-1,如果染之前已經染過了,設要染的點為j,則cj和ci+1(-1)模k同餘,若cj不等於ci+1(-1),則k必然為|ci+1(-1)-cj|的因子,取gcd即可。若沒有出現這種情況,最大答案為各連通塊最長鏈的和。(稍微卡了個常卡到rank1 233)

#include#include

using

namespace

std;

char b[1

<<21],*s=b,c;int

x;inline

intread()

#define r register int

#define mn 100000

#define mm 1000000

struct edgee[mm*2+5

];int h[mn+5],rh[mn+5],en,c[mn+5

],ans,mn,mx;

inline

void ins(int*h,int x,int y);h[x]=en;}

inline

int gcd(int x,int y)

inline

int z(int x)

void dfs(int

x)int

main()

printf(

"%d %d\n

",s<3?-1:s,s<3?-1:3

);}

1064 Noi2008 假面舞會

time limit 10 sec memory limit 162 mb submit 1960 solved 941 submit status discuss 一年一度的假面舞會又開始了,棟棟也興致勃勃的參加了今年的舞會。今年的面具都是主辦方特別定製的。每個參加舞會的人都可以在入場時選擇一 個...

bzoj1063 NOI2008 道路設計

time limit 20 sec memory limit 162 mb submit 931 solved 509 submit status discuss description z國坐落於遙遠而又神奇的東方半島上,在小z的統治時代公路成為這裡主要的交通手段。z國共有n座城市,一 些城市之間...

bzoj1063 Noi2008 道路設計

樹形dp。這道題的劃分方式和樹鏈剖分類似,但是重路徑能經過根節點,而且要求方案數,所以不能用樹鏈剖分。但是由這種關係可以知道答案很小為log n級別 翻看資料後,確認了答案最大為4。但應該有能使答案更大的資料 用f i j 0 1 2 分別表示,以i為子樹的節點中,不便利值最大的點不便利值為j。0代...