CDUTCMOJ 2018级ACM团队新生赛

问题 A: 欢迎来到ACM的世界

题目描述

ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(简称ACM-ICPC或ICPC))是由国际计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近40年的发展,ACM国际大学生程序设计竞赛已经发展成为全球最具影响力的大学生程序设计竞赛。赛事目前由IBM公司赞助。

输入

输出

按照样例格式输出ACM三个字母。

样例输入

样例输出

..o...ooooo.o...o
.o.o..o.....oo.oo
ooooo.o.....o.o.o
o...o.o.....o...o
o...o.ooooo.o...o

提示

每行后不允许有多余空格。每行末尾均需要换行。

签到题,按照输出复制粘贴输出即可。

AC代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include<stdio.h>

int main()

{

    printf("..o...ooooo.o...o\n");

    printf(".o.o..o.....oo.oo\n");

    printf("ooooo.o.....o.o.o\n");

    printf("o...o.o.....o...o\n");

    printf("o...o.ooooo.o...o\n");

    return 0;  

}

/**************************************************************

    Problem: 1634

    User: 201644901023

    Language: C

    Result: 正确

    Time:0 ms

    Memory:1116 kb

****************************************************************/

问题 B: 老钱的raptor作业

题目描述

    钱前老师作为学院的男神教师一直深受广大医信学习的喜爱,这不,才给大一的各位同学上了一节raptor课就让学生们深深的爱上了他,haige就深深的被他的人格魅力所吸引,但是光是注意了帅气的钱老师没有听课可是不行的,下课后发现钱老师布置的作业做不起,做不起就只能瓜起,瓜起就交不了作业,交不了作业就没有平时成绩,没有平时成绩就要挂科,挂了科就会被班上的阿花看不起,想到这里haige都快要急哭了,haige就想到了找在座的各位,作业是这样的,输入一个数n(2<=n<=100),判断这个数是不是素数,是素数则输出yes,如果不是素数则输出该数的因数(不包括1和n本身),你能帮助haige完成作业吗?

输入

每行输入一个数据n(2<=n<=100)

输出

如果n是素数则输出yes,否则输出该数的因子个数(不包括1和该数本身)。

样例输入

4

样例输出

1

提示

对于输入3   应当输出yes.

对于输入4   应当输出1. (4只包含2这一个符合条件的因数) 

每行输出均需要使用换行符。 参考考printf(“****\n”)。

要点,判断素数。AC代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

#include<stdio.h>

int main()

{

    int n,sum=0;

    scanf("%d",&n);

    for(int i=2;i<n-1;i++)

    {

        if(n%i==0)

        {

            sum++;

        }

    }

    if(sum==0)

    {

        printf("yes\n");

    }

    else

    {

        printf("%d\n",sum);

    }

    return 0;  

}

/**************************************************************

    Problem: 1635

    User: 201644901023

    Language: C

    Result: 正确

    Time:0 ms

    Memory:1116 kb

****************************************************************/

 问题 C: 找朋友

题目描述

童年的我们,对各种事物充满了好奇与向往。这天,小朋友们对数字产生了兴趣,并且想和数字交朋友。可是,怎么分配这些数字才能使得每个小朋友都唯一地找到一个数字朋友呢?C小朋友说:咱们按自己名字的字典序先后,依次选择一个剩余的最小的数字当朋友。好么?Q小朋友十分赞同。于是,大家都同意了。

输入

第一行为一个数n,为小朋友数和数字数。

下面n行为小朋友们的名字。

再下面n行为候选的n个数字。

输出

n行,按字典序输出n个小朋友姓名及所选的数字朋友。

样例输入

5
src
oldway
claire
whqsdhr
ylq
89757
20091111
130203
8000800
1008611

样例输出

claire 89757
oldway 130203
src 1008611
whqsdhr 8000800
ylq 20091111

要点,排序,冒泡排序即可。

AC代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

#include<stdio.h>

#include<string.h>

int main()

