to sum up
模測只拿了130,超級遺憾,第一題因為少想了一種情況爆0了。感覺獨自思考問題的能力以及做題經驗有所欠缺。列一下模測題目。
對於乙個序列,判斷是否存在乙個數 ,使得一些數加上 ,一些數減去 ,一些數不變,使得整個序列中所有的數相等,其中對於序列中的每個位置上的數字,至多只能執行一次加運算或減運算或是對該位置不進行任何操作。
輸入第一行是乙個正整數 表示資料組數。 接下來對於每組資料,輸入的第乙個正整數 表示序列 的長度,隨後一行有 個整數,表示序列 。
輸出共包含 行,每組資料輸出一行。對於每組資料,如果存在這樣的k,輸出"yes",否則輸出「no」。(輸出不包含引號)2
51 2 3 4 5
51 2 3 4 5
需要注意的就是資料範圍:no
no
需要開long long
好不容易躲過了資料範圍的坑,卻沒考慮到序列的值可以都一樣。#include
#include
#include
#include
#include
#include
using
namespace std;
const
int max=
1e5;
int t,n;
long
long a[max]
;long
long t[max]
;int num;
void
whe(
long
long u)
t[num]
=u; num++;}
intmain()
if(num<3)
cout<<
"yes"
;else
if(num==3)
else
cout<<
"no";if
(i!=t-1)
cout<
}return0;
}
思路很簡單,主要是計數,如果序列只有兩個值或者都一樣,一定可以。如果有三種值,需要計算這三個值是否形成等差數列。大於三個值則一定不可以。
現在給定乙個字串,字串中包括26個大寫字母和特殊字元』?』,特殊字元』?'可以代表任何乙個大寫字母。現在tt問你是否存在乙個位置連續的且由26個大寫字
母組成的子串,在這個子串中每個字母出現且僅出現一次,如果存在,請輸出從左側算起的第乙個出現的符合要求的子串,並且要求,如果有多組解同時符合位置最靠左,則輸出字典序最小的那個解!如果不存在,輸出-1!
說明:字典序 先按照第乙個字母,以 a、b、c……z 的順序排列;如果第乙個字母一樣,那麼比較第二個、第三個乃至後面的字母。如果比到最後兩個單詞不一樣長(比如,sigh 和 sight),那麼把短者排在前。
輸入只有一行,乙個符合題目描述的字串。輸
abc??fghijk???opqr?tuvwxy?
輸出只有一行,如果存在這樣的子串,請輸出,否則輸出-1
abcdefghijklmnopqrstuvwxyz
主要用尺取法,先選定前26個字母,統計每個字母的個數和 ?的個數。需要觀察兩個值,乙個是個數為0的字母的數量,另乙個是 ? 的個數。如果兩個值相等,則滿足條件。如果不滿足,兩個邊界l和r同時有益,更新數量值。當滿足條件時,從26個字母陣列中,將陣列值為0的字母按序輸出。
自然增長序列1 12 123 1234 12345… 需要查詢該序列第n項的值並輸出。#include
#include
#include
using
namespace std;
int l,r;
string list;
int num1,num2;
int a[26]
;void
init()
for(
int i=
0;i<
26l;i++)if
(a[i]==0
)}void
move()
l++,r++;if
(list[r]
=='?'
) num2++
;else
}int
main()
//輸出
int tar=0;
if(r==n-
1&& num1!=num2)
else
}else
cout<
}return0;
}
輸入由多行組成。
第一行乙個整數q表示有q組詢問(q<500)
接下來第i+1行表示第i個輸入 ,表示詢問第ki項數字。(k<1e18)
輸出包含q行。第i行輸出對詢問ki的輸出結果。513
2038
56
整個過程分為三步,第一步是將原自然增長序串拆分,從1到第一次出現k定為第k個子串。然後用二分法確定輸入的數w在第幾個子串中,(利用等差數列求前n項和的方法)。最後確定w在子串中具體屬於哪乙個數字的哪一位。125
20
#include
#include
using
namespace std;
const
long
long n =
1e9;
long
long l,r,mid,ans;
//二分法確定子串行
long
long
getlist
(long
long x)
n=x-pwr/10+
1;nsum+
=(sum+d)
*n+n*
(n-1)/
2*d;
return nsum;
}long
long
speci
(long
long x)
x-=getlist
(ans)
;return x;
}//二分法確定n在子串行中的位置
long
long
findnthdigit
(long
long p)
else}if
(y==0)
return sum%10;
else
return sum%10;
}}long
long n,k;
intmain()
return0;
}
第二次csp模測 1題 2題
2.hrz學英語 相較於咕咕東,瑞神是個起早貪黑的好孩子,今天早上瑞神起得很早,刷b站時看到了乙個序列 他對 這個序列產生了濃厚的興趣,他好奇是否存在乙個數 使得一些數加上 一些數減去 一些數不 變,使得整個序列中所有的數相等,其中對於序列中的每個位置上的數字,至多只能執行一次加運算或 減運算或是對...
CSP第二次模擬 A
相較於咕咕東,瑞神是個起早貪黑的好孩子,今天早上瑞神起得很早,刷b站時看到了乙個序列 他對 這個序列產生了濃厚的興趣,他好奇是否存在乙個數 使得一些數加上 一些數減去 一些數不 變,使得整個序列中所有的數相等,其中對於序列中的每個位置上的數字,至多只能執行一次加運算或 減運算或是對該位置不進行任何操...
第二次 衝刺 小測
專案組 完成內容 遊戲策劃 完成了部門基礎分值的設計,以及部分的課堂遊戲策劃,除錯了一些不匹配的bug 遊戲美工 前端組 在android studio上完成一兩個介面的基礎,並搭建了真機測試的環境 後端繼續學習控制項的使用 專案組完成內容 遊戲策劃 完成課堂遊戲的內容設計 遊戲美工 前端組 繼續完...