5.24日 笔记

    xiaoxiao2023-10-15  32

    HDU-2019 数列有序!


    Time Limit: 1000 ms / Memory Limit: 32768 kb

    Description

    有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。

    Input

    输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。

    Output

    对于每个测试实例,输出插入新的元素后的数列。

    Sample Input

     

    3 3 1 2 4 0 0

    Sample Output

     

    1 2 3 4

    #include <stdio.h> int main() { int n,m,a[101],i; while(~scanf("%d%d", &n, &m)) { if(n==0&&m==0) { break; } if(n==0) { printf("%d\n",m); } else { int p=0; for(i=0;i<n;i++) { scanf("%d",&a[i]); if(a[i]<m) { p++; } } for(i=0;i<n;i++) { if(i==p) { if(i>0) { printf(" "); } printf("%d", m); } if(i>0) { printf(" "); } printf("%d",a[i]); } if(p==n) { printf(" %d\n",m); } else { printf("\n"); } } } return 0; }

    HDU-2020 绝对值排序


    Time Limit: 1000 ms / Memory Limit: 32768 kb

    Description

    输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。

    Input

    输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。

    Output

    对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。

    Sample Input

     

    3 3 -4 2 4 0 1 2 -3 0

    Sample Output

     

    -4 3 2 -3 2 1 0

    #include<stdio.h> int main() { int n,a[100]; while (scanf("%d",&n) && n != 0) { for (int i = 0; i < n; i++) { scanf("%d",&a[i]); } for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { if (abs(a[i]) < abs(a[j])) { int c = a[i]; a[i] = a[j]; a[j] = c; } } } for (int i=0;i<n;i++) { if (i!=0) { printf(" %d",a[i]); } else { printf("%d",a[0]); } } printf("\n"); } return 0; }

    HDU-2021 发工资咯:)


    Time Limit: 1000 ms / Memory Limit: 32768 kb

    Description

    作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵 但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢? 这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。

    Input

    输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n<100),表示老师的人数,然后是n个老师的工资。 n=0表示输入的结束,不做处理。

    Output

    对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。

    Sample Input

     

    3 1 2 3 0

    Sample Output

     

    4

    #include <stdio.h> int main() { int a[6]={100,50,10,5,2,1},b,c,d; while(~scanf("%d",&b)&&b) { d=0; for(int i=0;i<b;i++) { scanf("%d",&c); for(int j=0;j<6;j++) { d+=c/a[j]; c%=a[j]; } } printf("%d\n",d); } return 0; }

    HDU-2022 海选女主角


    Time Limit: 1000 ms / Memory Limit: 32768 kb

    Description

    potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业余时间挣点外快以养家糊口。 “做什么比较挣钱呢?筛沙子没力气,看大门又不够帅...”potato老师很是无奈。 “张艺谋比你还难看,现在多有钱呀,听说还要导演奥运开幕式呢!你为什么不去娱乐圈发展呢?”lwg在一旁出主意。 嗯,也是,为了生存,就委屈点到娱乐圈混混吧,马上就拍一部激光电影《杭电记忆——回来我的爱》。 说干就干,马上海选女主角(和老谋子学的,此举可以吸引媒体的眼球,呵呵),并且特别规定,演员必须具有ac的基本功,否则直接out! 由于策划师风之鱼(大师级水王)宣传到位,来应聘的MM很多,当然包括nit的蛋糕妹妹等呼声很高的美女,就连zjut的jqw都男扮女装来应聘(还好被安全顾问hdu_Bin-Laden认出,给轰走了),看来娱乐圈比acm还吸引人哪... 面试那天,刚好来了m*n个MM,站成一个m*n的队列,副导演Fe(OH)2为每个MM打了分数,分数都是32位有符号整数。 一开始我很纳闷:分数怎么还有负的?Fe(OH)2解释说,根据选拔规则,头发染成黄色、化妆太浓、穿的太少等等都要扣分数的,扣的多了就可能是负分了,当然,如果发现话语中夹有日语,就直接给-2147483648分了。 分数送上来了,是我做决定的时候了,我的一个选拔原则是,要选一个面试分数绝对值(必须还是32位整数)最大的MM。 特别说明:如果不幸选中一个负分的MM,也没关系,因为我觉得,如果不能吸引你,那要想法恶心你。

    Input

    输入数据有多组,每组的第一行是两个整数m和n,表示应聘MM的总共的行列数,然后是m行整数,每行有n个,m和n的定义见题目的描述。

    Output

    对于每组输入数据,输出三个整数x,y和s,分别表示选中的MM的行号、列号和分数。 note:行号和列号从一开始,如果有多个MM的分数绝对值一样,那么输出排在最前面的一个(即行号最小的那个,如果行号相同则取列号最小的那个)。

    Sample Input

     

    2 3 1 4 -3 -7 3 0

    #include <stdio.h> int main() { int a,b,c,d,e,f; while(~scanf("%d %d",&a,&b)) { d=0; for(int i=0;i<a;i++) { for(int j=0;j<b;j++) { scanf("%d",&c); if(abs(c)>abs(d)) { d=c; e=i+1; f=j+1; } } } printf("%d %d %d\n",e,f,d); } return 0; }

    C语言变量命名规则:

    在定义变量时,变量名可以是字母、数字和下划线的组合。但是也不是随便的组合,要注意以下几个命名规则:

    1) 变量名的开头必须是字母或下划线,不能是数字。实际编程中最常用的是以字母开头,而以下划线开头的变量名是系统专用的。

    2) 变量名中的字母是区分大小写的。比如 a 和 A 是不同的变量名,num 和 Num 也是不同的变量名。

    3) 变量名绝对不可以是C语言关键字,这一点一定要记住!

    4) 变量名中不能有空格。这个可以这样理解:因为上面我们说过,变量名是字母、数字、下划线的组合,没有空格这一项。

    最新回复(0)