动态 版块 发帖 消息 我的
Loading...
HadSky
支持原创软件,共创美好明天!
ZSSLv1 
洛谷“传智杯”第三届大赛初赛题和答案     

第一题

题目描述

传智播客推出了一款课程,并进行了一次促销活动。具体来说就是,课程的初始定价为 v 元;每报名 m 个学员,课程的定价就要提升 a 元。由于课程能够容纳的学生有限,因此报名到 n 人的时候就停止报名。

现在老师想知道,当课程停止报名时,一共可以获得多少学费呢?

输入格式

一行四个使用空格隔开的整数,分别为 n,v,m,a

输出格式

一行一个整数,表示答案。

输入输出样例

输入 #1

5 1 1 1

输出 #1

15

说明/提示

样例解释

每卖出 1 个课程,价格就会提高 1 元,所以总共获得 1+2+3+4+5=15 元。

数据规模与约定

对于 50\% 的数据,满足 1 \leq n,m,v,a\leq 10

对于额外 20\% 的数据,满足 a=0

对于 100\% 的数据,满足 0 \leq n,m,v,a \leq 1000

然而,由于本次比赛是 ACM 赛制,因此您必须通过 100\% 的数据才能够获得本题的得分,后题同。




答案


#include "stdio.h"

#include "math.h"

main()

{

int n,v,m,a;

int sum=0,i,sn=0,j=1;

scanf("%d %d %d %d",&n,&v,&m,&a);

sn=v;

for(i=1;i<=n;i++)

{

if(i==1+j*m)

{

sn+=a;

sum+=sn;

j++;

}else{

sum+=sn;

}


}

printf("%d",sum);

}

 0  已被阅读了1297次  楼主 2020-12-20 15:50:47
回复列表
zss
6F
ZSSLv1 

#include "stdio.h"

struct gz{

int t,k;

int sum;

};

main()

{

struct gz ren[50000];

int i,j,n,bx[50000],max,m,k=0;

scanf("%d",&n);

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

{

scanf("%d %d",&ren[i].t,&ren[i].k);

ren[i].sum=ren[i].k*ren[i].t;

}

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

{

max=-1;

m=-1;

for(j=0;j<n;j++)

{

if(max<ren[j].sum)

{

max=ren[j].sum;

m=j;

}else if(max==ren[j].sum&&ren[m].t<ren[j].t)

{

max=ren[j].sum;

m=j;

}

}

bx[k]=m+1;

ren[m].sum=0;

k++;

}

for(i=0;bx[i]!='\0';i++)

{

printf("%d ",bx[i]);

}

}

 0   2020-12-20 17:35:43  回复
zss
5F
ZSSLv1 

题目背景

YYH Land(Yoauld,Youthful & Happy Land) 是位于炽蓝仙野的一片神奇的国度,那里的人们过着无拘无束的的快乐生活。

题目描述

哈兰·斯威提是 YYH Land 远近闻名的注铅骰子爱好者。有一天他碰到了这么一个问题:

你有一枚 6 个面的骰子,分别写了 1,2,3,4,5,6 ,每一面朝上的概率是均等的。

现在哈兰想知道,如果他投掷 n 次,并且将结果按顺序写在纸上成为一个数。(比如说如果哈兰扔了 3次,分别是 3,2,5 ,那么他最后得到的数就是 325)他现在想知道这个数是 k 的倍数的可能情况有多少种,其中 k 是一个特定的数。

由于这个方案数可能会很大,所以请你输出结果对 10^9+7 取模的结果。

输入格式

一行两个整数 n,k ,意义如题所示。

输出格式

一行一个整数,表示答案。

输入输出样例

输入 #1

2 11

输出 #1

6

说明/提示

样例解释

在投掷两次骰子总共 36 种可能中,只有 ("11","22","33","44","55","66") 是符合条件的。所以答案是 6

数据规模与约定

对于 40\% 的数据,满足 n 分别为 1,2,3,4
对于另外 30\% 的数据,满足 1 \leq k \leq 3
对于 100\% 的数据,满足 1 \leq n \leq 10, 1 \leq k\leq 1000

 0   2020-12-20 17:23:50  回复
zss
4F
ZSSLv1 

题目描述

有一天您厌烦了电脑上又丑又没用的终端,打算自己实现一个 Terminal。

具体来说,它需要支持如下命令:

  1. touch filename:如果名为 filename 的文件不存在,就创建一个这样的文件,如果已经存在同名文件的话则不进行任何操作。

  2. rm name:删除名为 name 的文件。如果不存在这样的文件,就不进行任何操作。

  3. ls:按创建时间为顺序,显示当前已经存在的未被删除的所有文件。

  4. rename xxx yyy:将名为xxx的文件名字改为 yyy 。如果不存在这样的文件,或者已经存在文件名为 yyy 的文件,则不做任何操作。

这里所有涉及的文件名都仅由大写或者小写的英文字母构成,且文件名区分大小写。

输入格式

第一行一个整数 n ,表示总共要执行的操作数。

