序设计思维与实践 CSP-M4

2023-05-16

A:

题意:
题目描述 这一天,TT因为疫情在家憋得难受,在云吸猫一小时后,TT决定去附近自家的山头游玩。
TT来到一个小湖边,看到了许多在湖边嬉戏的鸭子,TT顿生羡慕。此时他发现每一只鸭子都不 一样,或羽毛不同,或性格不同。TT在脑子里开了一个map<鸭子,整数> tong,把鸭子变成了 一些数字。现在他好奇,有多少只鸭子映射成的数的数位中不同的数字个数小于k。

输入描述
输入第一行包含两个数n,k,表示鸭子的个数和题目要求的k。
接下来一行有n个数, a i a_i ai,每个数表示鸭子被TT映射之后的值。

输出描述
输出一行,一个数,表示满足题目描述的鸭子的个数。
无行末空格
样例输入
6 5
123456789 9876543210 233 666 1 114514
样例输出
4
数据点
在这里插入图片描述
思路:
一开始看题目的时候,被数据点给唬住了,看到k的值可以如此大,一时间有点懵,总觉得自己的想法是错的,就这么耽误了很长时间。然后开始写的时候,觉得题目还行。然后提交的时候,发现没过,卡时间卡了四个点,我的天。然后看到说卡了stl,于是把set给去了,还是超时了,然后改用了scanf,并且读入的时候没有读数字了,直接读的字符串,这样的话,中间会少很多除法和取余计算。然后其实在k>10的时候可以处理以下直接跳过了。当然最终以900ms险过。

代码:

#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
int n, k, tot;
int flag[11];
char c[20];

int main() {
	tot = 0;
	scanf("%d%d",&n,&k);
	int len,num;
	while (n--){
		scanf("%s",c);
		num=0; 
		memset(flag,0,sizeof(flag));
		len=strlen(c);
		for(int i=0; i<len;i++){
			int tmp=c[i]-'0';
			if(flag[tmp]==0){
				flag[tmp]=1;
				num++;
			}
		}
		if(num<k) tot++;
	}
	cout<<tot;
	return 0;
}	

B

题目描述:
据传,2020年是宇宙射线集中爆发的一年,这和神秘的宇宙狗脱不了干系!但是瑞神和东东忙 于正面对决宇宙狗,宇宙射线的抵御工作就落到了ZJM的身上。假设宇宙射线的发射点位于一个 平面,ZJM已经通过特殊手段获取了所有宇宙射线的发射点,他们的坐标都是整数。而ZJM要构 造一个保护罩,这个保护罩是一个圆形,中心位于一个宇宙射线的发射点上。同时,因为大部分 经费都拨给了瑞神,所以ZJM要节省经费,做一个最小面积的保护罩。当ZJM决定好之后,东东 来找ZJM一起对抗宇宙狗去了,所以ZJM把问题扔给了你~

输入描述: 输入 第一行一个正整数N,表示宇宙射线发射点的个数
接下来N行,每行两个整数X,Y,表示宇宙射线发射点的位置

输出描述: 输出包括两行
第一行输出保护罩的中心坐标x,y 用空格隔开
第二行输出保护罩半径的平方
(所有输出保留两位小数,如有多解,输出x较小的点,如扔有多解,输入y较小的点)
无行末空格

样例输入
5
0 0
0 1
1 0
0 -1
-1 0

样例输出:
0.00 0.00
1.00
在这里插入图片描述
思路:
数据点不大,一开始想的是之前上课讲过的求图中的最大直径,觉得能圈住这整个的最小的半径一定要圈住这个最大直径。然后求出最大直径后的两点的时候,就遍历所有的点,求这些点能覆盖这两个最大直径上的点的最小的半径。但是错了,就过了两个点。因为点少,就暴力遍历每个点,求这个点到所有的点的距离的平方。求出能覆盖的最小的即可,同时,有如果相同的距离点后,则记录下x最小的,再者记录下y最小的,则可以在计算之前就对每个点进行这样的排序,这样就可以保证记录下的第一个点就符合这样的顺序的。

代码:

#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
int n, k, tot;
int flag[11];
char c[20];

int main() {
	tot = 0;
	scanf("%d%d",&n,&k);
	int len,num;
	while (n--){
		scanf("%s",c);
		num=0; 
		memset(flag,0,sizeof(flag));
		len=strlen(c);
		for(int i=0; i<len;i++){
			int tmp=c[i]-'0';
			if(flag[tmp]==0){
				flag[tmp]=1;
				num++;
			}
		}
		if(num<k) tot++;
	}
	cout<<tot;
	return 0;
}	
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

