解題思路:
(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了。感覺獨自思考問題的能力以及做題經驗有所欠缺。列一下模測題目。對於乙個序列,判斷是否存在乙個數 使得一些數加上 一些數減去 一些數不變,使得整個序列中所有的數相等,其中對於序列中的每個位置上的數字,至多只能執行一次加運算或...