SCAU 1142 巡邏的士兵

2021-10-05 01:22:11 字數 761 閱讀 8796

時間限制:1000ms **長度限制:10kb

提交次數:217 通過次數:58

題型: 程式設計題 語言: g++;gcc

description

有n個士兵站成一佇列, 現在需要選擇幾個士兵派去偵察。

為了選擇合適的士兵, 多次進行如下操作: 如果佇列超過三個士兵, 那麼去除掉所有站立位置為奇數的士兵,

或者是去除掉所有站立位置為偶數的士兵。直到不超過三個戰士,他們將被送去偵察。現要求統計按這樣的方法,

總共可能有多少種不同的正好三個士兵去偵察的士兵組合方案。

注: 按上法得到少於三士兵的情況不統計。

1 <= n <= 2的32次方-1

輸入格式

有多行(可能有上百行,盡量優化**),每行乙個數字n,最後一行是0

輸出格式

對每一行的數字n,輸出針對n的方案數

直到沒有數字

輸入樣例104

0輸出樣例20

這個問題可以轉換成規模更小的字問題,也就是,去掉奇數或者偶數字置的士兵後,還有多少種方法,所以這道題用遞迴就能完成。

#include

#include

std::map<

int,

int> c;

using

namespace std;

inta

(int i)

else}}

intmain()

return0;

}

1142 巡邏的士兵

該題有題解 時間限制 1000ms 記憶體限制 65536k 提交次數 217 通過次數 58 題型 程式設計題 語言 g gcc 有n個士兵站成一佇列,現在需要選擇幾個士兵派去偵察。為了選擇合適的士兵,多次進行如下操作 如果佇列超過三個士兵,那麼去除掉所有站立位置為奇數的士兵,或者是去除掉所有站立...

SCAU巡邏的士兵

有n個士兵站成一佇列,現在需要選擇幾個士兵派去偵察。為了選擇合適的士兵,多次進行如下操作 如果佇列超過三個士兵,那麼去除掉所有站立位置為奇數的士兵,或者是去除掉所有站立位置為偶數的士兵。直到不超過三個戰士,他們將被送去偵察。現要求統計按這樣的方法,總共可能有多少種不同的正好三個士兵去偵察的士兵組合方...

scauoj 1142 巡邏的士兵

有n個士兵站成一佇列,現在需要選擇幾個士兵派去偵察。為了選擇合適的士兵,多次進行如下操作 如果佇列超過三個士兵,那麼去除掉所有站立位置為奇數的士兵,或者是去除掉所有站立位置為偶數的士兵。直到不超過三個戰士,他們將被送去偵察。現要求統計按這樣的方法,總共可能有多少種不同的正好三個士兵去偵察的士兵組合方...