SRM480 DIV1 250分

來源:互聯網
上載者:User

好吧,我承認這題很簡單(不會STL的孩子把這句話無視),看錯題目導致成功掛零。。。無語死了。。。

 

今天的250不是很難,要點有:

1。對字串的切割,手寫切割函數比較保險,當然會用STL的字串流的可以直接按照空格切割。

2。尋找關鍵字,嗯,這裡有個好技巧,用紅/黑樹狀結構(set)來維護全部的危險關鍵字即可。

3。判斷條件,只有當危險關鍵字超過定值的時候才是危險網站,否則不是。

4。當一個網站是危險網站的時候,他的全部關鍵字都是危險的,這時候,我們要把全部的關鍵字加入紅/黑樹狀結構中管理。

5。由於4的原因,要掃描N次(類似貝爾曼福德演算法),加入的順序就不是原來的順序了,這裡在最後對其id進行一次排序,

     可以用一個映射map來儲存下標。

 

 

My Code(核心部分):

set<string> st;<br />map<string,int> id;<br />bool use[60];</p><p>bool comp(const string& a,const string& b)<br />{<br />return id[a]<id[b];<br />}</p><p>bool check(const string& key,int num)<br />{<br />int len=key.length();<br />string ret;<br />vector<string> v;<br />int cnt=0,size=0;</p><p>for(int i=0;i<len;i++)<br />{<br />ret="";<br />while(i<len&&key[i]!=' ')<br />{<br />ret+=key[i];<br />i++;<br />}<br />v.push_back(ret);<br />}<br />size=v.size();</p><p>for(int i=0;i<size;i++)<br />if(st.find(v[i])!=st.end())<br />{<br />cnt++;<br />}</p><p>if(cnt>=num)<br />{<br />for(int i=0;i<size;i++)<br />st.insert(v[i]);<br />return true;<br />}<br />else<br />return false;<br />}</p><p>class InternetSecurity<br />{<br />public:<br />vector <string> determineWebsite(vector <string> add, vector <string> key, vector <string> dang, int num)<br />{<br />int n=add.size();<br />vector<string> v;</p><p>memset(use,0,sizeof(use));<br />id.clear();<br />st.clear();<br />for(int i=0;i<n;i++)<br />id[add[i]]=i;<br />int size=dang.size();<br />for(int i=0;i<size;i++)<br />st.insert(dang[i]);</p><p>for(int k=0;k<n;k++)<br />for(int i=0;i<n;i++)<br />if(!use[i]&&check(key[i],num))<br />{<br />use[i]=true;<br />v.push_back(add[i]);<br />}</p><p>sort(v.begin(),v.end(),comp);<br />return v;<br />}<br />};

 

總結:看題仔細,不要因為題目難懂就囫圇吞棗,最近開始討厭看題,這是不好的現象。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.