日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > NYOJ542試制品,<虐心模擬題>

NYOJ542試制品,<虐心模擬題>

來源:程序員人生   發布時間:2015-04-21 08:41:09 閱讀次數:3661次

試 制 品

時間限制:1000 ms  |  內存限制:65535 KB
難度:4
描寫

ZZ大學的Dr.Kong最近發現實驗室的很多試制品都已用完。由于項目經費有限,為了節省,Dr.Kong決定利用實驗室現有的試制品來生成所缺的試制品。為此,Dr.Kong連續幾天通宵達旦整理出1份研究資料并讓研究生Bill去實驗并統計能產生多少種所缺的試制品。

Bill從頭到尾翻完所有的資料,發現資料上寫滿了1大堆的化學方程式,上面除大小寫英文字母、數字、加號、等號外,再也沒有其他的符號了。其中,每一個方程式都是A1+A2+……+Ap=B1+B2+……+Bq的情勢, 表示試制品A1,A2,……和Ap反應,生成了試制品B1,B2,……,Bq。其中AiBj都是1種單質或化合物的化學式(長度不超過10個字符),1≤p,q ≤ 20 。每一個方程式的總長不超過100個字符。有些試制品的化學式可能在現代社會的化學元素周期表里找不到,這是由于化學反應進程中可能又有物理反應致使的結果。

Bill頭疼了,從哪一個實驗開始呢?你能幫助他嗎?

輸入
有多組測試數據。
第1行:N表示Dr.Kong寫的化學方程式個數(1<=N<=400) 
接下來有N行, 每行是1個方程式.
再接下來的1行:M表示已有多少種試制品.(1<=M<=500)
接下來有M行,每行是已有的1種試制品的化學式.
輸出
第1行包括1個數T,表示可以產生多少種所缺的試制品.
在接下來的T行中,按ASCII碼升序輸生產生的試制品的化學式.
樣例輸入
4H2O+Na=NaOH+H2Cl2+H2=HClFe+O2=Fe3O4NaOH+HCl=H2O+NaCl3H2ONa Cl2
樣例輸出
4H2HClNaClNaOH
來源
第5屆河南省程序設計大賽
上傳者

ACM_李如兵



思路:

由于數據很小那末就無窮遍歷方程式,把已有的物資放入map中,分解方程式,讓判斷該方程是不是產生,產生就把生成的物資放入map中,當有1輪沒有新方程產生就表示不會再有產生了


#include<bits/stdc++.h> using namespace std; struct fcs { string sz; bool fs;//方程式,有fs標記產生否 }a[444]; int main() { int n,m,i,j; while(scanf("%d",&n)==1) { for(i=0;i<n;++i) { cin>>a[i].sz; a[i].fs=false; } scanf("%d",&m); map<string,bool> jb;//用map表示已有物資右點Bool表示的是生成物還是反應物 for(i=0;i<m;++i) { string s; cin>>s; jb[s]=false; } bool sad=true;//標記變量當判斷是不是有方程式產生 while(sad) { sad=false; for(i=0;i<n;++i) { if(a[i].fs)//該方程產生過就不看 continue; int len,gfs=0; string wz;//分解方程得出單個物資 for(j=0,len=a[i].sz.size();j<len;++j) { if(a[i].sz[j]=='+'||a[i].sz[j]=='=')//+或等于結束 { if(!jb.count(wz))//表示的是該物資不存在直接退出 break; wz=""; if(a[i].sz[j]=='=')//等號的時候表示的是所有物資都有該方程能產生 { a[i].fs=true;//標記這個方程式為產生過 sad=true;//該輪有物資生成 gfs=1;//標記 break; } continue; } wz+=a[i].sz[j];//連接 //if(a[i].sz[j]!='+'&&a[i].sz[j]!='=') } if(gfs)//把生成物加入 { wz=""; for(++j;j<len;++j)// { if(a[i].sz[j]=='+') { if(jb.count(wz))//生成物資要判重 { wz=""; continue; } jb[wz]=true;//insert wz=""; continue; } wz+=a[i].sz[j]; } if(!jb.count(wz))//最后1個也要判重,第1次交WA了 jb[wz]=true; } } } cout<<(jb.size()-m)<<endl; map<string,bool>::iterator p=jb.begin(); while(p!=jb.end())//輸出 { if(p->second) cout<<p->first<<endl; p++; } } return 0; }

大1的時候這個題寫了兩天,心都碎了,過了1年重新再來1次,感覺還不錯


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久国产精品99久久久久久老狼 | 成人作爱视频 | 国产精品性 | www.欧美色图 | 中文字幕你懂的 | 亚洲精品永久免费 | 色片在线免费观看 | 91精品国产福利一区二区三区 | 精产国品一二三区 | 日韩在线毛片 | 久久精品亚洲一区 | av在线播放免费 | 性天堂 | 国产毛片av| 国产一区二区在线免费观看 | 精品成人在线视频 | 国产精品午夜在线 | 日本精品中文字幕 | 乱视频在线观看 | 成人黄色大片 | 久久久久久免费精品 | 中文字幕在线一区 | 操女人逼网站 | 国产一级黄大片 | 免费的性爱视频 | 欧美日韩一区二区三区视频 | 综合激情婷婷 | 成人av免费在线看 | 国产精品a久久久久 | 亚洲视频一 | 久久久久久亚洲精品 | 亚洲精一区 | 国产精品无码久久久久 | 国产一区视频在线 | v片在线观看 | 国产在线专区 | 国产精品久久久久久久久久东京 | 久久人人爽爽人人爽人人片av | 亚洲精品日韩精品 | 国产精品久久久久久影院8一贰佰 | 国产a网 |