第一次訓練題解

2022-08-23 04:21:12 字數 2230 閱讀 7216

poj3372 candy distribution

題目:題意:n個學生圍成一圈,老師給1號學生和2號學生每人一顆糖後,然後跳過乙個學生給4號一顆糖,接著跳過兩個學生給7號一顆糖,以此類推

分析:因為n達到10^9,不能用陣列統計每個學生的狀態,更不能使用暴力,會超時。但可以在一定範圍內,寫個小程式找規律(數值過大,須採用long long不然會溢位)

#include #include 

using

namespace

std;

intmain()

cout

<< "

****

"<

for(long

long i = 1; i <= n; i++)

cout

<< i << ":"

<< flag[i] <

}return0;

}

view code

根據執行結果,可以得出只要是2^n個人,都可以分到糖果,因為是二次冪,所以可以使用二進位制判斷2:10,4:100:,8:1000,絕對不能用pow()

#include #include 

using

namespace

std;

intmain()

n = n/2

; }

if(flag) cout << "

yes"

<

else cout << "no"

<}}

view code

hdu1062 text reverse

題意簡單,字串反轉,但要注意存在多個連續空格的情況_ _abc_ _ _de_

#include #include 

#include

using

namespace

std;

intmain()

if(flag1 == 0 && ((str[i]!='

'&&str[i-1]=='

') || str[0]!=''))

if(flag2 && ((i==len-1&&str[len-1]!='

') || (str[i]!='

'&&str[i+1]=='

')))

if(flag3)

tmp[e-s+1] = '\0'

; printf("%s

",tmp);

flag1=0

; flag2=0

; flag3=0

; }

}putchar('\n

');}

return0;

}

view code

hdu1073 online judge

分析:將輸出的串連線成乙個整體,換行用strlen()==0判斷

對連線好的標準串和測試串比較,相等輸出ac

不等,將'\t','\n'和空格去掉在判斷生成的目標串和測試串是否相等,相等輸出pw,否則輸出wa

#include #include 

#include

using

namespace

std;

const

int maxn=5000

;int

main()

while(gets(str) && strcmp(str,"

end")!=0

)

//cout << sstr << " " << tstr << endl;

if(strcmp(sstr,tstr)==0

)

else

tmp1[cnt1] = '\0'

;

for(int i =0; i < len2; i++)

tmp2[cnt2] = '\0'

;

//cout << tmp1 << " " << tmp2 << endl;

if(strcmp(tmp1,tmp2) == 0)//

長度不相等,刪除後內容一樣

else printf("

wrong answer\n");}}

return0;

}

view code

第一次訓練賽 B

fzu 1575 某天,無聊的小斌叫上幾個同學玩遊戲,其中有比較笨的小興,比較傻的小雪,可愛的小霞和自以為是的小楠。他們去找聰明的小明去給他們當裁判。判定誰取得遊戲勝利。而這個遊戲是由小斌想個1到10000000的數字讓大家猜,看誰先猜中。為了防止小斌作弊,小明記錄下了遊戲的整個過程。你的任務是判斷...

第一次訓練賽 E

fzu 2123 s得到乙個數,他想知道這個數每一位上的數字的孔數之和。1,2,3,5,7這幾個數字是沒有孔的,0,4,6,9都有乙個孔,8有兩個孔。input 輸入資料的第一行為乙個數t表示資料組數。接下來t行,每行輸入乙個正整數n 1 n 1000 表示要求數字孔數之和的數。n不會有前導0。ou...

第一次訓練賽 G

fzu 1705 給定含有n個元素的多重集合s,每個元素在s中出現的次數稱為該元素的重數。多重集s中重數最大的元素稱為眾數。例如,s 多重集s的眾數是2,其重數為3。現在給你乙個已經排好序的集合s,讓你求出其眾數和重數。input 輸入只有一行,有乙個整數n 1 n 100 開始,表示集合s中元素個...