{

    int n;

    char c[100][20],temp[20];

    int d[100],t;

    scanf("%d",&n);

    for(int i=0;i<n;i++)

    {

        scanf("%s",c[i]);

    }

    for(int i=0;i<n;i++)

    {

        scanf("%d",&d[i]);

    }

    for(int i=0;i<n-1;i++)

    {

        for(int j=0;j<n-i-1;j++)

        {

            for(int m=0;m<strlen(c[i]) && m<strlen(c[j]);m++)//以此对字符串每个字母进行比较 

            {

                if(c[j][m]>c[j+1][m])

                {

                    strcpy(temp,c[j]);

                    strcpy(c[j],c[j+1]);

                    strcpy(c[j+1],temp);

                }

                if(c[j][m]<c[j+1][m])

                {

                    break;

                }

            }

        }

    }

    for(int i=0;i<n-1;i++)

    {

        for(int j=0;j<n-i-1;j++)

        {

            if(d[j]>d[j+1])

            {

                t=d[j];

                d[j]=d[j+1];

                d[j+1]=t;

            }

        }

    }

    for(int i=0;i<n;i++)

    {

        printf("%s %d\n",c[i],d[i]);

    }

    return 0;

}

/**************************************************************

    Problem: 1636

    User: 201644901023

    Language: C

    Result: 正确

    Time:0 ms

    Memory:1116 kb

****************************************************************/

问题 D: 圆的面积

题目描述

给定圆的半径r,求圆的面积。

输入

输入包含一个整数r,表示圆的半径。

输出

输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。

----------------------------------------------------------------------------------

说明:在本题中,输入是一个整数,但是输出是一个实数。

对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。

实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。

样例输入

4

样例输出

50.2654825

提示

1 <= r <= 10000。

本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。

本题主要是对数字类型的运用以及格式化输入输出

AC代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include<stdio.h>

#include<math.h>

int main()

{

    double PI=acos(-1);

    int n;

    scanf("%d",&n);

    printf("%.7lf\n",(n*n)*PI);

    return 0;  

}

/**************************************************************

    Problem: 1637

    User: 201644901023

    Language: C

    Result: 正确

    Time:0 ms

    Memory:1116 kb

****************************************************************/

 问题 E: ZZk的pentakill

题目描述

    总所周知,zzk的LOL玩的很好,特别是盲僧这个英雄,经常表演许多逆天的操作什么QRQ,RQQ,REAQQ,QEARA,摸眼R闪什么的,反正就是花里胡哨,但是今天在zzk拿到四杀的时候,跑掉了一个残血(仅剩1滴血)的敌人,敌人深知打不过zzk,又不想送五杀,想要送塔,于是朝着zzk家的防御塔跑去,zzk自信一Q,但是他没想到对面是个空格玩家,可以走位扭掉所有非指向性技能,所以zzk只能通过追击来获得这个五杀,假定敌方英雄距离zzk n 码(0<n<=1000),zzk的移速为 m (0<m<200),敌方英雄的逃跑速度为 k (0<k<200),敌方英雄距离防御塔距离为 t (0<t<=2000),假定敌方英雄进入防御塔后立即死亡(加入追到敌方英雄时对方刚好进塔,则防御塔先击杀),请问zzk能不能收获这个五杀?

输入

四个整数n、m、k、t,含义如描述所示,严格按照(0<n<=1000)、 (0<m<200)、 (0<k<200)、(0<t<=2000)。

输出

对于每组数据,判断能否拿到五杀,如果成功拿到则输入“Penta Kill”,如果失败就输出“GG”。

样例输入

500 20 20 500

样例输出

GG

提示

UZI一到基地,所有人便都看着他笑,有的叫道,“UZI,你的ADC又被混子AD锤爆了!”他不回答,对柜里说,“找两打野,要一上单。”便排出九毛钱。他们又故意的高声嚷道, “你一定又要拆队了!”UZI睁大眼睛说,“你怎么这样凭空污人清白……” “什么清白?我们前天亲眼看到你拿奥巴马脸探草丛闪现迁坟,轮子妈祖传闪现,被中野吊着打。”UZI便涨红了脸,额上的青筋条条绽出,争辩道,“没有视野又不是我的锅!……我主动E上去的,能算吊打么?”接连便是难懂的话,什么“队友太菜”,什么“世界第一AD”“都是我carry”之类,引得众人都哄笑起来,基地内外充满了快活的空气。

这到底主要考的是高中物理追及问题,解法不唯一

AC代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

#include<stdio.h>

int main()

{

    int n,m,k,t;

    double a,b;

    scanf("%d%d%d%d",&n,&m,&k,&t);

    a=(n+t)*1.0/m;

    b=t*1.0/k;

    //printf("%lf\n",a);

    if(a<b)

    {

        printf("Penta Kill\n");

    }

    else

    {

        printf("GG\n");

    }

    return 0;

}