序设计思维与实践 CSP-M4 的相关文章

  • 更改win10系统C:\Users\中文用户名为英文用户名

    文章目录 前言一 打开注册表二 查找路径三 重启电脑四 将用中文名与英文名进行链接五 测试是否成功 前言 注意 xff1a 做之前请先浏览一遍 xff0c 做任何操作之前都建议不要直接就做 xff0c 先看一看文档中有哪些操作点是需要小心的
  • Cityscapes数据集的深度完整解析

    cityscapes数据集是分割模型训练时比较常用的一个数据集 xff0c 他还可以用来训练GAN网络生成街景图片 数据集下载和文件夹组成 xff1a 整个数据集包含50个欧洲城市 xff0c 5000张精细标注图像 标注位于gtFine文
  • 使用分支——处理Git merge 冲突

    使用分支 处理Git merge 冲突 版本控制系统就是负责管理来自于多个提交者 xff08 通常是开发者 xff09 之间的提交的 有时候多个开发者可能会编辑同一部分内容 一旦开发者A编辑了开发者B正在编辑的内容 xff0c 冲突就会产生
  • 纯手工解密几大在线js加密网站(1)

    0x0 开头 最近闲来无事 xff0c 来看一下目前网络上哪家加密工具的强度最高的 本人技术有限 xff0c 最终结果不能代表什么 xff0c 大家有遇到什么其他的js加密技术破解难题的 xff0c 也可以一起互相讨论 xff0c 也可以问
  • 纯手工解密几大在线js加密网站(3)

    0x0 开头 续接上章 xff0c 心血来潮想挨个破解一下各大js加密的网站 xff0c 了解一下现有的js加密的逻辑 0x1 介绍 Sojson支持js的不可逆混淆加密 xff0c 和很多高级的加密配置 xff0c 还增加了小白专用的一键
  • 如何在局域网内设置多个网段

    连接状态中的 属性 按钮 xff0c 选择 TCP IPv4 协议 xff0c 点击下面的 属性 按钮 xff0c 点击 高级 按钮 在高级TCP IP设置里面点击 添加 按钮 输入新网段的ip地址 xff08 以192网段为例 xff09
  • B-猫猫向前冲(拓扑排序

    题意 xff1a input 输入有若干组 xff0c 每组中的第一行为二个数N xff08 1 lt 61 N lt 61 500 xff09 xff0c M xff1b 其中N表示猫猫的个数 xff0c M表示接着有M行的输入数据 接下
  • 配置wsl2的图形界面

    1 更新源 span class token function sudo span span class token function apt get span update span class token function sudo s
  • 关于yyyyMMdd的正则表达式的使用

    String pattern 61 34 0 9 3 1 9 0 9 2 1 9 0 9 1 0 9 1 1 9 0 9 2 1 9 0 9 3 34 43 34 0 13578 1 02 0 1 9 12 0 9 3 01 0 469 1
  • qt下使用opencascade源代码

    c 43 43 基础太弱 xff0c 纠正一下 xff0c 在PRO中使用包含目录就可以使用 lt gt xff0c 将下载的opencascade文件通过make编译和安装 xff0c 添加引用就可以了 如果你依然对以下没用的操作感兴趣
  • Linux系统下CPU频率的调整

    省电 or 流畅 root 64 android sys devices system cpu cpu0 cpufreq cat scaling available governors hotplug conservative ondema
  • 禁止显示Apache目录列表-Indexes FollowSymLinks

    第一种方法 禁止显示Apache目录列表 Indexes FollowSymLinks 如何修改目录的配置以禁止显示 Apache 目录列表 缺省情况下如果你在浏览器输入地址 xff1a http localhost 8080 如果你的文件
  • 第十一章、远程联机服务器SSH / XDMCP / VNC / RDP

    维护网络服务器最简单的方式不是跑去实体服务器前面登入 xff0c 而是透过远程联机服务器联机功能来登入主机 xff0c 然后再来进行其他有的没的维护就是了 Linux 主机几乎都会提供 sshd 这个联机服务 xff0c 而且这个服务还是主
  • 如何查看电脑jdk/jre版本以及安装路径

    一 按快捷键win 43 r打开运行窗口 二 输入cmd 回车 xff0c 打开命令框 三 输入 java version 查看jdk版本 注意 xff1a java后面需要有空格 xff0c 不然会报错 java span class t
  • AndroidID、IMEI、OAID获取

    前言 因为项目中经常会遇到要上传一系列设备信息的功能 xff0c 为了方便使用 xff0c 所以就拆分成以下系列文章来单独介绍如何获取各类设备信息 手机运营商获取 AndroidID IMEI OAID获取 地理位置信息经纬度获取 公网IP
  • (二)裸机汇编--点亮LED

    目标 xff1a 点亮LED 1 查数据手册 硬件图中 xff0c 找到LED灯对应的GPIO 从二极管方向看出 xff0c 端口输出低电平时 xff0c 电流经过 xff0c LED点亮 再到数据手册查找对应的寄存器 GPBCON xff
  • Excel中将十六进制字符串转换为汉字的方法

    比如十六进制字符串 D0C2BDAE 转换方法是 在公式里面输入 61 CHAR HEX2DEC LEFT C6 4 amp CHAR HEX2DEC MID C6 5 4 其中C6 是十六进制所在的单元格 xff0c 原理很简单 xff0
  • C - 班长竞选(Kosaraju算法

    题意 xff1a input 本题有多组数据 第一行 T 表示数据组数 每组数据开始有两个整数 N 和 M 2 lt 61 n lt 61 5000 0 lt m lt 61 30000 xff0c 接下来有 M 行包含两个整数 A 和 B
  • debian 11安装pip

    安装curl sudo apt get install curl下载文件get pip py curl https bootstrap pypa io get pip py o get pip py安装依赖python3 distutils
  • Linux运行jar包报错:Error:Invalid or corrupt jarfile xxx.jar

    各种查找 xff0c 没有对症的 xff0c 最后仔细查看信息提示发现是自己大意造成的 xff0c 原因是服务器空间不足导致保存传递过来的jar包不完整导致的 巨坑 xff01 怪自己不够仔细

随机推荐