多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

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

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

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

試 制 品

時間限制: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次,感覺還不錯


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 成人资源在线观看 | 亚洲国产国产综合一区首页 | 精品国产欧美一区二区 | 国产成人小视频在线观看 | 成人中文字幕在线高清 | 国产精品亚洲专一区二区三区 | 福利二区视频 | 最近中文字幕更新免费 | www.一区 | 亚洲 欧美 日韩 另类 | 日本国产一区在线观看 | 亚洲日韩aⅴ在线视频 | 日本午夜大片a在线观看 | 亚洲天堂视频在线观看免费 | 亚洲欧美色综合一区二区在线 | 国内亚州视频在线观看 | 自拍偷拍另类 | 国内小情侣一二三区在线视频 | 校园春色网站 | 97久久综合区小说区图片专区 | 女人18毛片a级毛片一区二区 | 日韩一级a毛片欧美区 | 欧美精品专区第1页 | 欧美一级特黄做 | 国产乱人乱精一区二区视频密 | 国产一区二区三区成人久久片 | 亚洲成人在线视频 | 亚洲日本在线观看网址 | 一级特黄aa大片欧美网站 | 欧美操片| 黄色的网站免费观看 | 欧美成人高清在线视频大全 | 毛片免费网址 | 欧美国产综合视频 | 国产jizz中国jizz免费看 | 中文字幕日韩欧美一区二区三区 | 正在播放国产一区 | 欧美孕妇xxxx做受欧美 | 亚洲伊人久久大香线蕉综合图片 | 欧美人与动人物xxxx9296 | 欧美成人影院 在线播放 |