CSP第二次模擬 A

2021-10-04 21:48:55 字數 1267 閱讀 7897

相較於咕咕東,瑞神是個起早貪黑的好孩子,今天早上瑞神起得很早,刷b站時看到了乙個序列 ,他對 這個序列產生了濃厚的興趣,他好奇是否存在乙個數 ,使得一些數加上 ,一些數減去 ,一些數不 變,使得整個序列中所有的數相等,其中對於序列中的每個位置上的數字,至多只能執行一次加運算或 減運算或是對該位置不進行任何操作。由於瑞神只會刷b站,所以他把這個問題交給了你!

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

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

2

51 2 3 4 5

51 2 3 4 5

no

no

資料點(上限)tn

a_i1,2

1010

103,4,5

101e3

1e96,7,8,9,10

101e4

1e15

存在乙個數 ,使得一些數加上 ,一些數減去 ,一些數不 變,使得整個序列中所有的數相等。則這個序列中至多存在3個不同的數,且滿足最大的數-中位數=中位數-最小的數。

因此,對於輸入的資料,統計他有多少個不同的數,存放在數列b中,並排序。

如果b中多於三個數,則不存在這樣的k。

如果b中有1或2個數,則一定存在k。

如果b中有三個數且滿足b[1]-b[0] = b[2]-b[1],則存在這樣的k;否則不存在。

注意

當時有兩個測試點沒過的原因是,沒有注意資料型別是long long int。

#include

#include

using

namespace std;

long

long

int a[

10500

],b[

10500];

int n;

intmain()

sort

(a, a+n)

;int index =0;

b[index]

= a[0]

;for

(int i=

0; iif(index >2)

printf

("no\n");

else}}

return0;

}

第二次csp模擬1,2題

解題思路 1 思路 這個題目總體來說難度不是很高,但是其對於思維的連貫性與嚴謹性要求比較高,看到這個題目,我們應當能夠反應過來先對資料排序的重要性,這個題目中多少有些我們之前做過的平衡字串題目的味道,但是這個比較簡單一些,需要控制的東西比較少,我們在中學時期學過數列,所以解決這個問題應當很快產生思路...

程式設計第二次CSP模測

to sum up 模測只拿了130,超級遺憾,第一題因為少想了一種情況爆0了。感覺獨自思考問題的能力以及做題經驗有所欠缺。列一下模測題目。對於乙個序列,判斷是否存在乙個數 使得一些數加上 一些數減去 一些數不變,使得整個序列中所有的數相等,其中對於序列中的每個位置上的數字,至多只能執行一次加運算或...

C 第二次試驗 ATM模擬

一 問題及 檔名稱 atm模擬 作 者 袁依夢 完成日期 2016 年 3 月 24 日 版 本 號 v1.0 對任務及求解方法的描述部分 輸入描述 輸入密碼 輸入需求服務 問題描述 程式輸出 銀行服務 問題分析 演算法設計 includevoid main int password,a couti...