到底买不买,找零钱,字符统计,输出PATest

来源:互联网 发布:win10内存优化软件 编辑:程序博客网 时间:2024/06/07 02:18

1039. 到底买不买(20)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。

为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她想要的珠子,还多了8颗不需要的珠子;第2串不能买,因为没有黑色珠子,并且少了一颗红色的珠子。


图 1

输入格式:

每个输入包含1个测试用例。每个测试用例分别在2行中先后给出摊主的珠串和小红想做的珠串,两串都不超过1000个珠子。

输出格式:

如果可以买,则在一行中输出“Yes”以及有多少多余的珠子;如果不可以买,则在一行中输出“No”以及缺了多少珠子。其间以1个空格分隔。

输入样例1:
ppRYYGrrYBR2258YrR8RrY
输出样例1:
Yes 8
输入样例2:
ppRYYGrrYB225YrR8RrY
输出样例2:
No 2

提交代

代码:

#include <iostream>#include<string.h>#include<algorithm>#include<cstdio>#include<cmath>using namespace std;int main(){    char a[1001];    char b[1001];    gets(a);    gets(b);    int la=strlen(a);    int lb=strlen(b);    ///b把a给覆盖    for(int i=0;i<lb;i++)    {        for(int j=0;j<la;j++)        {            if(b[i]==a[j])            {                a[j]='*';                b[i]='*';                break;            }        }    }    int n1=0;    int n2=0;    for(int i=0;i<la;i++)    {        if(a[i]!='*')            n1++;    }    for(int i=0;i<lb;i++)    {        if(b[i]!='*')            n2++;    }    if(n2==0)        cout<<"Yes "<<n1<<endl;    else        cout<<"No "<<n2<<endl;    return 0;}



1037. 在霍格沃茨找零钱(20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。

输入格式:

输入在1行中分别给出P和A,格式为“Galleon.Sickle.Knut”,其间用1个空格分隔。这里Galleon是[0, 107]区间内的整数,Sickle是[0, 17)区间内的整数,Knut是[0, 29)区间内的整数。

输出格式:

在一行中用与输入同样的格式输出哈利应该被找的零钱。如果他没带够钱,那么输出的应该是负数。

输入样例1:
10.16.27 14.1.28
输出样例1:
3.2.1
输入样例2:
14.1.28 10.16.27
输出样例2:
-3.2.1

提交代码
#include <iostream>#include<string.h>#include<algorithm>#include<cstdio>#include<cmath>using namespace std;int main(){    int a1,b1,c1,a2,b2,c2;    char ch;    scanf("%d%c%d%c%d%d%c%d%c%d",&a1,&ch,&b1,&ch,&c1,&a2,&ch,&b2,&ch,&c2);    int m=a1*17*29+29*b1+c1;    int n=a2*17*29+29*b2+c2;    int p=n-m;    if(p<0)        cout<<"-";    p=abs(p);    int x=p/17/29;    int y=(p-x*29*17)/29;    int z=p-x*29*17-y*29;    printf("%d.%d.%d",x,y,z);    return 0;}

见识了一下cin输入功能的强大

字符统计:

1042. 字符统计(20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

请编写程序,找出一段给定文字中出现最频繁的那个英文字母。

输入格式:

输入在一行中给出一个长度不超过1000的字符串。字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束(回车不算在内)。

输出格式:

在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区分大小写,输出小写字母。

输入样例:
This is a simple TEST.  There ARE numbers and other symbols 1&2&3...........
输出样例:
e 7

提交代码
#include <iostream>#include<string.h>#include<algorithm>#include<cstdio>#include<cmath>using namespace std;int main(){    char a[1001];    int c[150]={0};    gets(a);    int la=strlen(a);    for(int i=0; i<la; i++)    {        if(a[i]>='A'&&a[i]<='Z')            a[i]+=32;        if(a[i]>='a'&&a[i]<='z')        {            c[a[i]]++;        }    }    int maxx=0;    int id=-1;    for(int i=96;i<123;i++)    {        if(c[i]>maxx)        {            maxx=c[i];            id=i;        }    }    printf("%c %d",id,maxx);    return 0;}
必要时还可以强制类型转换

输出PATest:

1043. 输出PATest(20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“PATestPATest....”这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出。

输入格式:

输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。

输出格式:

在一行中按题目要求输出排序后的字符串。题目保证输出非空。

输入样例:
redlesPayBestPATTopTeePHPereatitAPPT
输出样例:
PATestPATestPTetPTePePee

提交代码
#include <iostream>#include<string.h>#include<algorithm>#include<cstdio>#include<cmath>using namespace std;int main(){    int P,A,T,e,s,t;    P=A=T=e=s=t=0;    char a[10001];    gets(a);    int la=strlen(a);    for(int i=0;i<la;i++)    {        switch(a[i])        {            case 'P':P++;break;            case 'A':A++;break;            case 'T':T++;break;            case 'e':e++;break;            case 's':s++;break;            case 't':t++;break;        }    }    while(P||A||T||e||s||t)    {        if(P){cout<<"P";P--;}        if(A){cout<<"A";A--;}        if(T){cout<<"T";T--;}        if(e){cout<<"e";e--;}        if(s){cout<<"s";s--;}        if(t){cout<<"t";t--;}    }    return 0;}






0 0
原创粉丝点击