/**************************************************************

    Problem: 1638

    User: 201644901023

    Language: C

    Result: 正确

    Time:0 ms

    Memory:1116 kb

****************************************************************/

问题 F: 出现次数最多的数

题目描述

编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。

输入格式:第一行是一个整数N;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。

输出格式:输出只有一行,即出现次数最多的那个元素值。

样例输入

5
100
150
150
200
250

样例输出

150

题意简单找众数,数据也不大,所以各种方法均能AC,但是要注意n<=0d的情况,此时应该不输出任何东西。

AC代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

#include<stdio.h>

int main()

{

    int a[21],n,min,t,time=0;

    scanf("%d",&n);

    a[0]=-300000;

    if(n>0)

    {

        for(int i=0;i<n;i++)

        {

            scanf("%d",&a[i]);

            if(a[i]!=a[i-1])

            {

                t=0;

            }

            else

            {

                t++;

            }

            if(t>time)

            {

                min=a[i];

                time=t;

            }

    }  

    printf("%d\n",min);

    }

    return 0;

}

/**************************************************************

    Problem: 1639

    User: 201644901023

    Language: C

    Result: 正确

    Time:0 ms

    Memory:1116 kb

****************************************************************/

题 G: 傻傻分不清

题目描述

    BBZ,ZZK都是团队的两位巨佬,白宇学姐虽然能够通过长相来分辨他们,但对于他们的名字白宇学姐就不怎么分得清楚了,因为BBZ和ZZK前两个都是叠词,很相近(虽然我没看出来这两个名字哪里很像emmm~),现在,请你输入一个名字,判断白宇学姐能否顺利认出他到底是谁。

输入

输入名字均为拼音且首字母必须大写,且名字字数大于等于2个不超过4个。(如:BaiYu   、  ZengJiaQi)

输出

对于每组输入,如果名字为三个字,且人名字前两个字是相同,第三个字不同的,白宇学姐将不能分辨,输入“She does not know”,否则则输出“Yes she knows"

样例输入

ZhaZhaHui

样例输出

She does not know

提示

HaHaHa 她能够分辨。因为是三个字一样

题意简单,但是处理起来比较复杂,首先要判断是否为3个字,再判断前面两个字是否相同,再判断第三个字是否与前两个字相同。

AC代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

#include<stdio.h>

#include<string.h>

int main()

{

    char s[101],m[20],n[20],o[20];

    int sum=0,y=0,p=0,z=0;

    scanf("%s",s);

    for(int i=0;i<strlen(s);i++)

    {

        if('A'<=s[i] && s[i]<='Z')

        {

            sum++;

        }

        if(sum==1)

        {

            m[p++]=s[i];

            //printf("%c",m[p]);

            m[p]='\0';

        }

        if(sum==2)

        {

            n[y++]=s[i];

            //printf("%c",n[y]);

            n[y]='\0';

        }

        if(sum==3)

        {

            o[z++]=s[i];

            o[z]='\0';

        }

    }

    if(sum!=3)

    {

        printf("Yes she knows\n");

    }

    else

    {

        if(strcmp(m,n)==0 && strcmp(m,o)!=0)

        {

            printf("She does not know\n");

        }

        else

        {

            printf("Yes she knows\n");

        }

    }

    return 0;

}

/**************************************************************

    Problem: 1640

    User: 201644901023

    Language: C

    Result: 正确

    Time:0 ms

    Memory:1116 kb

****************************************************************/

 

问题 H: 真相只有一个

时间限制: 1 Sec  内存限制: 128 MB
提交: 3  解决: 3
[提交][状态][讨论版][命题人:201644901023][Edit] [TestData]

题目描述

 

昨天,水木林放在桌上的零食被人偷吃了,凶手很嚣张的在桌上留下了线索,说你能找到我我就还给你,水木林很生气,你能帮他找出凶手是谁么?

纸条:26 21 36 12 21 36 16 17 

提示:答案就在下面。

输入

提示

emmmmm。。。签到题2,数字代表第几排第几个

AC代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#include<stdio.h>

int main()

{

    printf("hanwanyu\n");

    return 0;

 }

/**************************************************************

    Problem: 1641

    User: 201644901023

    Language: C

    Result: 正确

    Time:0 ms

    Memory:1116 kb

****************************************************************/

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值