nyoj1236 挑戰密室

2021-08-19 21:20:04 字數 1704 閱讀 8940

r組織的**dr. kong 為了尋找丟失的超體元素,不幸陷入wto密室。dr. kong必須盡快找到解鎖密碼逃離,否則幾分鐘之後,wto密室即將**。

dr. kong發現密室的牆上寫了許多化學方程式中。化學方程式,也稱為化學反應方程式,是用化學式表示物質化學反應的式子。化學方程式反映的是客觀事實。因此書寫化學方程式要遵守兩個原則:一是必須以客觀事實為基礎;二是要遵守質量守恆定律。

化學方程式不僅表明了反應物、生成物和反應條件。同時,化學計量數代表了各反應物、生成物物質的量關係,通過相對分子質量或相對原子質量還可以表示各物質之間的質量關係,即各物質之間的質量比。對於氣體反應物、生成物,還可以直接通過化學計量數得出體積比。例如:2naoh+h2so4=na2so4+2h2o

經過多次試探、推理,dr. kong發現密碼是4位數字,就隱藏在化學方程式等號後的第乙個分子中,其分子量就可能是密碼(若分子量不足4位,前面加0)。

好在dr. kong還記得牆上各化學方程式用到的化學元素的原子量如下:

ncoclshal

cazn

na

你能幫dr. kong盡快找到密碼嗎?

第一行: k,表示有k個化學方程式;接下來有k行,每行為乙個化學方程式

對於每個化學方程式輸出一行:即密碼。

複製

32c+o2=2co2naoh+h2so4=na2so4+2h2oca2co3+h2o=ca2(oh)2+co2

005601420116

2≤k≤8 ,化學方程式的長度不超過50, 所有原子,分子的數量不超過9.小括號最多一層.

第八屆河南省程式設計大賽

分析:字串問題考慮的真的挺多的啊

有許多小細節,是我做這題收穫的:

(1)map插入時在主函式裡插

(2)char型陣列賦值後再末尾加上:'\0'結束符

(3)getline讀一行之前要把這一行之前的回車符用getchar()讀掉

(4)處理麻煩的細節多的字串題,要先規劃好怎麼判斷,不然會wa好多次啊,嚶嚶嚶

思路:把等號後的乙個元素扣下來到char str陣列中,然後遍歷陣列,分成幾種情況:

(1)若第乙個是陣列,flag標記一下往下走

(2)只有乙個字元

(3)當前字元代表的是字母,下乙個也是

a.這兩個字母組成乙個化學元素

b.組不成乙個化學元素

(4)當前字元代表的是字母,下乙個代表的是數字

(5)當前元素是'(',我做題的時候,若符合(5),處理後直接略過')'和括號後的數字了

**如下:

(**真的又醜又長)

#include#include#include#include#include#include#includeusing namespace std;

mapbiao;

int main()

i=tmp+2;}}

string ee;

int nn,ans=0;

map::iterator iter;

while(!num.empty()&&!elem.empty())

if(flag)ans*=str[0]-'0';

int p=10,y=1;

while(ans/p)

while(y<4)

printf("%d\n",ans);

}}

NYOJ 1236 挑戰密室

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 r組織的 dr.kong 為了尋找丟失的超體元素,不幸陷入wto密室。dr.kong必須盡快找到解鎖密碼逃離,否則幾分鐘之後,wto密室即將 dr.kong發現密室的牆上寫了許多化學方程式中。化學方程式,也稱為化學反應方程式,是...

南陽理工acm 1236 挑戰密室

題意 求化學反應方程式的第一種生成物的相對分子質量,難點在於細節處理,還好括號是一層,數字是1 9,降低了難度。解法 map 模擬。includeusing namespace std int main mappq pq n 14 pq c 12 pq o 16 pq cl 35 pq s 32 p...

NYOJ1236 第八屆acm省賽 A挑戰密室

時間限制 1000 ms 記憶體限制 65535 kb 難度 4描述 r組織的 dr.kong 為了尋找丟失的超體元素,不幸陷入wto密室。dr.kong必須盡快找到解鎖密碼逃離,否則幾分鐘之後,wto密室即將 dr.kong發現密室的牆上寫了許多化學方程式中。化學方程式,也稱為化學反應方程式,是用...