第三週正式開始,上週的題自己沒考慮到其他的做法,感謝學長提醒,矩陣快速冪自己能做了,但還不是很熟練,就是fibnacci again和後面的number sequence,矩陣的快速冪做法會更新的,慢慢來。(想把具體的推法徹底學會之後開始更新,那時候講解也會寫的盡量詳細)
閒言少敘,直接進入正題:
problem description
「今年暑假不ac?」
「是的。」
「那你幹什麼呢?」
「看世界盃呀,笨蛋!」
「@#$%^&*%…」
確實如此,世界盃來了,球迷的節日也來了,估計很多acmer也會拋開電腦,奔向電視了。
作為球迷,一定想看盡量多的完整的比賽,當然,作為新時代的好青年,你一定還會看一些其它的節目,比如新聞聯播(永遠不要忘記關心國家大事)、非常6+7、超級女生,以及王小丫的《開心辭典》等等,假設你已經知道了所有你喜歡看的電視節目的轉播時間表,你會合理安排嗎?(目標是能看盡量多的完整節目)
input
輸入資料報含多個測試例項,每個測試例項的第一行只有乙個整數n(n<=100),表示你喜歡看的節目的總數,然後是n行資料,每行包括兩個資料ti_s,ti_e (1<=i<=n),分別表示第i個節目的開始和結束時間,為了簡化問題,每個時間都用乙個正整數表示。n=0表示輸入結束,不做處理。
output
對於每個測試例項,輸出能完整看到的電視節目的個數,每個測試例項的輸出佔一行。
sample input
12
1 33 4
0 73 8
15 19
15 20
10 15
8 18
6 12
5 10
4 14
2 90
sample output5
author
lcysource acm
程式設計期末考試(2006/06/07)
因為是合理安排類題目(目標是能看盡量多的完整節目),所以第一反應想到的是貪心演算法:
(為沒學過該演算法的摯友所寫)
貪心演算法是一種區域性問題求最優解,之後總體求最優解的方式。每一步我們需要在一定的標準下做出乙個最優決策。這裡做出決策的標準稱為貪心準則。
這裡有兩個重點,一是在對問題求解時,總是在當前看來最好選擇的時候進行選擇,二是這個選項並不是總體最優解,只是區域性最優解!
也就是說得到的結果可能不是最佳答案!
而且,貪心演算法必須在每一步(重點)必須滿足以下條件:1、滿足問題約束。2、區域性最優,即該選項是當前步驟的所有可行性中的最佳選擇。3、一旦選擇了,就不可更改,後續的選項,也是在當前最優解的步驟下進行的。
此時我們回到題目,由於題目的意思是說第乙個資料是節目的個數,後面每一組資料是寫出每個節目開始到結束的時間,這裡我們可以用結束的時間對各個節目進行排序,然後,從第乙個節目開始,用每乙個節目的結束時間比較後面乙個節目的開始時間,如果後面的節目的開始時間大於前乙個節目的結束時間,那麼可以看的節目數加一。
如果實在看不明白,建議結合我接下來的**看。
#include
#include
int main()
for(j=
0;j1;j++
)for
(i=0
;i1-j;i++)}
for(j=
0;j//開始按照我說的方法比較,建議自己在紙上寫寫。
printf
("%d\n"
,count);}
return0;
}
沒用太長時間,但是今天也開始反思自己了,不能一直為了ac而ac,自己的確是會一些東西,可到了現在明顯不夠用了,昨天感謝學長和我說的那些話,我也還記得自己昨天寫矩陣的時候從中午一直寫到晚上八點,我挺笨的,可我還能學下去,只是熱愛而已。
自己也是盡力去把這篇部落格寫的細緻一些,貪心演算法是我最初擅長的東西之一,這道題也是做過的。
我還不能停,我有理由繼續前行。哪怕為此消人憔悴
今年暑假不AC
寒假集訓正式開始啦!希望隊員們享受這段時光。sj gewei sjgewei0 收件箱 0 登出 time limit 1000ms memory limit 65535k 有疑問?點這裡 今年暑假不ac?是的。那你幹什麼呢?看世界盃呀,笨蛋!確實如此,世界盃來了,球迷的節日也來了,估計很多acme...
今年暑假不AC
input 輸入資料報含多個測試例項,每個測試例項的第一行只有乙個整數n n 100 表示你喜歡看的節目的總數,然後是n行資料,每行包括兩個資料ti s,ti e 1 i n 分別表示第i個節目的開始和結束時間,為了簡化問題,每個時間都用乙個正整數表示。n 0表示輸入結束,不做處理。output 對...
今年暑假不AC
problem description 今年暑假不ac?是的。那你幹什麼呢?看世界盃呀,笨蛋!確實如此,世界盃來了,球迷的節日也來了,估計很多acmer也會拋開電腦,奔向電視了。作為球迷,一定想看盡量多的完整的比賽,當然,作為新時代的好青年,你一定還會看一些其它的節目,比如新聞聯播 永遠不要忘記關心...