【Week 16】CSP-M4

2023-05-16

TT数鸭子

题目描述在这里插入图片描述

输入输出描述

在这里插入图片描述

样例

在这里插入图片描述

思路

对每个数字按数位进行遍历,求取不重复数字个数即可。

代码

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <set>
using namespace std;
char num[20];
bool flag[15]; 
int n,k;
int main(int argc, char** argv) {
	scanf("%d%d",&n,&k);
	int ans=0;
	for(int i=0;i<n;i++)
	{
		scanf("%s",num);
		//set<char> ss;
		int tmp=0;
		memset(flag,false,sizeof(flag));
		for(int j=0;j<strlen(num);j++)
		{
			if(!flag[num[j]-'0'])
			{
				flag[num[j]-'0']=true;tmp++;
			}
		}
		if(tmp<k)ans++;
	}
	printf("%d\n",ans);
	return 0;
}

ZJM要抵御宇宙射线

题目描述

在这里插入图片描述

输入输出描述

在这里插入图片描述

样例

在这里插入图片描述

思路

对于每个点,以它为中心的圆覆盖半径为它到其他点的距离中的最长距离,我们求取每个点到其他点的距离中的最长距离,即为以该点为中心的圆覆盖半径,在这些半径中取最短即可。

代码

#include <iostream>
#include <stdio.h>
#include <cmath>
using namespace std;
const int size=1005;
double x[size];
double y[size];
double length[size];
int main(int argc, char** argv) {
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
		scanf("%lf%lf",&x[i],&y[i]);
	for(int i=0;i<n;i++)
	{
		length[i]=0;
		for(int j=0;j<n;j++)
		{
			double dx=x[i]-x[j];
			double dy=y[i]-y[j];
			double tmp=dx*dx+dy*dy;
			if(tmp>length[i])
				length[i]=tmp;
		}
	}
	int ans=0;
	double ll=length[0];
	for(int i=1;i<n;i++)
	{
		if(ll>length[i])
		{
			ans=i;
			ll=length[i];
		}
		else if(ll==length[i])
		{
			if(x[i]<x[ans])
			{
				ans=i;
			}
			else if(x[i]==x[ans]&&y[i]<y[ans])
			{
				ans=i;
			}	
		}
	}
	printf("%.2lf %.2lf\n",x[ans],y[ans]);
	printf("%.2lf",ll);
	return 0;
}

宇宙狗的危机

题目描述

在这里插入图片描述

输入输出描述

在这里插入图片描述

样例

在这里插入图片描述
在这里插入图片描述

思路

因为是一颗二叉搜索树,可以知道,对于根节点而言,其左子树节点必定比它小,而右子树节点必定比它大。

根据这一属性,我们可以先对数据进行排序,然后若数据中存在某一个数,以它为根节点,它前面区间中的节点为它的左子树,它右面区间中的节点为它的右子树则满足题意,否则不满足。

接下来就是如何判断某个数为根节点时上述左子树和右子树是否存在:
这里设状态
R[k][r]为以数据中以第k个数为根节点,数据区间k+1~r为右子树是否成立;
L[k][l]为以k为根节点,区间l~k-1为左子树是否成立。(其中r>=k,l<=k)。
对于数据中的每个区间范围l~r(其中l、r表示数据位置),若该区间中存在一个数k,使得L[k][l]与R[k][r]同时成立,则这个区间中可由k为根建立一颗二叉搜索树
这时我们可以扩大区间范围,若l-1与k之间可连接一条边即最大公约数大于1,则R[l-1][r]必然成立,同理若r+1与k之间可连接一条边,则L[r+1][l]也成立。
通过上述过程,便可由小区间一直扩大直到考虑完整个数据区间即数据1~n,此时,若存在一个k使得L[k][1]与R[k][n]同时成立,则表明可以在整个数据区间内建立一颗以k为根的二叉搜索树。

由于我们考虑的数据范围是从小区间到大区间的,且对大区间数据进行判断时,该数据区间中的小区间必然已经考虑过了,所以区间左端点由n到1进行遍历。

代码

