ccf 再買菜 搜尋 dfs

2022-05-03 14:30:26 字數 1630 閱讀 8565

//遞推關係式:(b[n-1]+b[n]+b[n+1])/3=a[n]

//所以b[n+1]=3*a[n]-b[n-1]-b[n],或b[n+1]=3*a[n]-b[n-1]-b[n]+1,或b[n+1]=3*a[n]-b[n-1]-b[n]+2

//有三種結果是因為3的餘數可以是0,1,2

//這裡要考慮特殊情況,就是第一天和最後一天是除以2,所以寫兩種情況就可以了

#include //因為資料比較小,所以可以直接搜尋,列舉每一種可能性

#include #include #include #define inf 0x3f3f3f3f

using namespace std;

const int maxn = 500;

int t,a[maxn],b[maxn];

bool f[maxn][maxn][maxn];

void dfs(int n, int x, int y)//表示第n天,第n-1天的菜價和第n天的菜價

}} return;

} for (int i = 0; i < 3; i++) }

int main()

return 0;

}

試題編號:

201809-4

試題名稱:

再賣菜時間限制:

1.0s

記憶體限制:

256.0mb

問題描述:

問題描述

在一條街上有n個賣菜的商店,按1至n的順序排成一排,這些商店都賣一種蔬菜。

第一天,每個商店都自己定了乙個正整數的**。店主們希望自己的菜價和其他商店的一致,第二天,每一家商店都會根據他自己和相鄰商店的**調整自己的**。具體的,每家商店都會將第二天的菜價設定為自己和相鄰商店第一天菜價的平均值(用去尾法取整)。

注意,編號為1的商店只有乙個相鄰的商店2,編號為n的商店只有乙個相鄰的商店n-1,其他編號為i的商店有兩個相鄰的商店i-1和i+1。

給定第二天各個商店的菜價,可能存在不同的符合要求的第一天的菜價,請找到符合要求的第一天菜價中字典序最小的一種。

字典序大小的定義:對於兩個不同的**序列(a1

, a2

, ..., an

)和(b1

, b2

, b3

, ..., bn

),若存在i (i>=1), 使得ai

i,且對於所有jj

=bj,則認為第乙個序列的字典序小於第二個序列。

輸入格式

輸入的第一行包含乙個整數n,表示商店的數量。

第二行包含n個正整數,依次表示每個商店第二天的菜價。

輸出格式

輸出一行,包含n個正整數,依次表示每個商店第一天的菜價。

樣例輸入

82 2 1 3 4 9 10 13

樣例輸出

2 2 2 1 6 5 16 10

資料規模和約定

對於30%的評測用例,2<=n<=5,第二天每個商店的菜價為不超過10的正整數;

對於60%的評測用例,2<=n<=20,第二天每個商店的菜價為不超過100的正整數;

對於所有評測用例,2<=n<=300,第二天每個商店的菜價為不超過100的正整數。

請注意,以上都是給的第二天菜價的範圍,第一天菜價可能會超過此範圍。

CCF買菜模擬題

問題描述 小h和小w來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裡買一些菜然後去旁邊的乙個廣場把菜裝上車,兩人都要買n種菜,所以也都要裝n次車。具體的,對於小h來說有n個不相交的時間段 a1,b1 a2,b2 an,bn 在裝車,對於小w來說有n個不相交的時間段 c1,d1 c2,d...

CCF 201809 2 買菜(簡單)

小h和小w來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裡買一些菜然後去旁邊的乙個廣場把菜裝上車,兩人都要買n種菜,所以也都要裝n次車。具體的,對於小h來說有n個不相交的時間段 a1,b1 a2,b2 an,bn 在裝車,對於小w來說有n個不相交的時間段 c1,d1 c2,d2 cn,...

CCF 201809 2 買菜 滿分

試題編號 201809 2 試題名稱 買菜時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 小h和小w來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裡買一些菜然後去旁邊的乙個廣場把菜裝上車,兩人都要買n種菜,所以也都要裝n次車。具體的,對於小h來說有n個不相交的時間段...