首页 > 其他分享 >CSP化学方程式

CSP化学方程式

时间:2023-05-06 22:15:11浏览次数:33  
标签:cnt 化学 int res 方程式 MPSI substr str CSP

  • unordered_map(基于哈希表的map)

  • 化学方程式:
  • #include<iostream>
    #include<cstring>
    #include<algorithm>
    #include<unordered_map>
    #define x first
    #define y second
    ​
    using namespace std;
    ​
    typedef unordered_map<string,int> MPSI;
    ​
    //Na(Au(CN)2)
    MPSI dfs(string&str,int& u){
        MPSI res;
        while(u < str.size()){
            if(str[u]=='('){
                u++;//过滤掉 '('
                MPSI t=dfs(str,u);
                u++;//过滤掉)
                //判断后面的系数
                int cnt=1,k=u;
                while(k<str.size()&&isdigit(str[k])) k++;
                if(k>u){
                    cnt=stoi(str.substr(u,k-u));
                    u=k;
                }
                for(auto c:t){
                    res[c.x]+=c.y*cnt;
                }
            }
            else if(str[u]==')') break;
            else{
                int k=u+1;
                //跳过小写字母
                while(k<str.size()&&str[k]>='a'&&str[k]<='z') k++;
                string key=str.sbustr(u,k-u);//分解到该元素 如Na
                //u未下次开始的位置
                u=k;
                //看该元素的下标如Na2
                int cnt=1;
                while(k<str.size()&&isdigit(str[k])) k++;
                //如果有下标元素
                if(k>u){
                    cnt=stoi(str.substr(u,k-u));
                    u=k;
                }
                res[key]+=cnt;
            }
        }
        return res;
    }
    ​
    MPSI work(string str)
    {
        MPSI res;
        //双指针找出每个物质
        for(int i=0;i<str.size();i++){
            int j=i+1;
            while(j<str.size()&&str[j]!='+') j++;
            //取得+号之前的这个元素
            string item=str.substr(i,j-i);
            //j指向的是+ 让i指向后一个物质的第一个字母
            i=j+1;
            //该元素之前的系数
            int cnt=1,k=0;
            while(k<item.size()&&isdigit(item[k])) k++;
            if(k) cnt=stoi(item.substr(0,k));
            //这个物质里面可能有好几个括号,递归遍历这个物质 
            //k 代表这个物质的起始字母
            MPSI t=dfs(item,k);
            for(auto c:t){
                res[c.x]+=c.y*cnt;
            }
            return res;
        } 
    }
    ​
    int main()
    {
        int n;
        cin>>n;
        while(n--){
            string str;
            cin>>str;
            int k=str.find('=');
            auto left =work(str.substr(0,k)),right=work(str.substr(k+1));
            if(left==right) cout<<"Y"<<endl;
            else cout<<"N"<<endl;
        }
        return 0;
    }

标签:cnt,化学,int,res,方程式,MPSI,substr,str,CSP
From: https://www.cnblogs.com/zhouylove/p/17378556.html

相关文章

  • 创建自己的色板,适用于 PS/CSP/GIMP/Krita/Pencil2D 等软件
    ​ 在数字创意的时代,调色板成为了设计师不可或缺的工具。一个好的调色板可以让设计更加有吸引力和协调性。如果你正在寻找一款优秀的调色板软件,那就试试焰火十二卷吧!焰火十二卷具有多种配色功能,适用于多种场景。它可以帮助你从色轮或者其他地方生成一组和谐的色彩。你可以将这些......
  • PM510V16 3BSE008358R1电磁感应效应、静电效应、热效应、化学效应等,更有可能损坏应用
    PM510V163BSE008358R1电磁感应效应、静电效应、热效应、化学效应等,更有可能损坏应用程序或系统 电测仪器分类:什么是电气测量设备?电气测量中使用的设备1个电阻或电流、电压、频率、磁通、功率因数等的测量仪器称为“电工测量仪器”。俗称欧姆表、电流表、电压表、频率表、磁......
  • StE355钢板简介、StE355执行标准、StE355化学成分
    1、StE355钢板简介:StE355是欧洲低合金钢板牌号,执行标准DIN17102,生产厚度8mm-500mm之间,StE355一热轧状态交货,StE355原厂质保书屈强参数StE355德标商标,StE355是低合金结构钢。StE355钢板自身不仅有着非常高的强度而且还具备一定的韧性、抗疲劳性、抗冲击性、耐磨性、焊接及易加工性能......
  • R语言可视化学习笔记之ggridges包
    作者:严涛浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源。严涛老师的绘图教程还有:gganimate|诺奖文章里面的动图布局教程来了!!ggplot2学习笔记之图形排列R包ggseqlogo|置换序列分析图ggplot2高效实用指南(可视化脚本,工具,套路,配色)简介ggridges。主要包用来绘......
  • CSP2022-06
    第一题 水题,没啥好说的#include<iostream>#include<cmath>usingnamespacestd;constintN=1e6;doublea[N];intmain(){intn;cin>>n;doublesum=0;for(inti=0;i<n;i++){cin>>a[i];......
  • CSP2023-03
    第一题 直接满分了:#include<iostream>usingnamespacestd;constintN=1e6;intn,a,b;intpanduan(intx1,inty1,intx2,inty2,inta,intb){intc,k;if(x2<0||y2<0||x1>a||y1>b)return0;//在外侧else{......
  • 展现AI与自动化测试技术之间的神奇化学反应
    目录零:前言一、介绍1.1、什么是自动化测试技术1.2、痛点1.3、几款优秀的自动化测试工具介绍1.3.1、Selenium1.3.2、龙测AI-TestOps云平台1.3.3、TestCafe二、实操2.1、主要功能模块介绍2.2、实战演练2.2.1、创建web项目2.2.2、录制流程图2.2.3、创建测试计划任务2.2.4、查看测试报......
  • 【专题】2022年中国企业数字化学习行业研究报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32263原文出处:拓端数据公众号多变,不确定性,复杂,模糊不清的新业务图景,加快了公司人才发展模式的数字化转变;疫情冲击离线运输与公司现金流量,消费者支出减少,机构表现受压,数字化学习突破;行业数字化水平不断提高,商业体系和学习体系之间的关联性不断加强,企......
  • 一些离谱的化学方程式
    一些离谱的化学方程式最近了解了一些比较离谱的化学方程式。特别是最后两个,绝对能够燃起你对化学的激情。希望能够对大家的学习有所帮助无奈水博基础班Ba+2Na=Banana工业制香蕉2Mg+2Na+O₂=2Mango工业制芒果CO+2Fe=Coffee工业制咖啡2CO+Ca+La=Cocacola工业制可口可乐Ar+N......
  • 2022CSP游记
    目录CSP-J20227:458:158:278:389:129:2310:3411:57中午CSP-S20222:274:156:12估分普及提高自查出分废物鸭子菜菜菜CSP-J2022废了7:45跟随校车到了考场,纪中考点不给矿泉水可还行老朋友都见到了LJHDZRLAFZWTWTCZHWYWJ....WTC已经是ISIJ的金牌了,当年我还跟他是一个......