7-1 打字
成都創(chuàng)新互聯(lián)公司網(wǎng)絡(luò)公司擁有十余年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗(yàn),千余家客戶的共同信賴。提供網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、網(wǎng)站開發(fā)、網(wǎng)站定制、友情鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)如果你仍然再用二指禪打字,那我建議你重新學(xué)習(xí)打字,這樣你打字會更快,感覺更舒適和愉快。
有很多網(wǎng)站教授正確的打字。下圖描述了基本原理: 用同一手指按壓顏色相同的鍵。黃色鍵需要用小指按壓,藍(lán)色的用無名指,綠色的用中指,紅色的用食指。
另外,左手按鍵盤的左側(cè)(從左側(cè)的5、T、G、B鍵開始)右手按壓右側(cè)(從右側(cè)的鍵6、Y、H、N開始)。拇指負(fù)責(zé)空格鍵。
圖片描述的鍵盤是美式鍵盤。
現(xiàn)在,給出一段長度為?len(1≤len≤50)?的字符串,請你計算如果正確打出這個字符串,每個手指敲擊鍵盤的次數(shù)。
輸入格式:輸入為一行,一個由大寫字母、數(shù)字和特殊符號組成的字符串(不包括空格,不需要管圖片中未顯示的按鍵)。
輸出格式:輸出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
直接枚舉,盡量寫全枚舉條件,不然有可能會誤判空格
#includeusing namespace std;
int a[9];
void count(char ch)
{
if(ch=='1'||ch=='Q'||ch=='A'||ch=='Z')a[0]++;
if(ch=='2'||ch=='W'||ch=='S'||ch=='X')a[1]++;
if(ch=='3'||ch=='E'||ch=='D'||ch=='C')a[2]++;
if(ch=='4'||ch=='5'||ch=='R'||ch=='F'||ch=='V'||ch=='T'||ch=='G'||ch=='B')a[3]++;
if(ch=='6'||ch=='7'||ch=='Y'||ch=='U'||ch=='H'||ch=='J'||ch=='N'||ch=='M')a[4]++;
if(ch=='8'||ch=='I'||ch=='K'||ch==',')a[5]++;
if(ch=='9'||ch=='O'||ch=='L'||ch=='.')a[6]++;
if(ch=='0'||ch=='P'||ch==';'||ch=='/'||ch==''||ch=='['||ch==']'||ch=='\''||ch=='=')
a[7]++;
}
int main()
{
string s;
cin>>s;
for(int i=0;i7-2 分香腸
有?N?根完全相同的香腸, 現(xiàn)在要平均分給?M?個客人。 問最少需要切幾刀才能將其平均分給客人(不能多個香腸一起切)。
輸入格式:兩個整數(shù)?N(1≤N≤105)?和?M(1≤M≤105)
輸出格式:一個整數(shù),表示要切的刀數(shù)
輸入樣例:在這里給出一組輸入。例如:
2 6
輸出樣例:在這里給出相應(yīng)的輸出。例如:
4
可以看出,以下切割策略是最佳的。
我們將香腸排列成一條直線,一條接著一條(從而獲得由N個較短線段組成的線段)。將這條線切割成M個相等的線段可以得到所需的解。雖然我們在概念上做的是M-1切,但其中一些不是真正的切,而是落在香腸之間(較短的線段)。
例如,對于兩條香腸和四個品嘗者,第一次切是真實(shí)的,將第一條香腸分成兩半,第二次切不是真實(shí)的,因?yàn)樗鼘?shí)際上在兩條香腸之間,第三次切是真的,將第二條香腸分成一半。
因此,我們可以簡單地使用for循環(huán)來檢查,對于對于每一次切割,它是真切割還是原本中間就是分開的。
另外,有一個明確的公式:解=M-gcd(N,M) (gcd即大公約數(shù))
#includeusing namespace std;
int main()
{
int m, n;
cin >>n >>m;
cout<< (m - gcd(m,n));
return 0;
}
7-3 h0145. 會議安排
學(xué)校的禮堂每天都會有許多活動,有時間這些活動的計劃時間會發(fā)生沖突,需要選擇出一些活動進(jìn)行舉辦。小劉的工作就是安排學(xué)校禮堂的活動,每個時間最多安排一個活動?,F(xiàn)在小劉有一些活動計劃的時間表,他想盡可能的安排更多的活動,請問他該如何安排。
輸入格式:第一行是一個整型數(shù)m(m<100)表示共有m組測試數(shù)據(jù)。
每組測試數(shù)據(jù)的第一行是一個整數(shù)n(1 隨后的n行,每行有兩個正整數(shù)Bi,Ei(0<=Bi,Ei<10000),分別表示第i個活動的起始與結(jié)束時間(Bi<=Ei)
輸出格式:對于每一組輸入,輸出最多能夠安排的活動數(shù)量。
每組的輸出占一行
輸入樣例:在這里給出一組輸入。例如:
2
2
1 10
10 11
3
1 10
9 11
11 20
輸出樣例:在這里給出相應(yīng)的輸出。例如:
2
2
利用貪心,將全部活動的起始時間從大到小排序,如果一個活動的開始時間大于當(dāng)前正在進(jìn)行的活動的開始時間并且結(jié)束時間小于當(dāng)前正在進(jìn)行的活動的結(jié)束時間,那么就讓該活動替換當(dāng)前正在進(jìn)行的活動。如果一個活動的開始時間大于當(dāng)前正在進(jìn)行的活動的結(jié)束時間,那么將該活動安排上。
#includeusing namespace std;
pairp[10003];
bool cmp(paira, pairb)
{
return a.first< b.first;
}
int main()
{
int m;
cin >>m;
for (int i = 1; i<= m; i++)
{
int n,nowed,nowst,ans=1; cin >>n;
for (int j = 1; j<= n; j++)
{
int st, ed;
cin >>st >>ed;
p[j].first = st;
p[j].second = ed;
}
sort(p + 1, p + 1 + n, cmp);
nowed = p[1].second,nowst=p[1].first;
for (int j = 2; j<= n; j++)
{
if (p[j].second<=nowed && p[j].first>=nowst)
{
nowed = p[j].second;
nowst = p[j].first;
continue;
}
if (p[j].first >= nowed)
{
nowed = p[j].second;
nowst = p[j].first;
ans++;
}
}
cout<< ans<< endl;
}
return 0;
}
7-4 神秘密碼
傳說二戰(zhàn)時X國收到了上帝的一串密碼,只有解開密碼,才能阻止戰(zhàn)爭的繼續(xù)進(jìn)行,世界才會恢復(fù)和平。解開密碼的第一道工序就是解壓縮密碼,上帝對于連續(xù)的若干個相同的子串"X"會壓縮為"[DX]"的形式(D是一個整數(shù)且1<=D<=99),比如說字符串"CBCBCBCB"就壓縮為"[4CB]"或者"[2[2CB]]",類似于后面這種壓縮之后再壓縮的稱為二重壓縮。如果是"[2[2[2CB]]]"則是三重的?,F(xiàn)在我們給你上帝發(fā)送的密碼,請你對其進(jìn)行解壓縮。
輸入格式:一個字符串。
輸出格式:一個字符串。
輸入樣例:在這里給出一組輸入。例如:
AC[3FUN]
輸出樣例:在這里給出相應(yīng)的輸出。例如:
ACFUNFUNFUN
【數(shù)據(jù)范圍】
解壓后的字符串長度在?20000?以內(nèi),最多只有十重壓縮。保證只包含數(shù)字、大寫字母、[
和?]
。
這里就引用大佬的題解了,有圖寫的非常好。這道題剛看到我還以為是括號匹配問題......
P1928 外星密碼 題解 - mutton 的博客 - 洛谷博客 (luogu.com.cn)
非遞歸題解
題解 P1928 【外星密碼】 - Drifterming 的博客 - 洛谷博客 (luogu.com.cn)
#includeusing namespace std;
string unzip()
{
string str="",temp="";
int num;
char ch;
while(cin>>ch)
{
if(ch=='[')
{
cin>>num;
temp = unzip();
while(num--)
str+=temp;
}
else if(ch==']')
return str;
else str+=ch;
}
}
int main()
{
cout<
P1080 [NOIP2012 提高組] 國王游戲???????
題目描述恰逢 H 國國慶,國王邀請?nn?位大臣來玩一個有獎游戲。首先,他讓每個大臣在左、右手上面分別寫下一個整數(shù),國王自己也在左、右手上各寫一個整數(shù)。然后,讓這?nn?位大臣排成一排,國王站在隊(duì)伍的最前面。排好隊(duì)后,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數(shù)分別是:排在該大臣前面的所有人的左手上的數(shù)的乘積除以他自己右手上的數(shù),然后向下取整得到的結(jié)果。
國王不希望某一個大臣獲得特別多的獎賞,所以他想請你幫他重新安排一下隊(duì)伍的順序,使得獲得獎賞最多的大臣,所獲獎賞盡可能的少。注意,國王的位置始終在隊(duì)伍的最前面。
輸入格式第一行包含一個整數(shù)?nn,表示大臣的人數(shù)。
第二行包含兩個整數(shù)?aa?和?bb,之間用一個空格隔開,分別表示國王左手和右手上的整數(shù)。
接下來?nn?行,每行包含兩個整數(shù)?aa?和?bb,之間用一個空格隔開,分別表示每個大臣左手和右手上的整數(shù)。
輸出格式一個整數(shù),表示重新排列后的隊(duì)伍中獲獎賞最多的大臣所獲得的金幣數(shù)。
輸入輸出樣例輸入 #1復(fù)制
3
1 1
2 3
7 4
4 6
輸出 #1復(fù)制
2
說明/提示【輸入輸出樣例說明】
按?11、22、33?這樣排列隊(duì)伍,獲得獎賞最多的大臣所獲得金幣數(shù)為?22;
按?11、33、22?這樣排列隊(duì)伍,獲得獎賞最多的大臣所獲得金幣數(shù)為?22;
按?22、11、33?這樣排列隊(duì)伍,獲得獎賞最多的大臣所獲得金幣數(shù)為?22;
按22、33、11這樣排列隊(duì)伍,獲得獎賞最多的大臣所獲得金幣數(shù)為?99;
按?33、11、22這樣排列隊(duì)伍,獲得獎賞最多的大臣所獲得金幣數(shù)為?22;
按33、22、11?這樣排列隊(duì)伍,獲得獎賞最多的大臣所獲得金幣數(shù)為?99。
因此,獎賞最多的大臣最少獲得?22?個金幣,答案輸出?22。
【數(shù)據(jù)范圍】
對于?20\%20%?的數(shù)據(jù),有?1≤ n≤ 10,0< a,b< 81≤n≤10,0
對于?40\%40%?的數(shù)據(jù),有1≤ n≤20,0< a,b< 81≤n≤20,0
對于?60\%60%?的數(shù)據(jù),有?1≤ n≤1001≤n≤100;
對于?60\%60%?的數(shù)據(jù),保證答案不超過?10^9109;
對于?100\%100%?的數(shù)據(jù),有?1 ≤ n ≤1,000,0< a,b< 100001≤n≤1,000,0
NOIP 2012 提高組 第一天 第二題
國王游戲——又是一道證明題 - 鳳翔先生的博客 - 洛谷博客 (luogu.com.cn)
【NOIP2012 提高組 day1】國王游戲 題解 - Boring__Zheng 的博客 - 洛谷博客 (luogu.com.cn)?
#includeusing namespace std;
int len=1,answer[40000003];
void change(int x) {
for (int i = 1; i<= len; i++) answer[i] *= x;
for (int i = 1; i<= len + 15; i++) answer[i + 1] += answer[i] / 10, answer[i] %= 10;
for (int i = len + 15; i >= len; i--)if (answer[i] != 0) len = i;
return;
}
void dis(int x) {
int count = 0;
for (int i = len; i >= 1; i--) {
count = count * 10 + answer[i];
if (count< x) { answer[i] = 0; continue; }
answer[i] = count / x; count %= x;
}
for (int i = len; i >= 1; i--) if (answer[i] != 0) { len = i; break; }
return;
}
int main() {
int n,maxn,item,a,b;
cin >>n;
answer[1] = 1;
for (int i = 1; i<= n + 1; i++) {
int x, y; cin >>x >>y;
change(x); item = x * y;
if (item >maxn && i != 1) maxn = item, a = y, b = x;
}
dis(b * a);
if (answer[len] == 0) answer[len] = 1;//最少為1
for (int i = len; i >= 1; i--) cout<< answer[i];
return 0;
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享名稱:預(yù)備隊(duì)第三次雙周賽-創(chuàng)新互聯(lián)
鏈接地址:http://weahome.cn/article/djosds.html