第二次csp模擬1,2題

2021-10-05 03:51:33 字數 2301 閱讀 5462

解題思路:

(1).思路:這個題目總體來說難度不是很高,但是其對於思維的連貫性與嚴謹性要求比較高,看到這個題目,我們應當能夠反應過來先對資料排序的重要性,這個題目中多少有些我們之前做過的平衡字串題目的味道,但是這個比較簡單一些,需要控制的東西比較少,我們在中學時期學過數列,所以解決這個問題應當很快產生思路,也就是說我們在對資料排完序後,不一樣的資料最多只能有三個,而當不一樣的資料有三個時,還必須要求不一樣的資料構成等差數列,這也是我們判斷是否滿足題意的標準。

(2).**實現:我們利用陣列a儲存原資料,並對其進行排序,利用陣列b進行儲存a中不一樣的資料,利用func變數標記不一樣得資料的個數。則當func>=4時,直接輸出』no『。另外在func<=2或func==3且b[3]-b[2]==b[2]-b[1]時,輸出』yes』;

(3).錯誤原因:我們在程式中func是從1開始增一操作的,b陣列也是利用func獲取值的,所以我們應當判斷b[3]-b[2]==b[2]-b[1]而非b[2]-b[1]==b[1]-b[0];所以講,我們要注意思維上的嚴謹性與完整性,這種錯誤是不應當犯的 。

#include

#include

#include

#include

using

namespace std;

long

long a[

10005];

long

long b[

10005];

int t,n;

int func=0;

intmain()

sort

(a,a+n)

; b[func]

=a[0];

for(

int i=

0;iif(func>=4)

cout<<

"no"

<

else

if(func<=2)

cout<<

"yes"

<

else

if(func==3)

}}在這裡插入**片

解題思路:

(1).思路:這個題目很好的考察了對於尺取思想的應用,對於該思想,之前做過的平衡字串問題給我留下的印象比較深,裡面的處理技巧個人感覺很優秀。對於這道題目來講,其難度要小一些,因為要求滿足題意的最左端的字串,故我們可以直接從最左端開始取26個字元並不斷的向後進行尺取,如果滿足題意則可以進行輸出,在這裡題意還要求輸出字典序較小的那個,這時我們用func2變數從0向25進行遍歷,若該字母出現次數為0,則遇見?時,直接將該字母填充即可。

(2).**:我們利用func陣列訪問各個字母在尺取操作時出現的次數,如果某乙個字母出現次數超過1,則直接向後繼續進行尺取操作,否則,則進行輸出操作。

(3).錯誤原因:首先講一下做題時遇到的麻煩,起初在定義變數時,自己定義了left與right全域性變數,但編譯器一直報錯,原因是變數定義比較模糊,由於之前沒有遇見過這種問題,當時自己就比較迷,結果原因是該變數應當是關鍵字,不能夠在此定義,這個坑也給了我們乙個教訓,在定義變數時,要注意變數名的選取。另外自己**出錯的原因在於我們在尺取移動時,僅僅在判斷是否為?時進行了++操作,其實是都要進行++操作的,這也涉及到思維的嚴謹性方面,另一方面也給我們乙個啟示,我們在對陣列元素下標進行操作時,最好使用+1操作,這樣可以減小犯錯誤的概率。

#include

#include

#include

#include

using

namespace std;

int func[27]

;int left1,right1;

int func2;

char tt;

string s;

bool

judge()

func2=0;

for(

int i=left1; i<=right1; i++

) tt=func2+

'a';

func2++

; cout<

cout<

return

true;}

intmain()

while

(right1<=size-1)

} cout<

<

}在這裡插入**片

CSP第二次模擬 A

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

第二次csp模測 1題 2題

2.hrz學英語 相較於咕咕東,瑞神是個起早貪黑的好孩子,今天早上瑞神起得很早,刷b站時看到了乙個序列 他對 這個序列產生了濃厚的興趣,他好奇是否存在乙個數 使得一些數加上 一些數減去 一些數不 變,使得整個序列中所有的數相等,其中對於序列中的每個位置上的數字,至多只能執行一次加運算或 減運算或是對...

程式設計第二次CSP模測

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