杭电 hdu 5625 Clarke and chemistry【水题】
来源:互联网 发布:网页美工视频教程 编辑:程序博客网 时间:2024/05/22 05:06
Clarke and chemistry
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 183 Accepted Submission(s): 102
Problem Description
Clarke is a patient with multiple personality disorder. One day, Clarke turned into a junior student and took a chemistry exam.
But he did not get full score in this exam. He checked his test paper and found a naive mistake, he was wrong with a simple chemical equation balancer.
He was unhappy and wanted to make a program to solve problems like this.
This chemical equation balancer follow the rules:
Two valencesA combined by |A| elements and B combined by |B| elements.
We get a new valenceC by a combination reaction and the stoichiometric coefficient of C is 1 . Please calculate the stoichiometric coefficient a of A and b of B that aA+bB=C, a,b∈N∗ .
But he did not get full score in this exam. He checked his test paper and found a naive mistake, he was wrong with a simple chemical equation balancer.
He was unhappy and wanted to make a program to solve problems like this.
This chemical equation balancer follow the rules:
Two valences
We get a new valence
Input
The first line contains an integer T(1≤T≤10) , the number of test cases.
For each test case, the first line contains three integersA,B,C(1≤A,B,C≤26) , denotes |A|,|B|,|C| respectively.
ThenA+B+C lines follow, each line looks like X c , denotes the number of element X of A,B,C respectively is c . (X is one of 26 capital letters, guarantee X of one valence only appear one time, 1≤c≤100 )
For each test case, the first line contains three integers
Then
Output
For each test case, if we can balance the equation, printa and b . If there are multiple answers, print the smallest one, a is smallest then b is smallest. Otherwise print NO.
Sample Input
22 3 5A 2B 2C 3D 3E 3A 4B 4C 9D 9E 92 2 2A 4B 4A 3B 3A 9B 9
Sample Output
2 3NOHint:The first test case, $a=2, b=3$ can make equation right. The second test case, no any answer.
思维缜密一点,写代码的时候多考虑一点,很简单的一个题目:
#include<stdio.h>#include<string.h>using namespace std;int a[26];int b[26];int c[26];int vis[26];int main(){ int t; scanf("%d",&t); while(t--) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); int aa,bb,cc; scanf("%d%d%d",&aa,&bb,&cc); for(int i=0;i<aa;i++) { char k[2]; int date; scanf("%s",k); scanf("%d",&date); a[k[0]-'A']=date; } for(int i=0;i<bb;i++) { char k[2]; int date; scanf("%s",k); scanf("%d",&date); b[k[0]-'A']=date; } for(int i=0;i<cc;i++) { char k[2]; int date; scanf("%s",k); scanf("%d",&date); c[k[0]-'A']=date; vis[k[0]-'A']=1; } int ok=0; int zhongzhi=0; int x; int y; for(int i=1;i<2000;i++) { for(int j=1;j<2000;j++) { for(int k=0;k<26;k++) { if(a[k]!=0||b[k]!=0) { if(c[k]==0) { zhongzhi=1; printf("NO\n"); break; } } if(vis[k]==1) { //printf("%d\n",k); if(a[k]*i+b[k]*j==c[k]) ok=1; else { ok=0; break; } } } if(ok==1) { x=i; y=j; break; } if(zhongzhi==1)break; } if(ok==1||zhongzhi==1)break; } if(ok==1) { printf("%d %d\n",x,y); } if(ok==0) { if(zhongzhi==0) printf("NO\n"); } }}
0 0
- 杭电 hdu 5625 Clarke and chemistry【水题】
- 杭电5625 Clarke and chemistry
- HDU 5625 Clarke and chemistry
- HDU 5625 Clarke and chemistry
- HDU 5625 Clarke and chemistry(模拟)
- HDU 5625 Clarke and chemistry 模拟
- HDU 5625 Clarke and chemistry(水~)
- hdoj 5625 Clarke and chemistry
- HDU 5625 Clarke and chemistry(字符串模拟题目)
- hdoj--5625--Clarke and chemistry(枚举)
- 【模拟】HDOJ Clarke and chemistry 5625
- Clarke and chemistry
- hdu5625 Clarke and chemistry
- bestcoder 72 Clarke and chemistry
- 杭电hdu 5626 Clarke and points【思维】
- BestCoder Round #72 Clarke and chemistry
- 杭电5562之Clarke and food
- HDU Clarke and points
- maven-生命周期与插件结合
- iOS 蓝牙开发(二)iOS 连接外设的代码实现
- @using (Html.BeginForm())参数示例
- leetcode笔记:Wiggle Sort
- hdu acm 1384 Intervals
- 杭电 hdu 5625 Clarke and chemistry【水题】
- 改良程序的11技巧
- 时间管理之“四象限法则”
- JavaScript和JQuery之战再续
- cf#ecr7-A. Infinite Sequence-暴力/二分-数学
- lombok的@Getter和@Setter
- 多态
- 七层传输协议
- 微信企业号的优点