C2第九次解題報告

看過題解後如果覺得還算有用,請幫忙加點我所在團隊博客訪問量

http://www.cnblogs.com/newbe/

http://www.cnblogs.com/newbe/p/4069834.html

http://www.cnblogs.com/newbe/p/4072005.html

求贊求祝福啊!!!

http://www.cnblogs.com/newbe/p/4058097.html

軟工老師太狠心,還請可憐一下同課不同命的我們吧~點一下文章末尾的推薦什麼的唄,有個回覆什麼的就更好了!

1、單詞查詢

先把所有句號分開的字符串取出來,再將字符串掐頭去尾(第一個非空字符開始,最後一個非空字符截至),然後排序,

然後把每個單詞暴力查一遍是不是作爲單詞存在字符串裏面,模擬即可

ABC、AbC、ABc、aBC、abc…視爲同一單詞,用strcasecmp完成

遇到空行則將line_cnt++,否則將其置爲0

最後找到line_cnt>=2且一行內只有_END_即可認爲原文結束

2、按列統計

按題目要求模擬即可,注意第一個字符串可能全由數字構成,以及均值必須是四捨五入的值。

使用gets得到每一行,然後用sscanf即可處理所有數字的輸入。

3、呼叫組

數據量十分小,所以用floyd搞一下就好了

floyd可以用來求兩個連通點間的最短路問題。另外一個比較簡單的應用,還可以用來判斷兩點間的連通性。即判斷兩點是否連通。本題就是floyd的這種簡單用法。

注意的地方:輸入文件有多行,會有很多行,因爲可以有重複的呼叫記錄

                     每個呼叫組的成員之間以1個英文逗號加1個空格符,注意別被格式坑了

                     輸出要按ascii碼排序,處理之前先把出現字符串按升序排好在操作,用每個字符串下標作爲n*n圖上的一個點,floyd一遍,輸出所有i->j且     j->i的點集就可以輕鬆解決此題了

P.S.:Tarjan算法也可求解此題。

4、迷宮最短路徑

最簡單的bfs

隊列長度只需80*80,超時的話不是數組長度的問題。

需要一個vis數組來判斷一個點之前是否來過,來過的話不再將此點加入隊列。

5、數據排序

沒什麼好說的..

寫好cmp函數即可

卡了一下午,最後發現整個題面居然有錯!

C2 tmd就是個坑!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章