#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
const int size=710;
int n;
int num[size];
bool flag[size][size];
bool R[size][size],L[size][size]; 
int gcd(int a,int b)
{
	return b==0?a:gcd(b,a%b);
} 
bool solve()
{
	for(int l=n;l>=1;l--)
	{
		for(int r=l;r<=n;r++)
		{
			for(int k=l;k<=r;k++)
			{
				if(L[k][l]&&R[k][r])
				{
					if(flag[l-1][k])
						R[l-1][r]=true;
					if(flag[r+1][k])
						L[r+1][l]=true;
				}
			}
		}
	}
	bool ans=false;
	for(int i=1;i<=n;i++)
	{
		if(L[i][1]&&R[i][n])
		{
			ans=true;
			break;
		}
	}
	return ans;
}
int main(int argc, char** argv) {
	int T;
	scanf("%d",&T);
	memset(flag,false,sizeof(flag));
	while(T--)
	{
		scanf("%d",&n);
		memset(R,false,sizeof(R));
		memset(L,false,sizeof(L));
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&num[i]);
			L[i][i]=R[i][i]=true;		
		}
		for(int i=1;i<=n;i++)
		{
			for(int j=i;j<=n;j++)
			{
				if(gcd(num[i],num[j])>1)
					flag[i][j]=flag[j][i]=true;
				else
					flag[i][j]=flag[j][i]=false;
			}
		}
		bool ans=solve();
		if(ans)
			printf("Yes\n");
		else
			printf("No\n");
	}
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Week 16】CSP-M4 的相关文章

  • P8814 [CSP-J 2022] 解密 题解(二元一次方程)

    CSP J 2022 解密 题目描述 给定一个正整数 k k k xff0c 有 k k k 次询问 xff0c 每次给定三个正整数
  • P7914 [CSP-S 2021] 括号序列 题解

    其实T2想清楚就不是很难 xff0c 虽然想清楚也不简单 我这里分享一种很自然的想法 xff0c 当然是区间dp啦 区间dp分6种状态 的种类数 xff0c 这种情况相当与题目中的 S S S xff0c 2到5中都一样 的种类数 xff0
  • CSP:201512-3 画图(C++)

    题目 原题传送门 题目思路 1 形成画布 xff0c 根据输入长宽初始化画布 xff0c 将全部像素都初始化为 39 39 2 输入操作 xff0c 根据输入的q个操作依次对画布进行修改 w 61 0 画线段操作 xff0c 根据输入的x1
  • week16——实验(csp_m4)

    目录 TT数鸭子 xff1a 问题描述题目简述输入 输出格式样例 问题分析解题思路参考代码 心得体会 ZJM要抵御宇宙射线 xff1a 问题描述题目简述输入 输出格式样例 问题分析解题思路参考代码 心得体会 宇宙狗的危机 xff1a 问题描
  • WEEK 5 B TT's Magic Cat

    题目 xff1a Thanks to everyone s help last week TT finally got a cute cat But what TT didn t expect is that this is a magic
  • WEEK(7)作业——最短路专题(Floyd、Dijkstra、SPFA、负权环路)

    A TT的魔法猫 题目描述 众所周知 xff0c TT 有一只魔法猫 这一天 xff0c TT 正在专心致志地玩 猫和老鼠 游戏 xff0c 然而比赛还没开始 xff0c 聪明的魔法猫便告诉了 TT 比赛的最终结果 TT 非常诧异 xff0
  • 【Week 14 作业E】Q老师度假

    题目描述 忙碌了一个学期的 Q老师 决定奖励自己 N 天假期 假期中不同的穿衣方式会有不同的快乐值 已知 Q老师 一共有 M 件衬衫 xff0c 且如果昨天穿的是衬衫 A xff0c 今天穿的是衬衫 B xff0c 则 Q老师 今天可以获得
  • CSP-M3 B

    思路 xff1a 定义两个矩阵 xff0c 一个矩阵记录输入的数据 xff0c 另一个矩阵起标记作用 xff0c 当以行的方式遍历矩阵 xff0c 如果大于等于3个数字相同 xff0c 则标记为0 同理 xff0c 以竖的方式进行遍历 最后
  • CSP考试 2016年04月第3题 路径解析 C++实现

    表示本目录 xff0c 例如 d1 f1 指定的就是 d1 f1 如果有多个连续的 出现 xff0c 其效果等同于一个 绝对路径 xff1a 以 符号开头 xff0c 表示从根目录开始构建的路径 相对路径 xff1a 不以 符号开头 xff
  • csp 201312-4有趣的数

    题意 xff1a 问题描述 我们把一个数称为有趣的 xff0c 当且仅当 xff1a 1 它的数字只包含0 1 2 3 xff0c 且这四个数字都出现过至少一次 2 所有的0都出现在所有的1之前 xff0c 而所有的2都出现在所有的3之前
  • Week8 CSP-M2

    T1 HRZ的序列 题目 相较于咕咕东 xff0c 瑞神是个起早贪黑的好孩子 xff0c 今天早上瑞神起得很早 xff0c 刷B站时看到了一个序列aa xff0c 他对这个序列产生了浓厚的兴趣 他好奇是否存在一个数KK xff0c 使得一些
  • TT数鸭子-暴力(csp-t1模拟)

    题目 输入输出样例 xff1a 题解 xff1a 我们整个题就是使用暴力的方法进行运算 将每一只鸭子看作是十进制的数 xff0c 不断对每一位读取 xff08 采用对十整除和取余数的方法 xff09 我们对每一个鸭子都进行判断 如果满足这个
  • CSP-S 模拟53

    中下游水准 xff0c 暴力分没拿全 xff0c T1水了 T1 u 两个差分数组水掉 xff08 竖着一个 xff0c 斜着一个 xff09 T2 v 状压 43 记忆化搜索 xff0c 对于sta 61 1 lt lt 30 用hash
  • CCF/CSP 201312-1出现次数最多的数(满分题解Java版)

    CCF 考试 一定要刷历年真题 在提交代码的时候 一定不要把中文注释提交上去了 可能会编译报错 题目描述 201312 1出现次数最多的数 Java题解 import java util ArrayList import java util
  • 【202206-3】角色授权

    AC的快乐无与伦比 本蒟蒻刚看到这道题时 就被超长的题干和复杂的关系唬住了 于是学习了各路大神的解法 终于AC 成功照虎画猫了 现将在此过程中学到的种种知识总结如下 作为本小白菜 不但小白还有菜 的编程笔记 Attention 一 C 中的
  • CSP认证历年真题题解 (Python)

    文章目录 此篇文章是小菜本菜使用Python做CCF CSP的一些记录 希望能够以此帮助到正在为题目苦苦思考 但还没有找到解决思路的朋友们 诚然 这里的代码还有很多值得改进之处 希望各位码友不吝赐教 目前已完成历年的第一题 第二题 第三题正
  • 数据结构--二叉树

    前言 关于二叉树知识的考察主要分两部分 第一部分在初赛中体现 一般考察二叉树的节点个数 树高和遍历问题 1 二叉树定义 在计算机科学中 二叉树是每个结点最多有两个子树的树结构 通常子树被称作 左子树 left subtree 和 右子树 r
  • CCF-CSP真题《202305-1 重复局面》思路+python,c++满分题解

    想查看其他题的真题及题解的同学可以前往查看 CCF CSP真题附题解大全 试题编号 202305 1 试题名称 重复局面 时间限制 1 0s 内存限制 512 0MB 问题描述 题目背景 国际象棋在对局时 同一局面连续或间断出现3次或3次以
  • csp试题1:小明种苹果

    csp试题1 小明种苹果 题目 分析 代码 总结 题目 题目描述 小明在他的果园里种了一些苹果树 为了保证苹果的品质 在种植过程中要进行若干轮疏果操作 也就是提前从树上把不好的苹果去掉 第一轮疏果操作开始前 小明记录了每棵树上苹果的个数 每
  • CSP 202212-1 现值计算

    答题 主要就是 include

