uva 1586 Molar mass(Uva-1586)】的更多相关文章

UVa 1586 题目大意:给出一种物质的分子式(不带括号),求分子量.本题中分子式只包含4种原子,分别为C.H.O.N, 原子量分别为12.01,1.008,16.00,14.01 解题思路:先实现一个从字符型的数到整型的数的转换函数,再将输入的串从头到尾扫描,遇到字母,则进一步扫描后面的数字的区间, 再调用函数进行转换,再乘以其的原子质量,最后累加到sum中即可. /* UVa 1586 Molar mass --- 水题 */ #include <cstdio> #include <…
​ An organic compound is any member of a large class of chemical compounds whose molecules contain carbon. The molar mass of an organic compound is the mass of one mole of the organic compound. The molar mass of an organic compound can be computed fr…
题目:(由于UVa注册不了,还是用vjudge) https://vjudge.net/problem/UVA-1586 详细说明放在了注释里面.原创. 破题点在于对于一个元素的组合(元素+个数),只有3种可能: 1.单个元素 2.一个元素和一位数字 3.一个元素和两位数字 没有了.因为题设交代了n<=99,表明个数只能为2位数.分别判断即可. /* Copyright 2019 AlexanderZ.Tang Molar_mass.cpp For UVa 1586 https://cnblog…
题意:给出物质的分子式,计算它的相对原子质量 因为原子的个数是在2到99之间的,所以找出一个是字母之后,再判断一下它的后两位就可以找出这种原子的个数了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ]; ]; int main() { int ncase,i,ans,len; ; scanf("%d&quo…
关键在于判断数字是两位数还是单位数,其他部分没有难度. #include"stdio.h" #include"string.h" #include"ctype.h" #define maxn 80 int main() { double a,b,sum; int T,m,i; char s[maxn]; scanf("%d",&T); while(T--) { scanf("%s",s); m=st…
这题做的相当的复杂...之前做的现在应该能简单一点了写的. 我的代码: #include <bits/stdc++.h> using namespace std; main() { int a; cin>>a; while(a--) { string b=""; cin>>b; stringstream stream; int sumc,sumh,sumo,sumn; sumc=sumh=sumo=sumn=; int c,h,o,n,f; c=h=…
习题 3-3 分子量 (Molar Mass,ACM/ICPC Seoul 2005,UVa1586) 给出一种物质的分子式(不带括号),求分子量.本题中的分子式只包含4种原子,分别为C,H,O,N,原子量分别为12.01,1.008,16.00,14.01(单位:g/mol).例如,C6H5OH的分子量为94.108g/mol. [我的思路:]首先设想会有哪些情况,然后去分析每种情况怎么解决,比如:问题一:字母+字母 CHO怎么判断,怎么计算?问题二:字母+数字 C,C1,C2这三个会不会都不…
解题思路: 1.将分子量用double 数组记录下来 2.将字符串存储在字符数组中,从头向后扫描,一直记住“字母”,对下一个字符进行判断,是否是数字,如果是数字:用一个整数记录,本代码中用的sum,同时下标++. 进行判断,查看是否对数字进行了记录,即查看sum是否进入了while循环并被赋值,如果没有被赋值,说明下一个字符不是数字,直接对W(总记录)值进行赋值,为当前字符的权值(分子量),即double数组的中的值.如果被赋值,说明字符后面是一个数字,sum中存放了该“数字”,也是对w赋值,不…
#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char s[20]; scanf("%s", s); double sum = 0; for (int i = 0; i < strlen(s); i++) { if (s[i] == 'C') sum += (s[i + 1] - 48) * 12.01; if (s[i] == 'H') { if (s[i +…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 模拟. 主要是找那个数字. [代码] #include <bits/stdc++.h> using namespace std; double dic[300]; int main() { /*freopen("F:\\rush.txt", "r", stdin);*/ int T; scanf("%d", &T); dic['C'] = 12.01; dic…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=521 题意: 有一些装有铀(用U表示)和铅(用L表示)的盒子,数量均足够多.要求把n(n≤30)个盒子放成一行,但至少有3个U放在一起,有多少种放法?例如,n=4, 5时答案分别为3, 8. 分析: 设答案为f(n).既然有3个U放在一起,可以根据“最左边的3个U”的位置分类.假定是…
依据递推公式计算,须要打表不然可能会超时. #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<vector> #include<stack> #include<queue> #include<map> #include<set> #include<list> #includ…
https://vjudge.net/problem/UVA-580 题意:一堆U和L,用n个排成一排,问至少有3个U放在一起的方案数 f[i] 表示 至少有3个U放在一起的方案数 g[i] 表示没有3个U放在一起的方案数 状态转移: g[i]=2^i-f[i] 枚举 第一次出现3个U的位置j,那么j-1一定是L,前j-2个一定没有3个U放在一起,第j+2个往后随便放 所以 f[i]=2^(i-3) + Σ g[i-2]*2^(i-j-2) 2^(i-3) 是当i=1时,后面的Σ从2开始 #in…
题意:一个字符串有n个位置每个位置只可能是L或者U,问你在所有可能出现的字符串中最少出现一次三个U连在一起的字符串的个数 题解:首先从左向右枚举每个位置i,保证i,i+1,i+2是U,并且i+2(不包含)前面没有连续三个U连在一起的情况,这样i+2(不包含)后面随便怎么放都可以 接着只需要保证i-1是L并且[1,i-2]没有超过三个U在一起就好了,这儿又使用dp 开二维dp[2][n],第一维表示当前最后一个数是L或者U,第二维表示前j个位置 注意当前最后一个位置i是U时,方程式等于i-1位置是…
链接:UVa 10192 题意:给定两个字符串.求最长公共子串的长度 思路:这个是最长公共子串的直接应用 #include<stdio.h> #include<string.h> int max(int a,int b) { return a>b?a:b; } int main() { char s[105],t[105]; int i,j,k=0,m,n,dp[105][105]; while(gets(s)!=NULL){ if(strcmp(s,"#"…
题目大意: 两题几何水题. 1.UVA 11646 - Athletics Track 如图,体育场的跑道一圈400米,其中弯道是两段半径相同的圆弧,已知矩形的长宽比例为a:b,求长和宽的具体数值. 2.UVA 11817 - Tunnelling the Earth 给出地球上起点和终点(均用度数的经纬度表示),从起点出发,可以沿着球面最短路径走.也可以钻隧道,走直线.求这两种方法的路程差. 题解: 1.UVA 11646 - Athletics Track http://uva.online…
#include <stdio.h> int GetQuantity(char* q, char** p){    int quantity = 0;    while (*q && '0' <= *q && *q <= '9')    {        quantity = quantity*10 + (*q-'0');        ++q;    }    if (quantity == 0)        quantity = 1;    *…
题目大意:给长度N的A1.....An 求(Ai-Aj)MAX 枚举n^2 其实动态维护最大值就好了 #include<iostream> #include<cstdio> using namespace std; ],n,ans,MAX; int main() { scanf("%d",&t); while (t--) { scanf("%d",&n); ;i<=n;i++) scanf("%d",…
又是一道比较复杂的模拟题.题中有两种队列,一种是总队列,从前向后.其他的是各个团体的小队列,因为入队的人如果有队友的话,会优先进入团体队列. 所以我们先设置两个队列和一个map,设置map倒是可以不用担心开多大数组这样的问题.然后开两个队列,一个是基本的q1,另一个是q2[1010] 一般的STL容器如string vector deque都是有两种直接初始化的方法(不严谨)一种是a(maxn)这个和一维数组差不多,直接赋给里面多少元素,另一种就是a[maxn]这个差不多是一个容器的数组,每一个…
#include <bits/stdc++.h> using namespace std; double trans(string a) { stringstream ss; ss<<a; double t; ss>>t; return t; } double k[250]; main() { int n; cin>>n; k['O']=16.00;k['N']=14.01; k['H']=1.008;k['C']=12.01; while(n--) { s…
题目大意 计算循环小数的位数,并且按照格式输出 怎么做 一句话攻略算法核心在于a=a%b*10,用第一个数组记录被除数然后用第二个数组来记录a/b的位数.然后用第三个数组记录每一个被除数出现的位置好去寻找循环节的位置. 我的代码(算法还是借鉴) #include <iostream> #include <cstring> using namespace std; int ar[300000]; int re[300000]; int lc[300000]; int main() {…
HJL是一个从不讽刺人的品学兼优的好孩子,她最近沉迷学习化学而不能自拔.然而计算一个分子的相对分子质量使她烦不胜烦,因此她决定请你写一个程序来帮助她计算这种麻烦的事情. 已知: ①C代表的碳元素的相对原子质量为12.01,H代表的氢元素的相对原子质量为1.008,O代表的氧元素的相对原子质量为16.00,N代表的氮元素的相对原子质量为14.01. ②一个分子的相对分子质量等于组成这个分子的所有原子的相对原子质量的和:例如,分子式为C6H5OH的分子的相对分子质量为:12.01*6+1.008*5…
先看第一题,有n*m个点,求在这些点中,有多少条直线,经过了至少两点,且不是水平的也不是竖直的. 分析:由于对称性,我们只要求一个方向的线即可.该题分成两个过程,第一个过程是求出n*m的矩形中,dp[i][j]代表在这个矩形中终点是到(i,j)这个点的满足题意的直线条数,那么,用dp的话就可以得出递推关系:由长和宽分别小1的左右两个矩形中满足题意的线的条数减去他们共有的矩形中满足的线的条数(容斥减去重复部分),之后还要判断从最左上角的点(1,1)到(i,j)是否可以组成一条线,这个条件是gcd(…
#include<stdio.h> #include<string.h> #include<ctype.h> double getweight(char x) { double m=0; switch(x){ case 'C':m=12.01;break; case 'H':m=1.008;break; case 'O':m=16.00;break; case 'N':m=14.01;break; } return m; } int main() { int T; sc…
首先是 Uva 147:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=83 细心看完这题后发现还是完全背包,只不过需要对浮点数处理一下.即把所有硬币的面值都乘以100,化为整数,对输入的数据也作同样的处理,然后就是套完全背包的模板了,在输出时还要用格式和精度来卡一卡你……一开始我没想到用printf可以的,于是百度了cout的输出格式控制,…
Description  UVa Panel Discussion  The UVa online judge team is arranging a panel discussion for the next ACM-ICPC World Finals event in Orlando, Florida. They want that three or four of the contestants take part in the panel and as they have about 3…
Leading and Trailing lightoj 链接:http://lightoj.com/volume_showproblem.php?problem=1282 uva 链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1970 题意:给定 n, k ,求 nk 的前3位和后三位的值. 思路:1.前 3 位:把 nk 转化为…
uva 10220 可采用uva 623这道题求N!,再最后稍微改一下就好. 参考代码: } #include<cstdio> #include<cstring> #include<iostream> using namespace std; ; int f[maxn]; int main() { int n; while (cin >> n) { memset(f, , sizeof(f)); ; f[] = ; ; i <= n; i++) { ;…
An organic compound is any member of a large class of chemicalcompounds whose molecules contain carbon. The molarmass of an organic compound is the mass of one mole of theorganic compound. The molar mass of an organic compoundcan be computed from the…
KUANGBIN带你飞 全专题整理 https://www.cnblogs.com/slzk/articles/7402292.html 专题一 简单搜索 POJ 1321 棋盘问题    //2019.3.18 POJ 2251 Dungeon Master POJ 3278 Catch That Cow  //4.8 POJ 3279 Fliptile POJ 1426 Find The Multiple  //4.8 POJ 3126 Prime Path POJ 3087 Shuffle…