1059 C语言竞赛(PAT 乙级 C++实现)

2023-11-10

1059 C语言竞赛(20 point(s))

C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:

  • 0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。
  • 1、排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶!
  • 2、其他人将得到巧克力。

给定比赛的最终排名以及一系列参赛者的 ID,你要给出这些参赛者应该获得的奖品。

输入格式:

输入第一行给出一个正整数 N(≤10​4​​),是参赛者人数。随后 N 行给出最终排名,每行按排名顺序给出一位参赛者的 ID(4 位数字组成)。接下来给出一个正整数 K 以及 K 个需要查询的 ID。

输出格式:

对每个要查询的 ID,在一行中输出 ID: 奖品,其中奖品或者是 Mystery Award(神秘大奖)、或者是 Minion(小黄人)、或者是 Chocolate(巧克力)。如果所查 ID 根本不在排名里,打印 Are you kidding?(耍我呢?)。如果该 ID 已经查过了(即奖品已经领过了),打印 ID: Checked(不能多吃多占)。

输入样例:

6
1111
6666
8888
1234
5555
0001
6
8888
0001
1111
2222
8888
2222

输出样例:

8888: Minion
0001: Chocolate
1111: Mystery Award
2222: Are you kidding?
8888: Checked
2222: Are you kidding?

分析:

如果直接查找名字相等会出现运行超时。

故用空间换取时间的方法。

 

详细代码:

#include <iostream>   
#include <string>
#include <math.h>  
using namespace std;   
 
// 判断是否是素数 
int isprime(int x){
	int status = 1;
	if(x==2||x==3){
		status = 1;
	}else if(x<=1){
		status = 0;
	}else if((x%6!=1) && (x%6!=5)){
		status = 0;
	}else{ 
		int temp = sqrtl(x);
		for(int i=2;i<=temp;++i){  
			if(x%i==0){
				status = 0;
				break;
			}
		}
	} 
	return status;
}

