……这个题我居然可以把他\(1A\)……真是让我不知其可\(qwq\)

\(Link\)

\(emmmm\)好像发现了什么固定的套路(?)……

大概就是这种题总会有

1、读入数 方案:快读即可。

2、鬼畜的优先级 方案:只要代码敲不死,就往死里敲代码\(qwq\)——特判

3、“数 + 数据”的运算 方案:跟着感觉走……

\(emmm\)第三条是真的!不是水水!这道题里的关键部分(即小括号的判读以及运算)由于是后缀形式,所以需要多操作一下\(qwq\)但我并没有特别缜密的思考就给搞完了

诶?被你发现了?其实我就是来存个代码的\(qwq\),甚至连题目描述都没有……

#include <map>
#include <cstdio>
#include <cstring>
#include <iostream> int flag = 0 ;
using namespace std ;
const int MAXN = 210 ;
map<string, double> a ;
string s, qwq ; int N, i ;
double ans, res, Last, j ; inline void init(){
a["H"]=1; a["C"]=12; a["N"]=14; a["O"]=16;
a["F"]=19; a["Na"]=23; a["Mg"]=24; a["Al"]=27;
a["Si"]=28; a["P"]=31; a["S"]=32; a["Cl"]=35.5;
a["K"]=39; a["Ca"]=40; a["Mn"]=55; a["Fe"]=56;
a["Cu"]=64; a["Zn"]=65; a["Ag"]=108; a["I"]=127;
a["Ba"]=137; a["Hf"]=178.5; a["Pt"]=195; a["Au"]=197;
a["Hg"]=201;
}
inline int r_int(int x, int &q){
res = 0 ;
while(s[x] <= '9' && s[x] >= '0')
res = res * 10 + s[x] - 48, x ++ ;
q = x ;
return res ;
}
inline double r_char(int x, int &q){
double ret = 0, T ; bool mark = 0 ;
if(x && s[x - 1] == '(') flag ++, mark = 1 ;
while(x <= N && (s[x] > '9' || s[x] < '0') && s[x] != '~' ){
if(s[x] == '(') x += 1, ret += r_char(x, x) ;
if(s[x] == ')') {x ++ ; break ;}
if(s[x + 1] <= 'z' && s[x + 1] >= 'a')
{string now ; now = now + s[x] + s[x + 1]; x ++, ret += a[now], qwq = now ;}
else if(s[x] <= 'Z' && s[x] >= 'A') {string now ; now += s[x] ; qwq = now, ret += a[now] ;}
else if(s[x] == '_'){
x += 2, T = r_int(x, x) ;
if(!flag || mark)ret += a[qwq] * (T - 1) ;
else {
flag -- ;
ret += (T - 1) * Last ;
}
}
x ++ ;
}
q = x ; if(flag) Last = ret ;
return ret ;
}
int main(){
cin >> s ; N = s.size() ;init() ;
for(i = 0; i <= N ; i ++){
if(s[i] == '~') continue ;
j = r_int(i, i) ; if(!j) j = 1.0 ;
ans += r_char(i, i) * j ;
}
cout << ans ;
}

[LuoguP4711]分子质量(小模拟+玛丽题)的更多相关文章

  1. luoguP1186 玛丽卡 x

    P1186 玛丽卡 题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道 ...

  2. 1021 玛丽卡 - Wikioi

    题目描述 Description麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知 ...

  3. P1186 玛丽卡

    题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城 ...

  4. 【10.6校内测试】【小模拟】【hash+线段树维护覆盖序列】

    一开始看到题就果断跳到T2了!!没想到T2才是个大坑,浪费了两个小时QAQ!! 就是一道小模拟,它怎么说就怎么走就好了! 为什么要用这么多感叹号!!因为统计答案要边走边统计!!如果每个数据都扫一遍20 ...

  5. Luogu P1186 玛丽卡 【最短路】By cellur925

    题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城 ...

  6. USACO 玛丽卡(最短路+枚举)

    USACO 玛丽卡 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市 ...

  7. codevs 1021 玛丽卡(spfa)

    题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们 ...

  8. codevs1021 玛丽卡

    题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们 ...

  9. Codevs 1021 (玛丽卡)

    题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们 ...

随机推荐

  1. c# 使用 Newtonsoft.Json 序列化json字符串以及,反序列化对象

    1. 序列化 对象 /** 使用 Newtonsoft.Json 序列化对象 **/ [WebMethod] public String getPersonInfos() { // 初始化数据 Lis ...

  2. Catalan数的通项公式(母函数推导)

    首先 \[h_n=\sum_{i}h_ih_{n-i-1}\] 写出 \(h\) 的母函数 \(H(x)\) 那么 \[H(x)=H^2(x)x+1,H(x)=\frac{1-\sqrt{1-4x}} ...

  3. Nodejs + express post get 参数获取小结

    req.params.xxxxx 从path中的变量 req.query.xxxxx 从get中的?xxxx=中 req.body.xxxxx 从post中的变量 Post下别忘了: app.use( ...

  4. PHP进阶知识总结

    周末梳理了下这段时间看书的一些知识点,进步的过程不仅要实践,还要安排多看书.思考.总结. 只针对知识点进行了罗列和简单说明,很多细节还未整理好,待后面再专门详细写. 基础易忽略概念 PHP是一个支持面 ...

  5. Spring MVC基本配置和实践(二)

    1. springmvc: 是一个表现层框架,作用是从请求中接收传入的参数,将处理后的结果数据返回给页面展示 2. ssm整合: 1)Dao层 pojo.mapper接口.mapper映射文件(使用逆 ...

  6. Linux常用命令(随时补充)

    1.系统 1.1.系统关闭.重启 1)关闭:shutdown -h now 2)重启:reboot.init 6 1.2.修改默认网卡 1)vi /etc/udev/rules.d/70-persis ...

  7. leetcode Ch2-Dynamic Programming I

    一. 1. Edit Distance class Solution { public: int minDistance(string t1,string t2) { int len1=t1.size ...

  8. 自动化测试基础篇--Selenium unittest生成测试报告(HTMLTestRunner)

    如何生成HTMLTestRunner测试报告.接上篇文章,对于unittest框架,运行后,测试结果不便于查看,同时多个case存在的时候,可能会导致case result记录不正确的情况. 为此,引 ...

  9. TMG阵列部署选择

    如果用户环境中有多个网络出口,用EMS配置TMG是最佳选择.在这种情况下,可以使用EMS管理的阵列配置企业级访问规则.由于一个单一的策略适用于整个企业的所有阵列,因此管理成本将大大降低.用于EMS的服 ...

  10. Linux kill/pkill/killall命令详解

    kill kill(terminate a process)命令用来终止指定的进程, 对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PI ...