……这个题我居然可以把他\(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/C++:判断机器是32位还是64位

    要求是不使用sizeof,一开始写了个看似可以,但是有问题的方法: long* a = NULL; ; int n = (char*)b - (char*)a; 这个方法等价于sizeof(long) ...

  2. JS求一个数组元素的最小公倍数

    求几个数的最小公倍数就是先求出前两个数的最小公倍数,然后再把这个最小公倍数跟第三个数放在一起来求最小公倍数,如此类推... var dbList = []; //两个数的最小公倍数 function ...

  3. 最小树形图--朱刘算法([JSOI2008]小店购物)

    题面 luogu Sol 首先设一个 \(0\) 号点,向所有点连边,表示初始价值 显然这个图的一个 \(0\) 为根的最小有向生成树的边权和就是每个买一次的最小价值 再买就一定能优惠(包含 \(0\ ...

  4. bitset(01串)优化

    bitset的经典使用: 见代码及注释: #include<bitset> #include<algorithm> using namespace std; //只需调用< ...

  5. <Android 基础(二十二)> EditText 无法显示完全以及尝鲜Android N

    前言 最近将Android Studio更新到了2.2 ,模拟器的Android版本也来到了最新的Nougat.很令人兴奋的一件事情呢! 对, 我就是这么没出息.文章结尾来几张图. 问题 最近遇到一个 ...

  6. Java设计模式—解释器模式&迭代器模式简介

       解释器模式在实际的系统开发中使用得非常少,因为它会引起效率.性能以及维护等问题,一般在大中型的框架型项目能够找到它的身影,如一些数据分析工具.报表设计工具.科学计算工具等,若你确实遇到" ...

  7. Kafak Confluent

  8. Android BitmapFactory.Options

    public Bitmap inBitmap 如果设置,解码选项“对象的方法,采取将尝试重用这个位图加载内容时. public int inDensity 使用的位图的象素密度. public boo ...

  9. win7 远程连接服务器出现身份验证错误,且找不到加密Oracle修正

    用远程桌面连接登录服务器,结果,弹出一个错误的提示框:发生身份验证错误,要求的函数不受支持. 然后在网上找了相关的教程,基本上所有的方法都是如下所示: 策略路径:"计算机配置"-& ...

  10. SSM 框架-03-MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建

    SSM 框架-03-MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建 如果你是使用 Eclipse 你需要先安装 MyEclipse,请参考:SSM 框架-02-MyEclipse ...