// 1059 C语言竞赛(20 point(s))
int main(void){ //         1              2
	string s[]={" ","Mystery Award","Are you kidding?",
		        "Minion","Chocolate","Checked"}; 
	            //   3        4          5
	int n; cin>>n;  
	int a[10005]={0},t;
	for(int i=0;i<n;++i){
		cin>>t; 
		a[t] = i+1; // 排名
	}

	int k;  cin>>k;  
	string temp;
	for(int i=0;i<k;++i){
		cin>>temp; 
		cout<<temp<<": "; // 输出
		t = stoi(temp);   // 转 int

		int num=0;
		if(a[t]){
			if(a[t]==1){
				num = 1;
			}else if(a[t]==-1){
				num = 5;
			}else{
				if(isprime(a[t])){
					num = 3;
				}else{
					num = 4;
				}
			}

			a[t] = -1; // 输出过了
		}else{
			num = 2;
		} 
		cout<<s[num]<<endl; 
	}

	return 0;
}// jinzheng 2018.7.23 15:25

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1059 C语言竞赛(PAT 乙级 C++实现) 的相关文章

  • 使用链表进行堆排序

    我想知道是否有人曾经使用链表进行堆排序 如果他们可以提供代码 我已经能够使用数组进行堆排序 但尝试在链表中进行排序似乎不切实际 而且在你知道的地方很痛苦 我必须为我正在做的项目实现链接列表 任何帮助将不胜感激 我也用C 答案是 你不想在链表
  • 如何从字符串中提取子字符串直到遇到第二个空格?

    我有一个像这样的字符串 o1 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 1232 5467 如何仅提取 o1 1232 5467 要提取的字符数并不总是相同 因此 我只想提取直到遇到
  • strlen() 编译时优化

    前几天我发现你可以找到编译时strlen使用这样的东西 template
  • Boost ASIO 串行写入十六进制值

    我正在使用 ubuntu 通过串行端口与设备进行通信 所有消息都必须是十六进制值 我已经在 Windows 环境中使用白蚁测试了通信设置 并得到了我期望的响应 但在使用 Boost asio 时我无法得到任何响应 以下是我设置串口的方法 b
  • 防止控制台应用程序中的内存工作集最小化?

    我想防止控制台应用程序中的内存工作集最小化 在Windows应用程序中 我可以这样做覆盖 SC MINIMIZE 消息 http support microsoft com kb 293215 en us fr 1 但是 如何在控制台应用程
  • 用于在标头更改时重新编译的简单 C 项目的示例 makefile

    有谁有完整的 makefile 可以执行以下操作 如果 HEADER 文件发生更改 则重建项目 cpp 文件在 makefile 中列出 头文件未在 makefile 中列出 头文件允许与 cpp 文件具有不同的名称 部分cpp文件没有头文
  • if constexpr 中的 not-constexpr 变量 – clang 与 GCC

    struct A constexpr operator bool const return true int main auto f auto v if constexpr v A a f a clang 6 接受该代码 GCC 8 拒绝它
  • C# 根据当前日期传递日期时间值

    我正在尝试根据 sql server 中的两个日期获取记录 Select from table where CreatedDate between StartDate and EndDate我通过了5 12 2010 and 5 12 20
  • 如何防止 Blazor NavLink 组件的默认导航

    从 Blazor 3 1 Preview 2 开始 应该可以防止默认导航行为 https devblogs microsoft com aspnet asp net core updates in net core 3 1 preview
  • Unity c# 四元数:将 y 轴与 z 轴交换

    我需要旋转一个对象以相对于现实世界进行精确旋转 因此调用Input gyro attitude返回表示设备位置的四元数 另一方面 这迫使我根据这个四元数作为默认旋转来计算每个旋转 将某些对象设置为朝上的简单方法如下 Vector3 up I
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • 对于 C# Express 用户来说,有哪些好的工具可以识别可能重复的代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 也可以看看 有什么工具可以检查重复的 VB NET 代码吗 https stackoverflow c
  • 如何从 Boost.PropertyTree 复制子树

    我有一些boost property tree ptree 我需要树来删除一些具有特定标签名称的元素 例如 xml 表示源ptree如下
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 读取依赖步行者输出

    I am having some problems using one of the Dlls in my application and I ran dependency walker on it i am not sure how to
  • .NET 和 Mono 之间的开发差异

    我正在研究 Mono 和 NET C 将来当项目开发时我们需要在 Linux 服务器上运行代码 此时我一直在研究 ASP NET MVC 和 Mono 我运行 Ubuntu 发行版 想要开发 Web 应用程序 其他一些开发人员使用 Wind
  • 构建 C# MVC 5 站点时项目之间的处理器架构不匹配

    我收到的错误如下 2017 年 4 月 20 日构建 13 23 38 C Windows Microsoft NET Framework v4 0 30319 Microsoft Common targets 1605 5 警告 MSB3
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • 如何组合两个 lambda [重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中组合两个 lambda 表达式 https stackoverflow com questions 1717444 combining two lamba expressions in c
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L

随机推荐

  • linux网络服务network没了,Linux网络服务(network service)管理

    Linux操作系统中重新启动网络的方法 网页链接 https ywnz com linux 4463 html 1 网络管理员服务 这是使用命令行重新启动网络的最简单方法 它等同于图形化方式 重新启动Network Manager服务 su
  • Unity2D修改Sprite颜色和透明度

    Unity2D修改Sprite颜色和透明度 简单注意原理在前边 后面是实现方法 首先创建一个Sprite 最好选择纯白色的Sprite 选择的图片需要是白色的才会在修改颜色后有明显的显示 因为颜色修改后 它的最终显示是本来的图片的颜色与修改
  • QT 信号和槽

    信号和槽是一种高级接口 应用于对象之间的通信 它是 QT 的核心特性 要正确的处理信号和槽 必须借助一个称为 moc Meta Object Compiler 的 QT 工具 该工具是一个 C 预处理程序 它为高层次的事件处理自动生成所需要
  • 解决bug“ImportError: numpy.core.multiarray failed to import”

    解决bug ImportError numpy core multiarray failed to import 在这之前升级scikit image从老版本0 13 0到0 17 2 但运行pycharm工程出现如下bug from fi
  • msys2 安装 mingw64

    https blog csdn net zhuwade article details 121944279
  • vue+element 图片右上角添加删除小×、按钮预览图片

    思维方法 这个问题实际就是一个思维方式的问题 我最开始思考的就很复杂 后来我同事给出的解决方法就好 方法是 在判断有图片的时候 在图片的右上角加上一个小 的图片 在这个图片上加方法 点击就把图片清空 所以有的时候 一件事情不能想的太复杂 代
  • pytorch源码分析之torch.utils.data.Dataset类和torch.utils.data.DataLoader类

    写在之前 介绍 Pytorch深度学习框架优势之一是python优先 源代码由python代码层和C语言代码层组成 一般只需要理解python代码层就可以深入理解pytorch框架的计算原理 所以学习pytorch源码需要熟练掌握pytho
  • 使用Eclipse编译带jni工程时出现make: *** No rule to make target `all'. Stop.解决办法

    使用Eclipse编译带jni工程时出现make No rule to make target all Stop 解决办法 在引用第三方开发的用eclipse开发jni 总是出现如题所示的异常 如下图所示 出现如上的错误 具体操作如下 1
  • 函数式编程总结

    函数式编程总结 一 定义 简单说 函数式编程 是一种 编程范式 programming paradigm 也就是如何编写程序的方法论 它属于 结构化编程 的一种 主要思想是把运算过程尽量写成一系列嵌套的函数调用 举例来说 现在有这样一个数学
  • APNS编程----iOS真机测试消息推送

    一 准备工作 1 拥有一台iOS为操作系统的苹果设备 iPhone iPad iPod都可以 2 拥有苹果开发者账号 需要真机调试 最好是是付费开发者 后面的步骤将会更顺利 3 需要一台PC做推送服务器 如果是台拥有MAC OS系统 将会更
  • Eclipse语言包下载

    Eclipse语言包下载
  • PAT 甲级(Python) #1033 To Fill or Not to Fill (25 分)贪心算法和分治法的python实现

    1033 To Fill or Not to Fill 25 分 KY155 To Fill or Not to Fill 分治法求解 不完善 include
  • Convolutional Pose Machine总结

    Convolutional Pose Machine总结 目录 文章目录 目录 Convolutional Pose Machine简介 算法详细分析 算法流程 训练阶段 使用阶段 创新点 数据集 效果展示 参考资料 博客 github C
  • Centos7 安装vm tools 工具 (命令行版本)

    一 准备工作 1 菜单栏安装VMware Tools 点击VMware菜单栏 虚拟机 选择 安装VMware Tools 如果安装了早期版本的VMware Tools 则菜单项为 更新VMware Tools 2 装载CD ROM 查看 虚
  • CentOS 安装redis及nginx报错:./configure: error: can not define uint32_t(yum及gcc都已安装)

    错误截图如下 解决方案如下 安装kernel headers yum install kernel headers kernel devel gcc make y
  • Git仓库代码迁移

    Git仓库代码迁移 前言 本文建立在已有 git 仓库地址存在的情况下 将当前 gitLab 仓库的代码迁移到另一个 gitLab 仓库中 或有其他更加简洁的方案 由于时间仓促 并未过多研究 还望大佬指点 以下操作如有不当 望指正 步骤 新
  • XGBoost股票预测

    XGBoost 极端梯度提升 Extreme Gradient Boosting XGBoost 有时候也直接叫做XGB 和GBDT类似 也会定义一个损失函数 不同于GBDT的是只会用到一阶导数信息 XGBoost会利用泰勒展开式把损失函数
  • React实现购物车基本功能(React-redux)

    本案例利用react redux实现购物车功能 概括有以下步骤 1 利用react redux操作商品的选中状态 2 全选与取消全选 3 动态reduce计算价格 4 结算取出商品id 演示网址 https zhangyongwnag gi
  • 连接失败_macOS下蓝牙键盘(Keychron K2)连接失败的解决办法

    笔者前段时间被各大科技博主种草购买了一个蓝牙键盘 Keychron K2 但使用经历并非一帆风顺 问题描述 问题1 笔者使用的系统是macOS Mojave 10 14 6 在我初次连接键盘的时候我就发现了一丝丝的不对劲 我按照说明 打开了
  • 1059 C语言竞赛(PAT 乙级 C++实现)

    1059 C语言竞赛 20 point s C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛 既然竞赛主旨是为了好玩 颁奖规则也就制定得很滑稽 0 冠军将赢得一份 神秘大奖 比如很巨大的一本学生研究论文集 1 排名为素数的学生将赢得最好