程式設計開發練習題 下棋問題

2021-12-30 03:01:33 字數 1942 閱讀 9656

星空

【問題描述】

你是能看到第一題的 friends 呢。 ——hja

點點星空是一張n m的棋盤,左下角有顆星星。尤和千每次可以將星星向

右邊、右上、上邊移動一格。尤和千輪流移動,尤先手,問尤是否必勝?

【輸入格式】

多組資料,每行兩個整數n,m,當 n=m=0 時資料停止。

【輸出格式】

對於每組資料,如果尤必勝輸出「yuri」 ,否則輸出「chito」 。

【樣例輸入】

5 35 4

6 60 0

【樣例輸出】

chito

yuri

yuri

【資料範圍與規定】

50%的資料,1 ≤n,m≤ 10。

對於100%的資料,1 ≤ n,m≤ 1000。

t1博弈題。

第一圈綠色的點是必贏點,那麼只能到達這些綠色點的藍色的點是必輸點,然後,能夠到達藍色點的是必贏點,如此拓展。

可以看出,橫縱座標都是奇數時就是必輸點,否則就是必贏點。

t2前40%暴力n^2

另外20%所有數不超過1023時用桶來優化(還是暴力)。

100%,01字典樹。

t3線段樹,k<=10,維護區間前10大就可以了,常數可能有點大,過載運算子。

t1#include

#include

#include

#include

#define ll long long

using namespace std;

int n,m;

int main()

return 0;}t2

60分#include

#include

#include

#include

#define ll long long

using namespace std;

const int mod=(1e9)+7;

const int n=5e4+7;

int n,k,a[n],m;

ll ans;

int num[15000],cnt[1500];

int main()

else

else}}

printf("%lld",ans);

return 0;

} t3

#include

#include

#include

#include

#define ll long long

using namespace std;

const int n=100009;

const int k=10;

struct rec

}z[n*4+100];

int n,m,a[n];

void update(int o)

void push_down(int o)

rec query(int o,int l,int r,int ql,int qr)

else return query(o<<1|1,mid+1,r,ql,qr);

}void change(int o,int l,int r,int ql,int qr,int ad)

push_down(o);

int mid=(l+r)>>1;

if(mid>=ql) change(o<<1,l,mid,ql,qr,ad);

if(mid

程式設計開發練習題

急!災區的食物依然短缺!為了挽救災區同胞的生命,心繫災區同胞的你準備自己採購一些糧食支援災區,現在假設你一共有資金n元,而市場有m種大公尺,每種大公尺都是袋裝產品,其 不等,並且只能整袋購買。請問 你用有限的資金最多能採購多少公斤糧食呢?後記 人生是乙個充滿了變數的生命過程,天災 人禍 病痛是我們生...

程式設計練習題

程式student create student studs,int n student 是乙個結構型別,包含姓名 成績和指標域。studs 陣列中儲存了n個 student 記錄。create 函式的功能是編寫根據 studs 陣列建立乙個鍊錶,鍊錶中結點按成績降序排列,函式返回煉表頭指標。inc...

併發程式設計 練習題

1 簡述計算機作業系統中的 中斷 的作用?中斷機制包括硬體的中斷機制和作業系統的中斷處理服務程式。中斷機制由一些特定的暫存器和控制線路組成。處理器和外圍裝置等識別到的事件儲存在特定的暫存器中,處理器每執行完一條指令均由中斷機制判斷是否有事件發生。若無事件發生,cpu繼續執行,若有事件發生,則中斷機制...