dfs 簡單遊戲(jzoj 2121)

2021-09-10 06:44:30 字數 1440 閱讀 9842

原本有n個數字,第1,2個相加,第2,3個相加……第n-1,n個相加,由此得出乙個長度為n-1的新序列,然後不停重複,最後得出乙個t,現在給出一開始的n和t求符合的序列(字典序最小)(多組資料,0 0結束)4 16

3 90 03 1 2 4

1 3 2開始排列: 3 1 2 4

第一次操作:3+1=4 1+2=3 2+4=6

得到: 4 3 6

第二次得到: 7 9

最後就是: 16資料保證有解。請注意加粗字型!

對於30%的資料,保證該組裡的每個n都不超過10。

對於100%的資料,保證有每個n不超過20,且每組資料的個數不超過10。我們可以由題意得出下圖,圖中代表的是數字相加的次數,可以看出,這是乙個楊輝三角,我們可以先求出楊輝三角,再dfs列舉每乙個數1:判斷當前總值是否大於t,若大於,退出

2:因為楊輝三角有對稱的特性,所以判斷a[i]是否大於a[n-i+1],若不大於,退出

3:將剩下的數和楊輝三角剩下可乘的的數排列,將最大的乘最大的,最小的成最小的,得出剩下的數最大的結果,若當前總值+最大的結果

;//判斷是否越界

if(y>=t)

return

;//判斷是否大於t

int w=

0,big=

0,small=0;

for(

register

int i=

1;i<=n;i++

)//沒選過的數if(

!p[i]

)sort

(h+1

,h+1

+w);

//排for

(register

int i=

1,j=w;i<=w;i++

,j--)if

(y+big

return

;//剪枝

if(y+small>t)

return

;for

(register

int i=

1;i<=n;i++)if

(!p[i])}

intmain()

return0;

}

簡單遊戲框架

引用 最近一段時間不是很忙,就寫了乙個自己的遊戲伺服器框架雛形,很多地方還不夠完善,但是基本上也算是能夠跑起來了。我先從上層結構說起,一直到實現細節吧,想起什麼就寫什麼。第一部分 伺服器邏輯 伺服器這邊簡單的分為三個部分,客戶端的連線首先到達閘道器伺服器,閘道器這裡有個執行緒用來監聽來自與客戶端的連...

簡單遊戲 easygame

題目描述 一天,小r準備找小h去游泳,當他找到小h時,發現小h正在痛苦地寫著一列數,1,2,3,n,於是就問小h痛苦的原因,小h告訴他,現在他要算1 n這些數裡面,1出現的次數是多少,如n 11的時候,有1,10,11共出現4次1,現在給出n,你能快速給出答案麼?輸入一行,乙個整數n 輸出乙個整數,...

簡單遊戲框架

引用 最近一段時間不是很忙,就寫了乙個自己的遊戲伺服器框架雛形,很多地方還不夠完善,但是基本上也算是能夠跑起來了。我先從上層結構說起,一直到實現細節吧,想起什麼就寫什麼。第一部分 伺服器邏輯 伺服器這邊簡單的分為三個部分,客戶端的連線首先到達閘道器伺服器,閘道器這裡有個執行緒用來監聽來自與客戶端的連...