……这个题我居然可以把他\(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. HDU 2553(N皇后)(DFS)

    http://acm.hdu.edu.cn/showproblem.php?pid=2553 i表示行,map[i]表示列,然后用DFS遍历回溯 可以参考这篇文章: http://blog.csdn. ...

  2. 原生Ajax(XMLHttpRequest)

    一.什么是Ajax: 全称Asynchronous JavaScript and XML: 异步的 JavaScript 和 XML: 可以在不重新加载整个页面的情况下(偷偷发数据),与服务器交换数据 ...

  3. Win10安装docker步骤

    最近使用docker部署spring boot项目,写篇文章记录下步骤. 1. 确保本机win10系统虚拟化已启动启动,否则需要去BIOS设置(方法可百度) 2. 到docker网站下载DockerT ...

  4. iview动态校验表单,获取值为undefined

    场景:实际代码如下:https://run.iviewui.com/XPofr3YS 原因:在动态校验名称时,没法获取值,请教了大神后,发现原来是自己demo没理清楚 这里的prop="na ...

  5. oracle删除归档日志

    查看归档模式: SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive ...

  6. JAVA中获取文件的大小和文件的扩展名

    一.获取文件扩展名(该段代码来自博客园网站装男人的博客https://www.cnblogs.com/nanrenzhuang/archive/2013/05/19/6315546.html) pub ...

  7. JDK配置步骤

    1.安装jkd1.6.0以上版本. 2.安装结束后,运行cmd.键入: java -version判断JDK是否安装成功,如下图所示. 3.首先需要到官网上下载JDK这款软件,本人下载的是jdk-6u ...

  8. ffmpeg 简介及使用

    简介 ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url ...

  9. 在 O(1) 时间删除链表结点(C 和 Python 实现)

    (说明:本博客中的题目.题目详细说明及参考代码均摘自 “何海涛<剑指Offer:名企面试官精讲典型编程题>2012年”) 题目 给定单向链表的头指针和一个结点指针,定义一个函数在 O(1) ...

  10. 1.bootstrap基础简介

    一·基础简介 1.Bootstrap,来自 Twitter,是一个用于快速开发 Web 应用程序和网站的前端框架,是目前最受欢迎的前端框架. Bootstrap 是基于 HTML.CSS.JavaSc ...