接下来 n 行,每行一个字符串,表示一条命令。

输出格式

对于每个 ls 命令,请输出若干行,每行一个字符串,表示一个文件,如果当前并没有任何文件,则什么都不输出。

请注意本题时限为 3s,输入输出规模较大,请注意常数因素对耗时的影响,我们不会给使用 Java 和 Python 的选手增加额外的运行时间。

输入输出样例

输入 #1

6
touch yyh
touch yyhtql
rename yyh yyhnb
touch qwq
rename qwq qaq
ls

输出 #1

yyhnb
yyhtql
qaq

说明/提示

对于 20\% 的数据,只存在 1,3 操作

对于另外 20\% 的数据,只存在 1,2,3 操作

对于另外 20\% 的数据,只存在 1,3,4 操作

对于 100\% 的数据,满足 1 \leq n \leq 1000

保证所有命令的长度不超过 2000 个字符。

 0   2020-12-20 17:23:34  回复
zss
3F
ZSSLv1 

题目描述

传智专修学院总共召集了 n 位志愿者来负责打扫活动,现在需要你负责帮忙统计每位志愿者的工作情况,用来制作光荣榜,给他们发小花花。

第 i 位志愿者有一个工作时长 t_i ,以及他负责的工作的难度系数 k_i ,一名志愿者的贡献度可以用 k_i \times t_i确定。

现在要为这些志愿者的贡献度从大到小排个序,请你完成这个任务。相同贡献度的志愿者以工作时长较长的排在前面。如果贡献和时长一样,那么编号小的志愿者排在前面。

输入格式

一行一个整数 n ,表示志愿者的数量。

接下来 n 行,每行两个使用空格隔开的整数 t_i,k_i ,表示第 i 名志愿者的时间和难度系数。

输出格式

一行,共 n 个整数,第 i 个数表示排名为 i 的志愿者的序号,从 1 开始编号。

请注意本题时限为 5s,输入输出规模较大,请注意常数因素对耗时的影响,我们不会给使用 Java 和 Python 的选手增加额外的运行时间。

输入输出样例

输入 #1

3
1 2
2 3
3 4

输出 #1

3 2 1

说明/提示

对于 40\% 的数据,满足 1 \leq n \leq 100
对于额外 20\% 的数据,满足 k_i=1
对于 100\% 的数据,满足 1 \leq n \leq 5 \times 10^5,1 \leq k_i,t_i \leq 1000

然而,由于本次比赛是 ACM 赛制,因此您必须通过 100\% 的数据才能够获得本题的得分,后题同。

 0   2020-12-20 17:23:20  回复
zss
2F
ZSSLv1 

题目描述

传智专修学院的 Java 程序设计课程的评价体系是这样的:

首先,所有学生会有一个卷面得分,这个得分一定是一个 [0,100] 之间的整数。

如果卷面得分在 90 分以上,那么他的 GPA(加权平均成绩) 就是满分 4.0

如果卷面得分在 60 \sim 89 之间,那么他每比 90 分少 1 分,那么他的分数就会在 4.0 的基础上减少 0.1

如果卷面得分不到 60 分,那么善良的老师会给他照顾。具体来说,如果他的分数为 x ,那么老师会把他的分数调整为 \sqrt{x}\times 10(向下取整) ,再计算他的 GPA。

如果经过调整该学生的得分依旧没满 60 ,那么他就挂科了,GPA 就是 0 分。

现在给你一个人的期末卷面得分,请你输出他的最终 GPA

输入格式

一行一个整数 x,表示该人的期末得分。

输出格式

一个小数点后只有一位的浮点数,表示该同学获得的GPA。

请注意,如果有 .0 请保留。

输入输出样例

输入 #1

99

输出 #1

4.0

输入 #2

88

输出 #2

3.8

输入 #3

12

输出 #3

0.0

说明/提示

对于 20\% 的数据,满足 90 \leq x \leq 100
对于额外 30\% 的数据,满足 60 \leq x \leq 100
对于 100\% 的数据,满足 0 \leq x \leq 100




#include "stdio.h"

#include "math.h"

main()

{

int x,i;

float sum;

scanf("%d",&x);

sum=4.0;

if(x>=90)

{

sum=4.0;

}else if(x>=60&&x<90)

{

for(i=89;i>=x;i--)

{

sum=sum-0.1;

}

}else if(x>=0&&x<60)

{

x=(int)(sqrt(x)*10);

if(x>=90)

{

sum=4.0;

}else if(x>=60&&x<90)

{

for(i=89;i>=x;i--)

{

sum=sum-0.1;

}

}else{

sum=0;

}

}

printf("%0.1f",sum);

return 0;

}

 0   2020-12-20 16:07:46  回复

回复:洛谷“传智杯”第三届大赛初赛题和答案

guest
登录之后更精彩~
Powered by HadSky 7.2.8
© 2015-2025 PuYueTian
您的IP:10.1.51.194,2025-06-07 21:29:44,Processed in 0.02977 second(s).
Powered by HadSky
2019届高三19班班论坛,祝各位学子高考成功!