文章目录

  • T160507 A - 课程报名
    • 题目描述
    • 输入格式
    • 输出格式
    • 输入输出样例
    • 说明/提示
      • 样例解释
      • 数据规模与约定
    • AC代码
  • T160508 B - 期末考试成绩
    • 题目描述
    • 输入格式
    • 输出格式
    • 输入输出样例
    • 说明/提示
    • AC代码
  • T160509 C - 志愿者
    • 题目描述
    • 输入格式
    • 输出格式
    • 输入输出样例
    • 说明/提示
    • AC代码
  • T160510 D - 终端
    • 题目描述
    • 输入格式
    • 输出格式
    • 输入输出样例
    • 说明/提示
    • AC 代码
  • T160513 E - 运气
    • 题目背景
    • 题目描述
    • 输入格式
    • 输出格式
    • 输入输出样例
    • 说明/提示
    • 解题思路
    • AC代码

T160507 A - 课程报名

题目描述

传智播客推出了一款课程,并进行了一次促销活动。具体来说就是,课程的初始定价为 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≤n,m,v,a≤10;

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

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

AC代码

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL);
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int MAXN = 1e5 + 5;
const int INF = 0x3f3f3f3f;void solve() {int n,v,m,a;scanf("%d%d%d%d",&n,&v,&m,&a);int sum = 0;for (int i = 1; i <= n; i++) {sum += v;// 每报名 m 个学员课程定价提升a元if (i % m == 0) {v += a;}   }printf("%d\n",sum);
}int main() {   solve();return 0;
}

T160508 B - 期末考试成绩

题目描述

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

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

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

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

如果卷面得分不到 60 分,那么善良的老师会给他照顾。具体来说,如果他的分数为 x ,那么老师会把他的分数调整为 sqrt(x) * 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≤x≤100;
对于额外30% 的数据,满足60≤x≤100;
对于 100% 的数据,满足0≤x≤100。

AC代码

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL);
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int MAXN = 1e5 + 5;
const int INF = 0x3f3f3f3f;void solve() {int x;scanf("%d",&x);double ans = 0;loop:if (x >= 90) {ans = 4.0;} else if (x >= 60) {ans = 4.0 - (90.0 - x) / 10;} else {x = sqrt(x) * 10;if (x < 60) {ans = 0;} else { // 调整后重新计算GPAgoto loop;}   }printf("%.1f\n",ans);}int main() {   solve();return 0;
}

T160509 C - 志愿者

题目描述

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

i 位志愿者有一个工作时长 ti,以及他负责的工作的难度系数ki,一名志愿者的贡献度可以用ti*ki确定。

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

输入格式

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

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

输出格式

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

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

输入输出样例

输入 #1

3
1 2
2 3
3 4

输出 #1

3 2 1

说明/提示

对于 40% 的数据,满足 1≤n≤100;
对于额外 20% 的数据,满足 ki=1;
对于 100% 的数据,满足 1≤n≤5×105,1≤ki,ti≤1000。

AC代码

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL);
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int MAXN = 5e5 + 5;
const int INF = 0x3f3f3f3f;struct Node {int t,k,id;
}node[MAXN];bool cmp(Node a, Node b) {// 如果贡献值一样if (a.t * a.k == b.t * b.k) {// 时长一样,编号小的排在前面if (a.t == b.t) { // 时长不一样,时长较长的排在前面return a.id < b.id;} else {return a.t > b.t;}}// 贡献值不一样,按贡献值由大到小排序return a.t * a.k > b.t * b.k;
}
void solve() {int n;scanf("%d",&n);for (int i = 0; i < n; i++) {scanf("%d%d",&node[i].t,&node[i].k);node[i].id = i + 1;}sort(node,node + n,cmp);for (int i = 0; i < n; i++) {printf("%d",node[i].id);if (i < n - 1) {printf(" ");} else {printf("\n");}}
}int main() {   solve();return 0;
}

T160510 D - 终端

题目描述

有一天您厌烦了电脑上又丑又没用的终端,打算自己实现一个 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≤n≤1000

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

AC 代码

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL);
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int MAXN = 5e5 + 5;
const int INF = 0x3f3f3f3f;
string name,newName,op;
int ind = 1;struct Node {string name;bool flag;
}node[MAXN];// 按名字找文件,找到返回下标便于后续操作,找不到返回 0
int check(string &name) {for (int i = 1; i < ind; i++) {if (node[i].name == name) {return i;}}return 0;
}void solve() {int n;cin >> n;for (int i = 0; i < n; i++) {cin >> op;if (op == "touch") {cin >> name;int index = check(name);/* 如果文件不存在就创建,因为这里本身就是按创建时间添加进 node 数组的,所以无需排序,也就无需记录创建时间*/if (!index) {node[ind].name = name;// 标记文件未被删除node[ind++].flag = true;}} else if (op == "rm") {cin >> name;int index = check(name);// 如果文件存在if (index) {// 标记文件被删除node[index].flag = false;}} else if (op == "ls") {// 按顺序遍历,如果文件未被删除就输出for (int i = 1; i < ind; i++) {if (node[i].flag) {cout << node[i].name << "\n";}}} else {cin >> name >> newName;int index1 = check(name),index2 = check(newName);// 如果原名字存在且新名字不存在if (index1 && !index2) {node[index1].name = newName;}}}}int main() {  IOSsolve();return 0;
}

T160513 E - 运气

题目背景

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

题目描述

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

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

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

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

输入格式

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

输出格式

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

输入输出样例

输入 #1

2 11

输出 #1

6

说明/提示

样例解释

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

数据规模与约定

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

解题思路

dfs枚举每个骰子的点数进行组合,判断是否是k的倍数即可。因为我们是枚举点数,所以最多是610~=6e7种组合,也就是610个数,时限内可以通过。
注意:组合后的数可能会超int,所以要用long long。

AC代码

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL);
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int MAXN = 5e5 + 5;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9+7;
int n,k;
ll ans = 0;
// cnt 表示用了几个骰子,num 表示前 cnt 个骰子得到的数
void dfs(int cnt, ll num) {if (cnt == n) {if (num % k == 0) {// 不用取模,因为总情况不可能超过 6^10 种ans++;}return ;}// 枚举当前这个骰子的点数for (int i = 1; i <= 6; i++) {dfs(cnt + 1,num * 10 + i);}
}
void solve() {scanf("%d%d",&n,&k);dfs(0,0);printf("%lld\n",ans);
}int main() {   solve();return 0;
}

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

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

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

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

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

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

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

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

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

  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. animiz动画制作软件_实用动画制作软件分享——万彩动画大师
  2. FLASH脚本语言详解
  3. aspnet登录界面代码_SAP系统基础操作培训1-环境登录介绍
  4. char*赋值给std::string是深拷贝
  5. 一个空格引发的Bug! ----CSV输出和CSV读入
  6. java计算机毕业设计婴幼儿玩具共享租售平台源码+数据库+系统+lw文档+mybatis+运行部署
  7. 视频制作和php,【艾奇电子相册视频制作软件和PHP 4.4.0 For Windows哪个好用】艾奇电子相册视频制作软件和PHP 4.4.0 For Windows对比-ZOL下载...
  8. GUI优化工具optimtool
  9. Day001--Scala中的下载安装配置及下载安装集成开发环境IDEA
  10. 透明质酸/氧化石墨烯/聚丙烯酰胺复合水凝胶/透明质酸/βTCP复合水凝胶研究制备
  11. 笑谈XML,xsd与xsl文件的区别
  12. 使用 vue 开发 APICloud 应用的教程
  13. oracle 权限问题9017,[数据库]oracle学习笔记(一)用户管理_星空网
  14. 配水果蜜桔/蜜橘的朋友圈文案,蜜桔/蜜橘水果宣传文案模版
  15. 【我是小白】感谢大家的关注
  16. 步态识别新论文学习——《Gait Lateral Network》
  17. 这个月干啥去了?——H5+移动应用实战开发
  18. Generative Model - 李宏毅笔记
  19. STVP STM8 COSMIC C编译器在WIN10上的安装使用( can‘t access configuration database 问题解决方法)
  20. 如何将mysql数据同步到es

热门文章

  1. Android 项目必备(十七)-->实现身份证认证功能
  2. 2016首次CCCC总结
  3. org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 文件提前结
  4. 从0开发豆果美食小程序——listItem组件列表
  5. 基于vue,自定义条形进度条/辣条进度条
  6. 网页元素3D效果展示
  7. Composer加载的symfony/var-dumper类库 字体大小样式设置
  8. 在MS Word 中添加 Mathtype 插件(vbe6ext.olb不能被加载问题 已解决)
  9. 快速打开管理工具的命令
  10. OpenEmu MAME核心自动更新解决