2019年全国高校计算机能力挑战赛初赛C++语言解答
1; 题目一
16.电商促销某种商品时,希望通过打折鼓励消费者组团消费。已知,团队消费金额=该团的人数和*商品单价。打折规则如下:
当组团消费者数量不满50人时,商品消费金额没有折扣;消费者数量大于等于50,但小于100人时,商品消费金额打9折;消费者数量达到或超过100人时,商品消费金额打85折。
现在有一批团购信息(含团购人数和商品单价,每人限购一件商品),请计算该团折扣后实际消费金额。
输入说明:某团的人数和商品单价。
输出说明:求该团的折扣后的实际消费金额。
输入样例:100 50
输出样例:4250
#include<iostream>
using namespace std; int main(){
int n,m;
double res;
cin>>n>>m;
if(n<){ }else if(n<){
res=m*0.9;
}else{
res=m*0.85;
}
cout<<n*res;
return ;
}
2:题目二
17.对于给定的十进制整数N(N<100000),将1到N(含N)之间的每个整数转成八进制,求转换后的所有八进制数中含7的总个数。
提示:某个数的八进制含7的个数可以参照下面的例子:
对于整数127,对应的八进制为177,其含7的个数为2。
输入说明:输入整数N输出说明:输出含7的总个数
输入样例:8
输出样例:1
#include<iostream>
using namespace std;
int l=,ans[]= {};
int res=;
void change(int x)
{
if(x<)
{
ans[l++]=x;
for(int i=l-; i>=; i--)
{
//cout<<ans[i];
if(ans[i]==){
res++;
}
}
return;
}
else
{
ans[l++]=x%;
}
change(x/=);
}
int main(){
int n,i;
cin>>n;
for(i=;i<n;i++){
change(n);
}
cout<<res;
return ;
}
3:题目三
18.输入N个整数,从中挑选符合以下规则的三种类型的数,分别输出。
(1)个位数字为1、4或7的数;(2)个位数字为2、5或8的数;个位数字为3、6或9的数。
输入说明:第一行输入整数个数N;第二行输入这N个整数。
输出说明:分三行输出,第一行输出符合条件(1)的数据,第二行输出符合条件(2)的数据,第三行输出符合条件(3)的数据;备注:某行如果没有任何数据,输出空行
输入样例:10
11 12 13 24 25 26 37 38 39 40
输出样例:
11 24 37
12 25 38
13 26 39
#include<iostream>
using namespace std;
void solution(int arr[],int n,int sw){
switch(sw){
case :
for(int i=;i<n;i++){
if(arr[i]%==||arr[i]%==||arr[i]%==){
cout<<arr[i]<<" ";
}
}
break;
case :
for(int i=;i<n;i++){
if(arr[i]%==||arr[i]%==||arr[i]%==){
cout<<arr[i]<<" ";
}
}
break;
case :
for(int i=;i<n;i++){
if(arr[i]%==||arr[i]%==||arr[i]%==){
cout<<arr[i]<<" ";
}
}
break;
}
}
int main(){
int n,i;
int arr[]={};
cin>>n;
for(i=;i<n;i++){
cin>>arr[i];
}
for(i=;i<;i++){
solution(arr,n,i+);
cout<<endl;
}
return ;
}
4题目四
19.在N(N<30)名运动员参加的体操比赛中,有K(K<10)名裁判给每位运动员分别打分,按规则每名运动员最后得分需去掉一个最高分和一个最低分,然后把其他裁判的打分相加,计算得出该运动员的总得分(规定数据中每名运动员的总得分各不相同)。现在比赛完毕,根据总得分高低排序得出冠军、亚军。
请你帮忙算出冠军和亚军,并输出他们的姓名。
输入说明:第一行输入整数N和K。N表示运动员人数,K表示裁判人数;从第二行开始,依次分行输入这N名运动员的数据(数据格式为:姓名各裁判的整数打分,其中每名运动员的姓名不含空格,每名裁判的打分以空格分隔)。
输出说明:输出冠军和亚军运动员的姓名,以单个空格分开他们的姓名。
输入样例:5 4
Zhang 85 85 90 80
Wang 85 90 80 90
Zhao 90 92 85 90
Li 75 80 85 80
Yang 81 75 80 85
输出样例:Zhao Wang
#include<bits/stdc++.h>
using namespace std;
struct Athlete{
string name;
int sco[]={};//有K(K<10)名裁判
};
bool compare(int a,int b)
{
return a<b;
}
void out(Athlete p[],int n,int m){
for(int i=;i<n;i++){
cout<<p[i].name;
for(int j=;j<m;j++){
cout<<p[i].sco[j]<<" ";
}
}
}
int main(){
int n,m;
Athlete p[];
int finalsco[]={};
cin>>n>>m;
for(int i=;i<n;i++){
cin>>p[i].name;
for(int j=;j<m;j++){
cin>>p[i].sco[j];
}
}
for(int i=;i<n;i++){
sort(p[i].sco,p[i].sco+,compare);
}
for(int i=;i<n;i++){
for(int j=;j<m-;j++){
finalsco[i]+=p[i].sco[j];
}
}
int indexone=;
int MaxSco=;
for(int i=;i<n;i++){
if(MaxSco<finalsco[i]){
MaxSco=finalsco[i];
indexone=i;
}
}
int indextwo=;
MaxSco=;
for(int i=;i<n;i++){
if(i==indexone) continue;
if(MaxSco<finalsco[i]){
MaxSco=finalsco[i];
indextwo=i;
}
}
cout<<p[indexone].name<<" "<<p[indextwo].name;
//out(p,n,m);
return ;
}
5题目五
20.已知结点元素值为正整数且值不相同的一棵二叉树。该二叉树通过给出其先序遍历序列和中序遍历序列构造而成。输入一个整数x,针对此二叉树编写程序求出x的右子树中所有结点值的和(若×不在树上,输出-1)。
输入说明:第一行输入某二叉树的先序遍历序列
第二行输入该二叉树的中序遍历序列
第三行输入正整数x输出说明:若×在树上,输出其右子树所有结点值的和(如果右子树为空,输出0);如果×不在树上则输出-1。
输入样例1:20 15 10 12 18 16 17 25 30 10 12 15 16 17 18 20 25 30
输出案例1:51
输入样例2:20 15 10 12 18 16 17 25 30 10 12 15 16 17 18 20 25 30
输出案例2:0
输入样例3:20 15 10 12 18 16 17 25 30 10 12 15 16 17 18 20 25 30
输出案例3:-1
思路: 找到前序的中点, 遍历中序的排列 找到中序树的与前序对应的根节点,即为 下标的左边即为 是否存在的值 不存在输出-1
下面写到一半觉得没有必要这样写 ,应为根据中序可以直接求出右子树的值
#include<stdio.h>
#include<stdlib.h>
typedef int eleType;
typedef struct BiTree{
eleType data;
struct BiTree* lt;
struct BiTree* rt;
}BiTreeNode; BiTreeNode* createTree(eleType *pre,eleType *mid,int number){
if(number==)return NULL;//无节点返回null
eleType ele=pre[];// 头节点
int i=;
//for(i=0;i<number&&ele!=mid[i];i++);
while(i<number && mid[i]!=ele)i++;
int leftNodeNum=i;
int rightNodeNum=number-i-; BiTreeNode *node=(BiTreeNode*)malloc(sizeof(BiTreeNode));
node->data=ele;
node->lt=createTree(&pre[],&mid[],leftNodeNum);// 创建左节点
node->rt=createTree(&pre[leftNodeNum+],&mid[leftNodeNum+],rightNodeNum);// 创建左节点
return node;
}
void printT(BiTreeNode *node){
if(node==NULL)return;
if(node->data!=)printf("%d ",node->data);
printT(node->lt);
printT(node->rt);
}
void printT2(BiTreeNode *node){
if(node==NULL)return;
printT(node->lt);
if(node->data!=)printf("%d ",node->data);
printT(node->rt);
}
int main(){ char testa[]="";//20 15 10 12 18 16 17 25 30
char testb[]="";//10 12 15 16 17 18 20 25 30 int inputa[]={,,,,,,,,};
int inputb[]={,,,,,,,,};
BiTreeNode *node;
node=createTree(inputa,inputb,sizeof(inputa)/sizeof(inputa[]));
printT2(node);
return ;
}
2019年全国高校计算机能力挑战赛初赛C++语言解答的更多相关文章
- 2019年全国高校计算机能力挑战赛初赛C语言解答
http://www.ncccu.org.cn 2019年全国高校计算机能力挑战赛分设大数据算法赛,人工智能算法赛,Office高级应用赛,程序设计赛4大赛项 C语言初赛解答 1:编程1 16.现有一 ...
- 2019年全国高校计算机能力挑战赛初赛java语言解答
1:题目1 16.某星球存在两种生物,A种生物有1个头6条腿,B种生物有3个头4条腿.来自地球的太空船刚刚在该星球降落,突然发现一大群这两种生物组成的队伍,由于时间紧,只数了头的数量和腿的数量,请帮助 ...
- 2019年全国高校计算机能力挑战赛 C语言程序设计决赛
2019年全国高校计算机能力挑战赛 C语言程序设计决赛 毕竟这个比赛是第一次举办,能理解.. 希望未来再举办时,能够再完善一下题面表述.数据范围. 话说区域赛获奖名额有点少吧.舍友花60块想混个创新创 ...
- 2019年全国高校sql数据库
2019年全国高校名单sql数据库信息: 根据教育部发布的文件整理形成可用.sql文件,导入数据库即可使用. 包括全国高等学校共计2956所,其中:普通高等学校2688所(含独立学院257所),成人高 ...
- 银联高校极客挑战赛 初赛 第一场 B
自学图论的码队弟弟 试图写非递归求解,然后TLE了一下午==,全程找不到bug,换成递归,一发AC 判断环写得很丑== #include<bits/stdc++.h> using name ...
- 全国计算机等级考试二级Python语言程序设计考试大纲
全国计算机等级考试二级Python语言程序设计考试大纲(2018年版) 基本要求 掌握Python语言的基本语法规则. 掌握不少于2个基本的Python标准库. 掌握不少于2个Python第三方库,掌 ...
- <路径算法>哈密顿路径变种问题(2016华为软件精英挑战赛初赛)
原创博客,转载请联系博主! 前言:几天前华为的这个软件精英(算法外包)挑战赛初赛刚刚落幕,其实这次是我第二次参加,只不过去年只入围到了64强(32强是复赛线),最后搞到了一个华为的一顶帽子(感谢交大l ...
- 2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解
2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解 update10.01 突然发现叉姐把这场的题传到牛客上了,现在大家可以有地方提交了呢. 不知道该干什么所以就来水一篇题解 ...
- 2019 年百度之星·程序设计大赛 - 初赛一 C. HDU 6670 Mindis 离散化+dijkstra
题目链接 :http://acm.hdu.edu.cn/showproblem.php?pid=6670 Mindis Time Limit: 4000/2000 MS (Java/Others) M ...
随机推荐
- C++构造函数的几种使用方法
在C++中,有一种特殊的成员函数,他的名字和类相同,没有返回值,不需要用户显示调用,用户也无法调用,而是在创建对象的时候自动执行. 这种特殊的函数就是构造函数 Constructor 构造函数的名字与 ...
- hdu 1028 Ignatius and the Princess III (n的划分)
Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- 使用 API 网关构建微服务-2
「Chris Richardson 微服务系列」使用 API 网关构建微服务 Posted on 2016年5月12日 编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨: ...
- c++-纯虚函数和抽象类
纯虚函数和抽象类 C面向接口编程和C多态 函数类型语法基础 函数指针做函数参数(回调函数)思想剖析 函数指针做函数参数两种用法(正向调用.反向调用) 纯虚函数 抽象类 抽象类基本概念 抽象类在多继承中 ...
- Android动态添加碎片
我们编写一个能够用过按钮动态更替碎片的APP,首先在主页上显示第一个碎片,点击按钮后可以替换到第二个碎片,或者删除已经替换掉的第二个碎片. 一.MainActivity.java import and ...
- MySQL Event历史记录
需求 SQL Server的作业历史(Job)记录是保存在msdb库中的,很方便就查询相关的Job定义,计划和历史记录,而MySQL的event却没有历史记录.为方便查看event是否正常执行以及执行 ...
- DiskCatalogMaker for Mac常见问题解答
DiskCatalogMaker for Mac是Mac上简单实用的磁盘管理工具,可以帮助您对多张光盘使用批量扫描模式, 生成缩略图图像选项,更加清晰,并请将其快速编目引擎与其他编目人员比较,在本篇文 ...
- HTML DOM属性
innerHTML属性 获取元素内容的最简单方法是使用innerHTML属性 innerHTML属性对于获取或替换HTML元素的内容很有用 innerHTML属性可用于获取或改变任意HTML元素,包括 ...
- 计算几何 val.3
目录 计算几何 val.3 自适应辛普森法 定积分 引入 辛普森公式 处理精度 代码实现 模板 时间复杂度 练习 闵可夫斯基和 Pick定理 结论 例题 后记 计算几何 val.3 自适应辛普森法 可 ...
- 【5000 Stars 福利】微信接口动态 WebApi 使用说明
前言 作为中国 C# 开源项目中 Watch/Star/Fork 最高的项目之一,Senparc.Weixin SDK 凝聚了盛派微信团队持续7年的付出,和大量开发者的无私贡献,以及数万开发者的使用 ...