NYOJ 542 试制品(第五届河南省省赛)
解法不唯一,但是还是set好理解而且用着爽,代码注释应该够详细了
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<time.h>
#include<iostream>
#include<ctype.h>
#include<map>
#include<set>
#include<string>
#include<vector>
#include<algorithm>
#include<stdlib.h>
#include<queue>
#include<stack>
using namespace std;
set<string>s1;
set<string>s2;
set<string>::iterator tt;
char ss[];
char str[][];
int cc(char cs)//只检查字母数字,也就是存化学式,碰见+或者=就跳过去
{
if(isdigit(cs))
return ;
if(isalpha(cs))
return ;
return ;
}
int main()
{
int t,i,j,n,m,fla,k; while(~scanf("%d",&n))
{ s1.clear();
s2.clear(); for(i=;i<n;i++)
scanf("%s",str[i]);
scanf("%d",&m);
for(i=;i<m;i++)
{
scanf("%s",ss);
s1.insert(ss);
}
for(i=;i<n;i++)
{
fla=;//,每一次也就是每个化学方程式都是从左开始,判断是=号左侧还是右侧的,右侧生成物也得存入反应物里,也就是s1集合里边,左侧的话直接检测给的能用的反应物以及生成物集合s1里有没有就行了
for(j=;j<strlen(str[i]);j++)
{
if(fla)//右侧生成物
{
k=;
memset(ss,'\0',sizeof(ss));
while(cc(str[i][j]))
{
ss[k++]=str[i][j];
j++;
}
if(s1.find(ss)==s1.end())//s1里没有的话表示是新生成物,存到s2,同时存到s1也可以利用
s2.insert(ss);
s1.insert(ss);
}
else //左侧反应物
{
k=;
memset(ss,'\0',sizeof(ss));
while(cc(str[i][j]))
{
ss[k++]=str[i][j];
j++;
}
if(s1.find(ss)==s1.end()) break;//检查左侧,s1里不包含这个化学式表示并没有这个反应物,也就是没有这个化学方程式,直接跳过这个化学方程式就行。
}
if(str[i][j]=='=') fla=;//找到=就标记,开始循环判断右侧生成物
}
}
cout<<s2.size()<<endl;
for(tt=s2.begin();tt!=s2.end();tt++)
cout<<*tt<<endl;
}
}
NYOJ 542 试制品(第五届河南省省赛)的更多相关文章
- 试制品 (nyoj 542)
模拟 a 反应物集合 ; b 生成物集合; c 存在的化合物或单质集合; ans 新生成化合物集合 1.如果反应无均在已生成的化合物集合中,则完成反应,将合成物加入c集合 2.对每个方程式的反应物进行 ...
- NYOJ 1277Decimal integer conversion (第九届河南省省赛)
XiaoMing likes mathematics, and heis just learning how to convert numbers between different bases , ...
- 2014山东省“浪潮杯”第五届ACM省赛总结
一次比赛做一次总结,弱菜又来总结了…… 我这种大四的又死皮赖来混省赛了,貌似就我和山大威海的某哥们(不详其大名)了吧.颁奖前和他聊天,得知他去百度了,真是不错,ORZ之. 比赛流水账: 题目目前不知道 ...
- 第八届河南省省赛 A.挑战密室
挑战密室 时间限制: ms | 内存限制: KB 难度: 描述 R组织的特工Dr. Kong 为了寻找丢失的超体元素,不幸陷入WTO密室.Dr. Kong必须尽快找到解锁密码逃离,否则几分钟之后,WT ...
- nyoj 1238 最少换乘 (河南省第八届acm程序设计大赛)
题目1238 题目信息 执行结果 本题排行 pid=1238" style="text-decoration:none; color:rgb(55,119,188)"&g ...
- 2021CCPC河南省省赛
大一萌新,第一次打比赛,虽然是线下赛,但送气球的环节还是很赞的! 这里主要是补一下自己的弱项和考试时没有做出来的题目. 1002(链接之后再放,官方还没公开题目...) 先说一下第二题,这个题一看就是 ...
- 青岛理工大学第五届ACM交流赛 部分题解
A:后缀维护si*pi的最小值,查询的时候二分,判断后缀和当前两个部分就行. #include <bits/stdc++.h> using namespace std; typedef l ...
- 山东省第五届ACM省赛
题目链接:http://acm.sdut.edu.cn/sdutoj/contest_show.php?contest_id=1449 相关总结:http://www.cnblogs.com/mcfl ...
- 第四届河南省省赛 走迷宫 二分+DFS
题目思路:使用二分查找路径中最大值和最小值之间的差值,从而确定出一组minn和maxn,对此组的minn和maxn经行DFS,如果可以找到一条路径,其中的最大值,最小值在minn~maxn的范围内,则 ...
随机推荐
- 终于解决 xUnit.net 测试中无法输出到控制台的问题
2018-8-2 更新:今天发现在 git bash 中用 dotnet test 运行 xunit 测试可以正常输出到控制台,只是在 PowerShell 与 Windows 命令行中有这个问题. ...
- Luogu 1177 - 【模板】快速排序 - [快速排序][归并排序][无旋Treap]
题目链接:https://www.luogu.org/problemnew/show/P1177 题意:输入 $n$ 以及后续 $n$ 个整数,让你将这 $n$ 个整数从小到大排序输出. 归并排序(用 ...
- ubuntu 16.04 安装和配置vncserver
https://www.linode.com/docs/applications/remote-desktop/install-vnc-on-ubuntu-16-04/#connect-to-vnc- ...
- JAVA 第四周学习总结
20175303 2018-2019-2 <Java程序设计>第四周学习总结 教材学习内容总结 •用extends来定义一个类的子类. •Object类是所有类的祖先类. •如果子类和父类 ...
- Web开发——HTML基础(文件和网站结构)
参考: 参考:Document and website structure 参考:使用HTML部分和大纲 目录: 1.基本部分 2.用于构造内容的HTML 编辑 2.1 主动学习:探索我们的例子的代码 ...
- Bom 字符串的问题
不含 BOM 的 UTF-8 才是标准形式",的确是这样,无BOM使用得更多些,所以个人还是推荐一般情况下用无BOM的形式吧,除非有问题的时候,再考虑换有BOM的.Windows系统保存的都 ...
- 简单的可以跑起来的dubbo例子
原文地址:https://blog.csdn.net/jingyangV587/article/details/78901937 项目结构: maven项目,内部三个module. <?xml ...
- mybatis+oracle实现简单的模糊查询
第一种 concat select * from cat_table where cat_name like concat(#{catName},'%') --单个百分号 select * from ...
- 最新的vue没有dev-server.js文件,如何进行后台数据模拟?
https://blog.csdn.net/qq_34645412/article/details/78833860 https://blog.csdn.net/qq_34645412/article ...
- HBase笔记4(调优)
Master/Region Server调优 JVM调优 默认的RegionServer内存是1G,而Memstore默认占40%,即400M,实在是太小了,可以通过HBASE_HEAPSIZE参数修 ...