如果你仍然再用二指禪打字,那我建議你重新學(xué)習(xí)打字,這樣你打字會(huì)更快,感覺更舒適和愉快。
有很多網(wǎng)站教授正確的打字。下圖描述了基本原理: 用同一手指按壓顏色相同的鍵。黃色鍵需要用小指按壓,藍(lán)色的用無名指,綠色的用中指,紅色的用食指。
另外,左手按鍵盤的左側(cè)(從左側(cè)的5、T、G、B鍵開始)右手按壓右側(cè)(從右側(cè)的鍵6、Y、H、N開始)。拇指負(fù)責(zé)空格鍵。
圖片描述的鍵盤是美式鍵盤。
現(xiàn)在,給出一段長(zhǎng)度為?len(1≤len≤50)?的字符串,請(qǐng)你計(jì)算如果正確打出這個(gè)字符串,每個(gè)手指敲擊鍵盤的次數(shù)。
輸入格式:輸入為一行,一個(gè)由大寫字母、數(shù)字和特殊符號(hào)組成的字符串(不包括空格,不需要管圖片中未顯示的按鍵)。
輸出格式:輸出8行,表示左手小指、無名指、中指、食指以及右手食指、中指、無名指、小指敲擊鍵盤的次數(shù)。
輸入樣例1:AON=BOO;
輸出樣例1:1
0
0
1
1
0
3
2
輸入樣例2:PRINT'NY'[NASLA]
輸出樣例2:2
1
0
2
4
1
1
5
這道題用一堆if else把所有情況全列出來然后用變量存一下,后面直接輸出就可以
#includeusing namespace std;
int main(){
int click[8]={0};
char ch;
while((ch=getchar())!=EOF){
if(ch=='Z'||ch=='A'||ch=='Q'||ch=='1')click[0]++;
else if(ch=='X'||ch=='S'||ch=='W'||ch=='2')click[1]++;
else if(ch=='E'||ch=='D'||ch=='C'||ch=='3')click[2]++;
else if(ch=='V'||ch=='F'||ch=='R'||ch=='4')click[3]++;
else if(ch=='B'||ch=='G'||ch=='T'||ch=='5')click[3]++;
else if(ch=='N'||ch=='H'||ch=='Y'||ch=='6')click[4]++;
else if(ch=='M'||ch=='J'||ch=='U'||ch=='7')click[4]++;
else if(ch==','||ch=='K'||ch=='I'||ch=='8')click[5]++;
else if(ch=='.'||ch=='L'||ch=='O'||ch=='9')click[6]++;
else if(ch=='/'||ch==';'||ch=='P'||ch=='0')click[7]++;
else if(ch=='['||ch==']'||ch=='\''||ch=='-'||ch=='=')click[7]++;
}
for(int i = 0;i< 8;i++){
cout<< click[i]<< endl;
}
return 0;
}
T2.分香腸有?N?根完全相同的香腸, 現(xiàn)在要平均分給?M?個(gè)客人。 問最少需要切幾刀才能將其平均分給客人(不能多個(gè)香腸一起切)。
輸入格式:兩個(gè)整數(shù)?N(1≤N≤105)?和?M(1≤M≤105)
輸出格式:一個(gè)整數(shù),表示要切的刀數(shù)
輸入樣例:在這里給出一組輸入。例如:
2 6
輸出樣例:在這里給出相應(yīng)的輸出。例如:
4
n個(gè)香腸給m個(gè)客人吃,我們先讓n取模于m,多出來的那些我們可以不切割直接平分,只考慮多出來的那一部分,然后n和m求一個(gè)大公因數(shù),接著讓他們都除以大公因數(shù),易得m-1就是這n個(gè)香腸給m個(gè)客人吃的最小切割數(shù),然后讓這個(gè)數(shù)乘以大公因數(shù)就得到答案了,不過注意m正好是n的因數(shù)的情況,以防出現(xiàn)除數(shù)為零的情況,加個(gè)特判就可以,AC代碼附上
#include#includeusing namespace std;
int gcd(int n,int m){
while(m%n){
int temp = n;
n = m%n;
m = temp;
}
return n;
}
int main() {
int N, M;
cin >>N >>M;
N = N % M;
if(N==0)cout<< 0<< endl;
else {
int temp = gcd(N,M);
cout<< M-temp<< endl;
}
return 0;
}
T3.會(huì)議安排學(xué)校的禮堂每天都會(huì)有許多活動(dòng),有時(shí)間這些活動(dòng)的計(jì)劃時(shí)間會(huì)發(fā)生沖突,需要選擇出一些活動(dòng)進(jìn)行舉辦。小劉的工作就是安排學(xué)校禮堂的活動(dòng),每個(gè)時(shí)間最多安排一個(gè)活動(dòng)。現(xiàn)在小劉有一些活動(dòng)計(jì)劃的時(shí)間表,他想盡可能的安排更多的活動(dòng),請(qǐng)問他該如何安排。
輸入格式:第一行是一個(gè)整型數(shù)m(m<100)表示共有m組測(cè)試數(shù)據(jù)。
每組測(cè)試數(shù)據(jù)的第一行是一個(gè)整數(shù)n(1
對(duì)于每一組輸入,輸出最多能夠安排的活動(dòng)數(shù)量。
每組的輸出占一行
在這里給出一組輸入。例如:
2
2
1 10
10 11
3
1 10
9 11
11 20
輸出樣例:在這里給出相應(yīng)的輸出。例如:
2
2
會(huì)議安排的話直接用貪心,先把這些會(huì)議以結(jié)束時(shí)間排好,然后一個(gè)一個(gè)遍歷過去,只要能安排就安排,用一個(gè)變量來存一下結(jié)束時(shí)間,只要下一個(gè)會(huì)議的開始時(shí)間晚于這個(gè)結(jié)束時(shí)間就可以安排上,然后更新一下這個(gè)結(jié)束時(shí)間,順便cnt++,遍歷完之后輸出答案即可
#include#include
using namespace std;
struct huiyi{
int kaishi;
int jieshu;
};
bool cmp(huiyi &a,huiyi &b){
return a.jieshu>n;
for(int i = 0;i< n;i++){
int m;
cin >>m;
for(int j = 0;j< m;j++){
cin >>hy[j].kaishi >>hy[j].jieshu;
}
sort(hy,hy+m,cmp);
int tim = 0;
int cnt = 0;
for(int j = 0;j< m;j++){
if(hy[j].kaishi>=tim)tim = hy[j].jieshu,cnt++;
}
cout<< cnt<< endl;
}
}
T4.神秘密碼傳說二戰(zhàn)時(shí)X國(guó)收到了上帝的一串密碼,只有解開密碼,才能阻止戰(zhàn)爭(zhēng)的繼續(xù)進(jìn)行,世界才會(huì)恢復(fù)和平。解開密碼的第一道工序就是解壓縮密碼,上帝對(duì)于連續(xù)的若干個(gè)相同的子串"X"會(huì)壓縮為"[DX]"的形式(D是一個(gè)整數(shù)且1<=D<=99),比如說字符串"CBCBCBCB"就壓縮為"[4CB]"或者"[2[2CB]]",類似于后面這種壓縮之后再壓縮的稱為二重壓縮。如果是"[2[2[2CB]]]"則是三重的。現(xiàn)在我們給你上帝發(fā)送的密碼,請(qǐng)你對(duì)其進(jìn)行解壓縮。
輸入格式:一個(gè)字符串。
輸出格式:一個(gè)字符串。
輸入樣例:在這里給出一組輸入。例如:
AC[3FUN]
輸出樣例:在這里給出相應(yīng)的輸出。例如:
ACFUNFUNFUN
【數(shù)據(jù)范圍】
解壓后的字符串長(zhǎng)度在?20000?以內(nèi),最多只有十重壓縮。保證只包含數(shù)字、大寫字母、[
和?]
。
這個(gè)密碼的結(jié)構(gòu)看起來就很遞歸,我們用一個(gè)遞歸函數(shù)來解這個(gè)字符串,如果讀到的是大寫字母就直接加在答案后面,如果是 [ 就說明有壓縮的部分了,接著調(diào)用這個(gè)函數(shù)繼續(xù)解壓后續(xù)的內(nèi)容,讀到 ] 就代表壓縮結(jié)束,返回這個(gè)字符串給上一級(jí)遞歸,然后把這個(gè)字符串復(fù)制n次加在答案后面,最后返回整個(gè)字符串輸出即可,編寫時(shí)注意壓縮的次數(shù)在上一級(jí)遞歸中輸入并存儲(chǔ),讓下一級(jí)遞歸直接從字母或者 [ 開始,否則很難寫
#include#includeusing namespace std;
string jieya(){
string a,b;
int n;
char c;
while(cin >>c){
if(c == '['){
cin >>n;
b = jieya();
while(n--)a+=b;
}
else if(c==']')return a;
else a+=c;
}
return a;
}
int main(){
string ans = jieya();
cout<< ans<
T5.國(guó)王游戲恰逢 H 國(guó)國(guó)慶,國(guó)王邀請(qǐng) n 位大臣來玩一個(gè)有獎(jiǎng)游戲。
首先,他讓每個(gè)大臣在左、右手上面分別寫下一個(gè)整數(shù),國(guó)王自己也在左、右手上各寫一個(gè)整數(shù)。
然后,讓這 n 位大臣排成一排,國(guó)王站在隊(duì)伍的最前面。
排好隊(duì)后,所有的大臣都會(huì)獲得國(guó)王獎(jiǎng)賞的若干金幣,每位大臣獲得的金幣數(shù)分別是:
排在該大臣前面的所有人的左手上的數(shù)的乘積除以他自己右手上的數(shù),然后向下取整得到的結(jié)果。
國(guó)王不希望某一個(gè)大臣獲得特別多的獎(jiǎng)賞,所以他想請(qǐng)你幫他重新安排一下隊(duì)伍的順序,使得獲得獎(jiǎng)賞最多的大臣,所獲獎(jiǎng)賞盡可能的少。
注意,國(guó)王的位置始終在隊(duì)伍的最前面。
第一行包含一個(gè)整數(shù) n(1≤n≤1000),表示大臣的人數(shù)。
第二行包含兩個(gè)整數(shù) a (0 接下來 n 行,每行包含兩個(gè)整數(shù) a 和 b,之間用一個(gè)空格隔開,分別表示每個(gè)大臣左手和右手上的整數(shù)。
輸出只有一行,包含一個(gè)整數(shù),表示重新排列后的隊(duì)伍中獲獎(jiǎng)賞最多的大臣所獲得的金幣數(shù)。
輸入樣例:在這里給出一組輸入。例如:
3
1 1
2 3
7 4
4 6
輸出樣例:在這里給出相應(yīng)的輸出。例如:
2
首先注意一點(diǎn)計(jì)算金幣的時(shí)候是這位大臣前面所有人左手的乘積除以自己右手的數(shù)得到的,乘積不包括自己的左手,然后就是解題的關(guān)鍵了,對(duì)于其中相鄰兩個(gè)人,易得交換他們兩個(gè)的位置對(duì)其他人的金幣不造成影響,僅考慮他們兩個(gè)人,設(shè)他們左右手的數(shù)字分別為l1,r1,l2,r2;易得交換前這兩個(gè)人的金幣為(設(shè)前面所有人的左手乘積為n)
? 第一個(gè)人? ? ? ? 第二個(gè)人
交換前????????n/r1????????????????n*l1/r2
交換后????????n/r2????????????????n*l2/r1
? 第一個(gè)人? ? ? ? 第二個(gè)人
交換前? ? ? ? r2? ? ? ? ? ? ? ? ? ? l1*r1
交換后? ? ? ? r1? ? ? ? ? ? ? ? ? ? l2*r2
若前一個(gè)人的左右手乘積大于后一個(gè)人 即l1*r1大于l2*r2,易得
max(r1,l2*r2)<= l1*r1<=max(r2,l1*r1)
所以我們根據(jù)左右手的乘積來給大臣排序,得到的大金幣只會(huì)小于等于原來的大金幣,還有一點(diǎn)是這道題的數(shù)據(jù)會(huì)比較大,所以我們需要寫高精度來計(jì)算,AC代碼附上
#include#include
#define MAXLEN 10000
using namespace std;
int temp[MAXLEN] = {0};
struct p {
int zuoshou;
int youshou;
};
bool bijiao(int m[], int n[]) {
for (int i = MAXLEN - 1; i >= 0; i--) {
if (m[i] >n[i])
return 1;
}
return 0;
}
void cheng(int m[], int n) {
for (int i = 0; i< MAXLEN; i++) {
m[i] *= n;
}
for (int i = 0; i< MAXLEN; i++) {
m[i + 1] += m[i] / 10;
m[i] %= 10;
}
}
void fuzhi(int m[], int n[]) {
for (int i = 0; i< MAXLEN; i++) {
m[i] = n[i];
}
}
ostream &operator<<(ostream &cout, int m[]) {
int top = MAXLEN - 1;
while (!m[top])
top--;
for (; top >= 0; top--) {
cout<< m[top];
}
return cout;
}
void chu(int m[], int n) {
fuzhi(temp, m);
for (int i = MAXLEN - 1; i >0; i--) {
temp[i - 1] += temp[i] % n * 10;
temp[i] /= n;
}
temp[0] /= n;
}
bool cmp(p &a, p &b) {
return a.zuoshou * a.youshou< b.zuoshou * b.youshou;
}
int main() {
int n;
cin >>n;
p ren[1005];
for (int i = 0; i<= n; i++) {
cin >>ren[i].zuoshou >>ren[i].youshou;
}
sort(ren + 1, ren + 1 + n, cmp);
int m[MAXLEN] = {1};
cheng(m, ren[0].zuoshou);
int max[MAXLEN] = {0};
for (int i = 1; i<= n; i++) {
chu(m, ren[i].youshou);
// for(int j = 0;j< MAXLEN;j++){
// temp[j] = m[j];
// }
// for(int j = MAXLEN-1;j>0;j--){
// temp[j-1] = temp[j]%ren[i].youshou*10;
// }
if (bijiao(temp, max)) {
fuzhi(max, temp);
}
cheng(m, ren[i].zuoshou);
}
cout<< max;
return 0;
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
分享標(biāo)題:NEUQ-ACM預(yù)備隊(duì)第三次雙周賽題解-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://www.chinadenli.net/article16/gscdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站內(nèi)鏈、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容