第三届“传智杯”全国大学生IT技能大赛(初赛B组)

链接:https://www.luogu.com.cn/contest/38442#description

也直接洛谷进入
———————————————————————————————
笔记:前三题不难。卡在第四题(提交了18次才过-_-),测试点二就是过不了。变量创建的位置改一下就过了,非常不明白为什么。虽然最后5题都过了,估计还是凉凉300+。

T160507 A - 课程报名

题目描述

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

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

输入格式

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

输出格式

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

输入输出样例

输入

5 1 1 1

输出

15

说明/提示
样例解释
每卖出 11 个课程,价格就会提高 11 元,所以总共获得 1+2+3+4+5=151+2+3+4+5=15 元。

数据规模与约定
对于 50%50% 的数据,满足 1 \leq n,m,v,a\leq 101≤n,m,v,a≤10;

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

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

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

正确代码:

#include<iostream>
#include<stdio.h>
using namespace std;
int main(){int n,v,m,a;long long sum;int ans=0;while(cin>>n>>v>>m>>a){sum=0;while(n){ans++;n--;sum+=v;if(ans%m==0){v+=a;}}cout<<sum<<endl;}return 0;
}

————————————————————————————

T160508 B - 期末考试成绩

题目描述

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

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

输入格式

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

输出格式

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

输入输出样例

输入

5 1 1 1

输出

15

说明/提示
样例解释
每卖出 11 个课程,价格就会提高 11 元,所以总共获得 1+2+3+4+5=151+2+3+4+5=15 元。

数据规模与约定
对于 50%50% 的数据,满足 1 \leq n,m,v,a\leq 101≤n,m,v,a≤10;

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

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

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

正确代码:

