程式設計思維(CSP模擬題)A HRZ 的序列

2021-10-07 03:43:19 字數 2215 閱讀 1767

相較於咕咕東,瑞神是個起早貪黑的好孩子,今天早上瑞神起得很早,刷b站時看到了乙個序列a,他對這個序列產生了濃厚的興趣。

他好奇是否存在乙個數k,使得一些數加上k,一些數減去k,一些數不變,使得整個序列中所有的數相等。

其中對於序列中的每個位置上的數字,至多只能執行一次加運算或減運算或是對該位置不進行任何操作。

由於瑞神只會刷b站,所以他把這個問題交給了你!

input

輸入第一行是乙個正整數t表示資料組數。

接下來對於每組資料,輸入的第乙個正整數n表示序列a的長度,隨後一行有n個整數,表示序列a。

output

輸出共包含t行,每組資料輸出一行。對於每組資料,如果存在這樣的k,輸出"yes",否則輸出「no」。(輸出不包含引號)

sample input25

1 2 3 4 5

51 2 3 4 5

sample output

nono

對於輸入的序列,可能出現如下5種情況:

① 序列出現1種數字:顯然存在k。

② 序列出現2種數字:存在k。例如:

輸入:1 1 1 2 2

則k=0.5,前面3個1加上0.5,後面2個2減去0.5,得到 1.5 1.5 1.5 1.5 1.5。

③ 序列出現3種數字n1、n2、n3(n1

< n2

< n3),且n1 + n3 = 2 * n2:存在k。例如:

輸入:1 1 1 2 2 3 3 3 3

則k=1,前面3個1加上1,後面4個3減去1,得到 2 2 2 2 2 2 2 2 2。

④ 序列出現3種數字n1、n2、n3(n1

< n2

< n3),且n1 + n3 != 2 * n2:不存在k。

⑤ 序列出現3種以上數字:不存在k。

#include

#include

#include

using

namespace std;

long

long num[4]

;// num[0]不用

bool use[4]

;// use[0]不用

bool overflow;

int t;

int n;

int cnt;

void

reset()

void

input

(long

long in)

else

overflow =

true

;return;}

void

print()

if(overflow) cout <<

"overflow!"

<< endl;

else cout <<

"not overflow"

<< endl;

}void

printarray()

intmain()

//print();

//printarray();

sort

(num +

1, num + cnt)

;//printarray();

int min =1;

int max = cnt -1;

//cout << max << endl;

bool solve =

false;if

(overflow) solve =

false

;else

if(max <

3) solve =

true

;else

if(max ==

3&& num[1]

+ num[3]

==2* num[2]

) solve =

true

;else solve =

false;if

(solve) cout <<

"yes"

<< endl;

else cout <<

"no"

<< endl;

}return0;

}

程式設計思維(CSP模擬題)B HRZ 學英語

瑞神今年大三了,他在寒假學會了英文的26個字母,所以他很興奮!於是他讓他的朋友tt考考他,tt想到了乙個考瑞神的好問題 給定乙個字串,從裡面尋找 連續的26個大寫字母 並輸出!但是轉念一想,這樣太便宜瑞神了,所以他加大了難度 現在給定乙個字串,字串中包括26個大寫字母和特殊字元 特殊字元 可以代表任...

程式設計思維與實踐 Week4 CSP模擬賽

咕咕東是個貪玩的孩子,有一天,他從上古遺跡中得到了乙個神奇的圓環。這個圓環由字母表組成首尾相接的環,環上有乙個指標,最初指向字母a。咕咕東每次可以順時針或者逆時針旋轉一格。例如,a順時針旋轉到z,逆時針旋轉到b。咕咕東手裡有乙個字串,但是他太笨了,所以他來請求你的幫助,問最少需要轉多少次。對於給定的...

Helping the HR 思維模擬題

這道題我一看,那麼長 結果就是乙個模擬題 這道題如果都把他化成秒就很好算了,因為題目有規定輸入的時間不會發生衝突 所以我直接比較秒的大小就行了 主要是題意的理解 1.如果在白班換崗,那麼就是必須在9 30之前到崗,否則就遲到了 並且在到崗後必須值班至少8個小時 2.如果在晚班換崗,那麼就必須在12 ...