随机推荐

  • Python实现微信自动化发送信息

    需求 xff1a 利用PC端微信实现自动向文件传输助手 xff0c 好友等发送信息 库说明 psutil 获取系统运行的进程和系统利用率 xff08 包括CPU 内存 磁盘 网络等 xff09 信息 xff0c 用于获取进程ID pywin
  • 数据类型——枚举

    文章目录 枚举是什么枚举的声明枚举与其他数据类型的转换与int类型转换枚举转intint转枚举 与string类型转换枚举转字符串字符串转枚举 枚举的意义是什么 枚举是什么 在c 中 xff0c 枚举 enumeration 是一种数据类型
  • C# 调用WebService的方式汇总

    C 调用WebService的方式汇总 方式一 xff1a 根据提供的webservice地址 xff0c 用VS自带工具生成cs文件 xff0c 添加到项目中使用即可 方式二 xff1a 根据webservice地址 xff0c 动态在项
  • npm 报错:`[HPM] Error occurred while trying to proxy request (ECONNREFUSED)`

    npm 报错 xff1a HPM Error occurred while trying to proxy request users from localhost 8000 to https localhost 5000 ECONNREF
  • selenium Grid 4.x版本 部署操作 笔记

    selenium Grid 4 x版本 部署操作 笔记 selenium Grid 是 selenium套件 的一部分 xff0c 实现分布式测试 xff0c 多用于浏览器兼容性测试 使用 hub nodes 理念 xff1a 一台 hub
  • 图解辗转相除法

    前言 虽然在很久很久以前刚入门ACM的时候就已经知道辗转相除法的存在 xff0c 并且也用GCD解了不少题 xff0c 不过说实话辗转相除法的原理一直不是很清楚 直到最近做到这样一道题 Codeforces 343A xff0c 本以为是一
  • 【程序设计思维与实践 Week2 实验C】瑞神打牌

    题意 xff1a 牌局由四个人构成 xff0c 围成一圈 我们称四个方向为北 东 南 西 对应的英文是North xff0c East xff0c South xff0c West 游戏一共由一副扑克 xff0c 也就是52张构成 开始 x
  • 【程序设计思维与实践 Week5 作业D】滑动窗口

    题目描述 xff1a 有一个长度为 n 的数列和一个大小为 k 的窗口 窗口可以在数列上来回移动 现在 我们想知道在窗口从左往右滑的时候 xff0c 每次窗口内数的最大值和最小值分别是多少 例如 xff1a 数列是 1 3 1 3 5 3
  • 【Week8 CSP-M2 C】咕咕东的奇妙序列

    题目描述 格式说明 样例输入 样例输出 数据规模 思路 由题知 xff0c 这个无限序列的第i部分是从1 i的子序列 xff0c 该解法的大体思路是我们首先确定要查询的项 设为k项 在无限序列的第几部分 第几个子序列 xff0c 然后再从这
  • 【Week 8 作业A】区间选点II

    题目描述 给定一个数轴上的 n 个区间 xff0c 要求在数轴上选取最少的点使得第 i 个区间 ai bi 里至少有 ci 个点 输入格式 输入第一行一个整数 n 表示区间的个数 xff0c 接下来的 n 行 xff0c 每一行两个用空格隔
  • 【Week 8 作业 B】猫猫向前冲

    题目描述 众所周知 xff0c TT 是一位重度爱猫人士 xff0c 他有一只神奇的魔法猫 有一天 xff0c TT 在 B 站上观看猫猫的比赛 一共有 N 只猫猫 xff0c 编号依次为1 xff0c 2 xff0c 3 xff0c xf
  • 【Week 9 作业 A】咕咕东的目录管理器

    题目描述 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响 xff0c 时不时发生故障 xff0c 他受不了了 xff0c 想要写一个高效易用零bug的操作系统 这工程量太大了 xff0c 所以他定了一个小目标 xff0c 从实现一个目
  • 【Week 11 作业】必做题

    Week 11 必做题 A 必做题 1题目描述输入格式输出格式输入样例输出样例思路代码 B 必做题 2题目描述输入格式输出格式数据范围样例输入样例输出思路代码 C 必做题 3题目描述输入格式输出格式样例输入样例输出思路代码 D 必做题 4题
  • 【Week 12 作业】必做题

    Week12必做题 必做题1题目描述输入格式输出格式输入样例输出样例代码 必做题2题目描述输入格式输出格式输入样例输出样例思路注意代码 必做题3题目描述输入格式输出格式输入样例输出样例思路代码 必做题1 题目描述 给出n个数 xff0c z
  • 【Week 13 作业E】TT的神秘任务3

    题目描述 TT 猫咖的生意越来越红火 xff0c 人越来越多 xff0c 也越来越拥挤 为了解决这个问题 xff0c TT 决定扩大营业规模 xff0c 但猫从哪里来呢 xff1f TT 第一时间想到了神秘人 xff0c 想要再次通过完成任
  • 【Week 14 作业E】Q老师度假

    题目描述 忙碌了一个学期的 Q老师 决定奖励自己 N 天假期 假期中不同的穿衣方式会有不同的快乐值 已知 Q老师 一共有 M 件衬衫 xff0c 且如果昨天穿的是衬衫 A xff0c 今天穿的是衬衫 B xff0c 则 Q老师 今天可以获得
  • Git安装和Azure DevOps使用

    Git安装和Azure DevOps使用 为了方便团队开发 xff0c 需要用到Azure DevOps作为代码仓库 xff0c DevOps需要用到Git环境 xff0c 如果你已经安装git请跳过前两步 本次重点是介绍DevOps克隆项
  • 【Week 15 作业B】ZJM与生日礼物

    题目描述 ZJM 收到了 Q老师 送来的生日礼物 xff0c 但是被 Q老师 加密了 只有 ZJM 能够回答对 Q老师 的问题 xff0c Q老师 才会把密码告诉 ZJM Q老师 给了 ZJM 一些仅有 01 组成的二进制编码串 他问 ZJ
  • 【Week 15 作业C】ZJM与纸条

    题目描述 ZJM 的女朋友是一个书法家 xff0c 喜欢写一些好看的英文书法 有一天 ZJM 拿到了她写的纸条 xff0c 纸条上的字暗示了 ZJM 的女朋友 想给 ZJM 送生日礼物 ZJM 想知道自己收到的礼物是不是就是她送的 xff0
  • 【Week 16】CSP-M4

    TT数鸭子 题目描述 输入输出描述 样例 思路 对每个数字按数位进行遍历 xff0c 求取不重复数字个数即可 代码 span class token macro property span class token directive key