#include<bits/stdc++.h>
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){int n;while(scanf("%d",&n)!=EOF){double sum=0;if(n>=90){sum=4;}else if(n>=60){sum=4-(90-n)*0.1;}else{//printf("%f\n",sqrt(n)*10);n=sqrt(n)*10;//printf("%d\n",n);if(n<60){sum=0;}else{sum=4-(90-n)*0.1;}}printf("%.1f\n",sum);}return 0;
}

————————————————————————————

T160509 C - 志愿者

题目描述

传智专修学院总共召集了 nn 位志愿者来负责打扫活动,现在需要你负责帮忙统计每位志愿者的工作情况,用来制作光荣榜,给他们发小花花。
第 ii 位志愿者有一个工作时长t i​ ,以及他负责的工作的难度系数 k i,一名志愿者的贡献可以用k i​ ×t i 确定。
现在要为这些志愿者的贡献度从大到小排个序,请你完成这个任务。相同贡献度的志愿者以工作时长较长的排在前面。如果贡献和时长一样,那么编号小的志愿者排在前面。

输入格式

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

接下来 nn 行,每行两个使用空格隔开的整数 t_i,k_it
i

,k
i

,表示第 ii 名志愿者的时间和难度系数。

输出格式

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

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

输入输出样例

输入

3
1 2
2 3
3 4

输出

3 2 1

说明/提示
对于 40%40% 的数据,满足 1 \leq n \leq 1001≤n≤100;
对于额外 20%20% 的数据,满足 k i​ =1;
对于 100%100% 的数据,满足 1 \leq n \leq 5 \times 10^5,1 \leq k_i,t_i \leq 10001≤n≤5×10 5 ,1≤k i​,t i​ ≤1000。
然而,由于本次比赛是 ACM 赛制,因此您必须通过 100%100% 的数据才能够获得本题的得分,后题同。

正确代码:

#include<bits/stdc++.h>
#include<iostream>
#include<stdio.h>
using namespace std;
struct node{int t;int k;long long gongxian;int id;
};
bool cmp(node a,node b){if(a.gongxian!=b.gongxian) return a.gongxian>b.gongxian;if(a.t!=b.t) return a.t>b.t;if(a.id!=b.id) return a.id<b.id;
}
int main(){int n;while(scanf("%d",&n)!=EOF){node a[n+4];for(int i=0;i<n;i++){int t,k;scanf("%d%d",&a[i].t,&a[i].k);a[i].id=i+1;a[i].gongxian=a[i].t*a[i].k;}sort(a,a+n,cmp);for(int i=0;i<n;i++){if(i) printf(" ");printf("%d",a[i].id);}printf("\n");}return 0;
}

————————————————————————————

T160510 D - 终端

题目描述

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

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

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

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

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

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

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

输入格式

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

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

输出格式

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

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

输入输出样例

输入

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

输出

yyhnb
yyhtql
qaq

说明/提示
对于 20%20% 的数据,只存在 1,31,3 操作

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

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

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

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

正确代码:

#include<bits/stdc++.h>
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){int n;ios::sync_with_stdio(false);vector<string>v;string s,s1,s2;//没改这个变量的位置就一直过不了测试点二,很莫名while(cin>>n){map<string,int>mp;v.clear();int ans=0;while(n--){cin>>s;if(s=="ls"){ans=v.size();if(ans){for(int i=0;i<ans;i++){cout<<v[i]<<endl;}}}else if(s=="touch"){cin>>s1;//cout<<s1<<endl;if(mp[s1]==0){v.push_back(s1);ans++;mp[s1]=1;}}else if(s=="rm"){cin>>s1;int k=mp[s1];if(k){ans=v.size();for(int i=0;i<ans;i++){if(v[i]==s1){v.erase(v.begin()+i);break;}}mp[s1]=0;}}else if(s=="rename"){cin>>s1>>s2;int k=mp[s1];int f=mp[s2];if(k&&f==0){ans=v.size();for(int i=0;i<ans;i++){if(v[i]==s1){v[i]=s2;break;}}mp[s1]=0;mp[s2]=1;} }}}return 0;
}

————————————————————————————

T160513 E - 运气

题目背景

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

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

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

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

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

输入格式

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

输出格式

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

输入输出样例

输入 #1复制

2 11

输出

6

说明/提示
样例解释

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

数据规模与约定

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

正确代码:

#include<bits/stdc++.h>
#include<iostream>
#include<stdio.h>
using namespace std;
int n,k;
int s[10];
long long MOD=(1000000000+7);
long long ans;
void dfs(int len){if(len==n){long long sum=0;for(int i=0;i<len;i++){sum=sum*10+s[i];}//cout<<sum<<endl;if(sum%k==0){ans++;ans=ans%MOD;}return;}for(int i=1;i<=6;i++){s[len]=i;dfs(len+1);}
}
int main(){while(cin>>n>>k){ans=0;dfs(0);cout<<ans<<endl;}return 0;
}

下面这段话,是从别的大佬博客上看到的哈哈哈,非常喜欢这句话。

混一天和努力一天,一天看不出来任何差别,三天看不到任何变化,七天也看不到任何距离,但是一个月后会看到话题不同,三个月后会看到气场不同,半年后会看到距离不同,一年后会看到人生道路截然不同。

送给每个仍在为梦想努力奋斗的你!

第三届“传智杯”全国大学生IT技能大赛(初赛B组)相关推荐

  1. 第四届传智杯全国大学生IT技能大赛 初赛B组题解 -- D题

    题目:小卡与质数2 Description 小卡最近迷上了质数,所以他想把任何一个数都转化为质数! 小卡有 T 次询问,每次给你一个数字 x,问有多少个比 x 小的非负整数 y,使得 x⊕y 是质数, ...

  2. 第三届“传智杯”全国大学生IT技能大赛(初赛)-Java B组题解

    A - 课程报名 A-课程报名洛谷题目链接 题目描述 传智播客推出了一款课程,并进行了一次促销活动.具体来说就是,课程的初始定价为v元:每报名m个学员,课程的定价就要提升a 元.由于课程能够容纳的学生 ...

  3. 第三届“传智杯”全国大学生IT技能大赛(初赛B组)题解合集

    文章目录 A - 课程报名 B - 期末考试成绩 C - 志愿者 D - 终端 E - 运气 总结 A - 课程报名 题目描述 传智播客推出了一款课程,并进行了一次促销活动.具体来说就是,课程的初始定 ...

  4. 第四届“传智杯”全国大学生IT技能大赛-Java B组题解

    A组原成绩 A-组原成绩 题目描述 花栗鼠科技大学(Hualishu University of Science and Technology, HUST)的计算机组成原理快要出分了.你现在需要计算你 ...

  5. 2021年第三届传智杯全国大学生IT技能大赛(决赛B组)

    T172096 课程 题目背景 disangan233 喜欢数数,于是他想让你帮他回答一个问题. 题目描述 传智专修学院提供 A,B 两个课程,分别有 n,m个学生报名.报名 A 的学生的编号为 an ...

  6. 第三届传智杯全国大学生IT技能大赛(决赛B组)【c++】

    https://www.luogu.com.cn/contest/42328 目录 T172096 课程 T172097 序列 T172098 子串 T172099 打牌 T172100 商店 T17 ...

  7. 第三届“传智杯”全国大学生IT技能大赛(初赛B组)【C++】

    当时的我只会纯c,打的排名真的恶心.后来学了c++才发现. 当时的题真的简单,完全可以轻松的AK. https://www.luogu.com.cn/contest/38793 目录 T160507 ...

  8. 2022年第五届“传智杯”全国大学生IT技能大赛——程序设计挑战赛

    邀您参加第五届"传智杯"全国大学生IT技能大赛 https://m.saikr.com/active/templete/czb/1667799418?spread_code=A73 ...

  9. (附AK代码)第四届“传智杯”全国大学生IT技能大赛(决赛B组)题解

    未完全完成,很快会更新. 第四届"传智杯"大赛(决赛B组)题解目录 A:小智的疑惑 1.题目概述 2.解析 3.AC代码 B:三元组 1.题目概述 2.解析 3.AC代码 C:排排 ...

  10. 第四届“传智杯”全国大学生IT技能大赛(决赛B组)【题解】

    感觉都是暴力题或者类似原题,就是手速场. 目录 A. 小智的疑惑 B. 三元组 C. 排排队 D. 背单词的小智 F1. 生活在树上(easy version) A. 小智的疑惑 比赛的时候写的KMP ...

最新文章

  1. Script:找出ASM中的Spfile参数文件
  2. 解决Qt Creator下 undefined reference to ‘qmain(int,char**)‘的问题
  3. Java语法教程-Java开发环境安装JDK
  4. Intel® Nehalem/Westmere架构/微架构/流水线 (3) - 流水线前端
  5. 终于没刘海了!iPhone12 Pro 渲染图首曝,回归经典
  6. 计算机程序的构造和解释1构造过程抽象1.2过程与它们所产生的计算
  7. Q143:FS,物质导数(Material Derivative)
  8. 入我新美大的Java后台开发面试题总结
  9. python安装汉化插件及翻译插件
  10. OC语言基础十:OC文件操作
  11. app测试和接口测试区别
  12. python判断成语是abac型_abac型词语成语大全
  13. RN项目集成react-native-code-push(四)-- ReactNative项目集成react-native-code-push
  14. 批处理命令--call和start
  15. FastReport Mono 2023.1 Crack
  16. 基于Python的GUI图形用户界面编程
  17. rar文件解压后可以删除吗?rar文件删除后怎么恢复?
  18. ROS实践3:publisher模板教程
  19. 下载最新的Windows10官方系统镜像
  20. sed 首行加一行,末尾加一行

热门文章

  1. comsol和java_COMSOL java API——编译comsol模型java文件
  2. 杨辉三角 Python(简单易懂)
  3. 6 个清除 Linux 终端的命令
  4. 有感于《游戏脚本高级编程》的劣质翻译
  5. Eclipse 性能优化
  6. 压敏电阻GB/T 10194测试和AEC-Q200认证
  7. Linux 可执行文件结构与进程结构
  8. linux 执行文件命令
  9. Matlab之四阶龙格—库塔法方法:解常微分初值问题
  10. 如何批量保存html,如何批量保存网页信息