BZOJ 2935 Poi 1999 原始生物

2022-05-06 22:18:11 字數 3011 閱讀 9626

time limit: 3 sec  memory limit: 128 mb

submit: 145  solved: 71

[submit][status][discuss]

原始生物的遺傳密碼是乙個自然數的序列k=(a1,...,an)。原始生物的特徵是指在遺傳密碼中連續出現的數對(l,r),即存在自然數i使得l=ai且r=ai+1。在原始生物的遺傳密碼中不存在(p,p)形式的特徵。

求解任務:

請設計乙個程式:

·讀入一系列的特徵。

·計算包含這些特徵的最短的遺傳密碼。

·將結果輸出

第一行是乙個整數n ,表示特徵的總數。在接下來的n行裡,每行都是一對由空格分隔的自然數l 和r ,1 <= l,r <= 1000。數對(l, r)是原始生物的特徵之一。輸入檔案中的特徵不會有重複。

唯一一行應該包含乙個整數,等於包含了pie.in中所有特徵的遺傳密碼的最小長度。

122 3

3 99 6

8 55 7

7 64 5

5 11 4

4 22 8

8 615

注:pie.in中的所有特徵都包含在以下遺傳密碼中:

(8, 5, 1, 4, 2, 3, 9, 6, 4, 5, 7, 6, 2, 8, 6)

1 #include2

//#include

3 #include4 #include5 #include6 #include7

#define inf 0x3f3f3f3f

8#define re register

9#define ii inline int

10#define il inline long long

11#define iv inline void

12#define ib inline bool

13#define id inline double

14#define ll long long

15#define fill(a,b) memset(a,b,sizeof(a))

16#define r(a,b,c) for(register int a=b;a<=c;++a)

17#define nr(a,b,c) for(register int a=b;a>=c;--a)

18#define min(a,b) ((a)

19#define max(a,b) ((a)>(b)?(a):(b))

20#define cmin(a,b) ((a)=(a)

21#define cmax(a,b) ((a)=(a)>(b)?(a):(b))

22#define abs(a) ((a)>0?(a):-(a))

23#define d_e(x) printf("&__ %d __&\n",x)

24#define d_e_line printf("-----------------\n")

25using

namespace

std;

26const

int n=1001;27

ii read()

33 iv print(int

x)38

intfa[n],deg[n],vis[n],tag[n];

39 ii find(int

x)42

intmain()

51int sum=0

;52 r(i,1

,n)53

if(deg[i])

54 tag[find(i)]=1,//

in the same tag

55 sum+=abs(deg[i]);

56int k=0

;57 r(i,1

,n)58

if(vis[i]&&find(i)==i&&!tag[i])

59 ++k;//

totol tags

60 print(k+(sum>>1)+m);

61return0;

62}63/*645

651 3

663 4

672 4

684 7

694 6

7071726

731 2

741 3

751 6

762 3

773 4

782 5

79*/

view code

time limit: 3 sec  memory limit: 128 mb

submit: 145  solved: 71

[submit][status][discuss]

原始生物的遺傳密碼是乙個自然數的序列k=(a1,...,an)。原始生物的特徵是指在遺傳密碼中連續出現的數對(l,r),即存在自然數i使得l=ai且r=ai+1。在原始生物的遺傳密碼中不存在(p,p)形式的特徵。

求解任務:

請設計乙個程式:

·讀入一系列的特徵。

·計算包含這些特徵的最短的遺傳密碼。

·將結果輸出

第一行是乙個整數n ,表示特徵的總數。在接下來的n行裡,每行都是一對由空格分隔的自然數l 和r ,1 <= l,r <= 1000。數對(l, r)是原始生物的特徵之一。輸入檔案中的特徵不會有重複。

唯一一行應該包含乙個整數,等於包含了pie.in中所有特徵的遺傳密碼的最小長度。

122 3

3 99 6

8 55 7

7 64 5

5 11 4

4 22 8

8 615

注:pie.in中的所有特徵都包含在以下遺傳密碼中:

(8, 5, 1, 4, 2, 3, 9, 6, 4, 5, 7, 6, 2, 8, 6)

BZOJ2929 Poi1999 洞穴攀行

給出n個洞穴,起點為1,終點為n,並給出乙個有向無環圖,且保證每條路徑的終點都是n 起點和終點所連線的邊只能走一次,其他的邊能走無限次,求最多能從起點派多少人到達終點 裸網路流,直接將走的次數轉化為流量就ok了 include include include include include usin...

bzoj2927 Poi1999 多邊形之戰

可以注意到要取下黑色三角形,則黑色三角形三條邊中至少要兩條邊不再有外接三角形。故設三元組 x y,z 表示黑色三角形三條邊外接的三角形個數。不妨設 x y z 每次操作只能從x,y,z 中取乙個來減1,終態為 x 0,0 此時先手必勝。然後可以先分情況討論一下。當y z 0 時,顯然先手必勝。當z ...

bzoj1999 樹網的核

從下午坑到網上。noip的資料太弱,若干的地方寫掛結果還隨便過 最坑的就是網上有些題解沒考慮周全。第一步是找直徑,用兩次bfs 或者dfs,linux下系統棧挺大的。解決。找出其中一條直徑就可以了,雖然蒟蒻不會證明但是看起來似乎挺有道理的 要看證明的話可以看這個題解 直徑上的路徑本來有n 2條,但是...