FZYZOJ 2162 Zrn神犇之摺紙遊戲

2022-03-25 20:03:18 字數 1533 閱讀 6617

時間限制:2000ms

記憶體限制:524288kb

這是乙個長度為n,寬度為1的紙條,從1開始寫著連續的n個自然數。12

3456

…n如果它的長度為偶數,zrn神犇則會很高興,直接把它從左往右或從右往左對折。比如長度為6的紙條從左往右對折完就會是這樣:

如果它的長度為質數,zrn神犇則會覺得不太爽,他就只能把最左端的往右折或把最右端的往左折。比如長度為5的紙條從右往左折完會變成這樣:

如果它的長度是合數,zrn神犇則會找到它最小的質因數k,把它分成相同長度的k段,按折長度為k的紙條的方法處理。

zrn神犇就一遍又一遍地按著這個方法折,最後把這個紙條折成了乙個疊在一起的小方塊。

下面演示長度為15,對折和長度為質數時均從右往左折的紙條的摺法:(描述可能不大清楚,請見諒)

(長度為15)

(長度為10)

(長度為5)

(長度為4)

(長度為2)

(長度為1,目標狀態)

三個數n,p1,p2,n為紙條的長度,若p1=1,對折時從左往右折,若p1=2,對折時從右往左折;若p2=1,長度為質數時折最左端,若p2=2,長度為質數時折最右端。

n行,每行乙個整數,為1~n的乙個排列,表示目標狀態從上到下紙片的編號。

15 2 2
2129

81334

147615

510111

對於20%的資料,n≤40;

對於50%的資料,n≤1000;

對於100%的資料,n≤5000000。

【題解】本來一看模擬,被資料範圍嚇傻了

然後經過了wzt、cyx大聚聚的教導

終於明白了-這是一題雙鏈表。

然後就按照題目操作一下

憋了半個多小時,發現素因子被我篩錯了……

1 #include2

using

namespace

std;

3const

int max=5000010;4

int n,p1,p2,pr[max],head[max],next[max][2];5

intbgn,end,len;

6int

main()

16 bgn=1;end=len=n;

17for (int i=1;i<=n;++i)

18 head[i]=i, next[i][0]=next[i][1]=0;19

while(len!=1

) 27 bgn+=sxbk;28}

29else

35 end-=sxbk;36}

37 len-=sxbk;38}

39for (int i=head[bgn];i;i=next[i][head[bgn]&1

]) 40 printf("

%d\n

",i);

41return0;

42 }

view code

fzyzoj1578 數列分段

fzyzoj1578 數列分段 註明 這道題是別人學校 的題,進不了,交不了我也很傷心,所以,所以,借鑑思路就好了。二分 description 對於給定的乙個長度為n的正整數數列a i 現要將其分成m m n 段,並要求每段連續,且每段和的最大值最小。關於最大值最小 例如一數列4 2 4 5 1要...

FZYZOJ 1204 零和問題

時間限制 1000ms 記憶體限制 131072kb 川爺你看你選的題叫我怎麼改描述啊 各位現在請腦補有趣張要做的事吧我實在編不下去了 3 j z 請考慮乙個由1到n n 3,4,5 9 的數字組成的遞增數列 1 2 3 n。現在請在數列中插入 表示加,或者 表示減,抑或是 表示空白,來將每一對數字...

FZYZOJ 2108 連線網路

時間限制 1000ms 記憶體限制 131072kb 接上回 本oj的 p2107.zrn神犇之還原資料 zrn神犇還原完資料,發現機房的網路連線全部中斷了。他準備把機房的網路恢復起來。機房裡有若干臺整齊排放的電腦和乙個路由器。路由器可以提供無線網路連線 又稱wi fi 覆蓋區域是乙個以它為圓心的圓...