CSP M4 (A - TT数鸭子)(B - ZJM要抵御宇宙射线)(C - 宇宙狗的危机)

2023-05-16

CSP M4

  • A - TT数鸭子
    • 思路
    • 代码
  • B - ZJM要抵御宇宙射线
    • 思路
    • 代码
  • C - 宇宙狗的危机
    • 思路
    • 代码

A - TT数鸭子

思路

给你n个很多未的数,然后有个k表示最大能有k-1位数是不一样的,输出符合的数的个数(大概就这个意思)

因为是位数(十位百位千位),所以k最大就是10(0-9),然后去遍历每个数(字符串存储)判断一下就可以了。

代码

#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<iomanip>
#include<bitset>
#define llong long long
#define For(i,a,n) for(register int i=a;i<=n;i++)
#define RF(i,a,n) for(register int i=a;i>=n;i--)
#pragma GCC optimize(2)
using namespace std;

const int maxn = 100005;
int n, k, cnt, ans;
int b[15];
string s;

int main()
{
    ios::sync_with_stdio(false);
    cin>>n>>k;
    For(i,1,n){
    	memset(b,0,sizeof(b));
    	cnt = 0;
    	cin>>s;
    	int len = s.length();
    	For(j,0,len-1){
    		int t = s[j]-'0';
    		if(!b[t]){
    			cnt++;
    			b[t] = 1;
    		}
    	}
    	if(cnt<k) ans++;
    }
    cout<<ans<<endl;
    return 0;
}

B - ZJM要抵御宇宙射线

思路

给你n个点,然后求圆心(在这些点中)而且包含全部点的最小半径的平方
暴力就完事了,主要还是题目没仔细看导致0分。。。

  • 圆心在这些点中
  • 遍历每个点,求每个点与其他点的最大距离。
  • 答案取所有点当圆心中半径距离最小的。
  • 输出半径的平方

代码

#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<iomanip>
#define llong long long
#define For(i,a,n) for(register int i=a;i<=n;i++)
#define RF(i,a,n) for(register int i=a;i>=n;i--)
#pragma GCC optimize(2)
using namespace std;

const int maxn = 100005;
struct node{
	double x, y;
	bool operator < (const node& b) const{
		if(x==b.x) return y<b.y;
		return x<b.x;
	}
}v[maxn];
int n, tot, idx;
double maxd = 1e15, maxt;

int main()
{
    ios::sync_with_stdio(false);
    cin>>n;
    For(i,1,n){
    	cin>>v[i].x>>v[i].y;
    }
    sort(v+1,v+1+n);
    For(i,1,n){
    	maxt = 0;
    	For(j,1,n){
    		if(i==j) continue;
    		double t = (v[i].x-v[j].x)*(v[i].x-v[j].x)+(v[i].y-v[j].y)*(v[i].y-v[j].y);
    		if(t>maxt){
    			maxt = t;
    		}
    	}
    	if(maxt<maxd){
    		maxd = maxt;
    		idx = i;
    	}
    }
    cout<<fixed<<setprecision(2)<<v[idx].x<<" "<<v[idx].y<<endl<<maxd<<endl;
    return 0;
}

C - 宇宙狗的危机

思路

给你个n个数的升序数组,问是否能构成一颗二叉搜索树。
刚开始想着用分段去做,但是没想到是区间dp。。。

  • 用一个数组b记录一下a[i]和a[j]的gcd是否大于1,方便转移
  • 用两个数组LEFT、RIGHT记录左右子树的情况
  • 区间LEFT[L, k]和区间RIGHT[k,R]可以,区间FINAL[L, R]才可以
  • 用LEFT[L, R]更新RIGHT[L-1, R],用RIGHT[L, R]更新LEFT[L, R+1]

区间dp的核心代码

for(int i=1; i<=n; i++){	//枚举长度
	for(int l = 1, r = l+i-1; r<=n; l++, r++){	//枚举起点
		for(int k=l; k<=r; k++){	//枚举分割点
			if(lf[l][k] && rg[k][r]){
				m[l][r] = 1;
				if(b[l-1][k]) rg[l-1][r] = 1; 
				if(b[k][r+1]) lf[l][r+1] = 1;
			}
		}
	}
}

代码

#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<iomanip>
#define llong long long
#define For(i,a,n) for(register int i=a;i<=n;i++)
#define RF(i,a,n) for(register int i=a;i>=n;i--)
#pragma GCC optimize(2)
using namespace std;

const int maxn = 705;
int t, n;
int a[maxn], m[maxn][maxn], b[maxn][maxn];
int lf[maxn][maxn], rg[maxn][maxn];

int main()
{
    ios::sync_with_stdio(false);
    cin>>t;
    while(t--){
        memset(m,0,sizeof(m));
        memset(lf,0,sizeof(lf));
        memset(rg,0,sizeof(rg));
        cin>>n;
        For(i,1,n){
            cin>>a[i];
            lf[i][i] = rg[i][i] = m[i][i] = 1;
        }
        For(i,1,n){
            For(j,i+1,n){
                b[i][j] = __gcd(a[i],a[j])>1;
            }
        }
        For(i,1,n){
            for(int l = 1, r = l+i-1; r<=n; l++, r++){
                For(k,l,r){
                    if(lf[l][k] && rg[k][r]){
                        m[l][r] = 1;
                        if(b[l-1][k]) rg[l-1][r] = 1; 
                        if(b[k][r+1]) lf[l][r+1] = 1;
                    }
                }
            }
        }
        if(m[1][n]) 
            cout<<"Yes"<<endl;
        else 
            cout<<"No"<<endl;
    }
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSP M4 (A - TT数鸭子)(B - ZJM要抵御宇宙射线)(C - 宇宙狗的危机) 的相关文章

随机推荐

  • jieba,为中文分词而生的Python库

    jieba xff0c 为中文分词而生的Python库 中文分词 xff0c 通俗来说 xff0c 就是将一句 段 话按一定的规则 算法 拆分成词语 成语 单个文字 中文分词是很多应用技术的前置技术 xff0c 如搜索引擎 机器翻译 词性标
  • MDK的内嵌汇编与内联汇编

    内联汇编 asm 34 指令 34 这是内联汇编 而MDK下 xff0c 内联汇编仅支持ARM汇编语言 xff0c 不支持Thumb或者Thumb 2汇编语言 xff0c 但内嵌汇编器支持Thumb和Thumb 2 STM32的core c
  • 【李刚-21天通关Python-08】之 字典

    李刚 21天通关Python 08 之 字典 一 字典的概念 1 字典用于保存具有映射关系的数据 xff0c 字典相当于保存了两组数据 xff0c 其中一组数据被称为key xff0c 另一组数据可通过key来访问 xff0c 被称为val
  • 按键精灵 百度文字识别(百度ocr)OCRSpace文字识别

    目录 1 申请百度OCR服务1 1 百度OCR登录1 2 创建新应用1 3 免费领取次数1 3 查看是否创建成功 2 按键精灵运用百度OCR接口2 1 通用文字识别 xff08 高精度版 xff09 文档2 1 1 接口描述2 1 2 请求
  • Ubuntu系统扩大/home分区

    gparted是一款免费 开源的Linux下的具有图形用户界面的分区软件 在Ubuntu中 xff0c 可以使用如下命令安装 xff1a sudo apt get install gparted 之后就可以使用如下命令启动gparted s
  • sqlsever导入sql文件

    sqlsever导入sql文件 新建一个数据库 xff0c 数据库名与到导入的文件的数据库名一致 把文件拖入当前窗口 xff0c 把创建表的语句删除 xff0c creat table到go语句之前 xff08 因为创建表的路径不一样 xf
  • Python接口自动化——自动化测试分层(1)

    从本期开始 xff0c 我们会围绕 Python接口自动化 做专题连载 xff0c 今天开始做第一讲 自动化测试分层 目录 xff1a 1 1 1 1 单元自动化测试 2 1 1 2 接口自动化测试 3 1 1 3 UI自动化测试 现在流行
  • C++快读模板(读入整型数据)

    先上代码 span class token macro property span class token directive keyword include span span class token string lt iostream
  • Linux安装jenkins2.3详解

    Linux安装jenkins2 3详解 下载 官网下载jenkins xff0c 我们选择rpm包进行安装 xff1a 地址 xff1a https mirrors jenkins ci org redhat https get jenki
  • 程序设计思维 week4 作业C-TT 的神秘礼物

    题目 TT 是一位重度爱猫人士 xff0c 每日沉溺于 B 站上的猫咪频道 有一天 xff0c TT 的好友 ZJM 决定交给 TT 一个难题 xff0c 如果 TT 能够解决这个难题 xff0c ZJM 就会买一只可爱猫咪送给 TT 任务
  • 程序设计思维 week11 作业E-东东与ATM

    题目 一家银行计划安装一台用于提取现金的机器 机器能够按要求的现金量发送适当的账单 机器使用正好N种不同的面额钞票 xff0c 例如D k xff0c k 61 1 2 N xff0c 并且对于每种面额D k xff0c 机器都有n k张钞
  • 程序设计思维 CSP-M3

    T1 瑞神的数列 题目 Sample Input 12 2 3 3 6 6 6 1 1 4 5 1 4 Sample Output 8 思路 利用vector xff0c 使用vector lt int gt v储存数字 若v为空 xff0
  • ubuntu一段时间后突然无法上网

    在VMware中安装Ubuntu虚拟机 xff0c 总会发生无法上网的情况 xff0c 主要情况有以下几点 xff1a 宿主机可以上网 xff1b 虚拟机却无法访问网页虚拟机ping不通任何网站 xff0c 用浏览器显示error 一般情况
  • STM32 - 使用 HAL 库实现软件模拟 I2C

    不要让自己太懒的个人空间 I2C 的两个引脚 xff08 SCL 引脚和 SDA 引脚 xff09 需要既能输出又能输入 xff0c 为了避免复杂的配置操作需要把该引脚配置为开漏输出模式 xff0c 该模式的说明如下图所示 xff1a 当单
  • 二进制基础:补码,左移,右移

    binary 引入为什么要有补码特殊的值溢出数学移位逻辑位移逻辑右移的应用 引入 二进制是计算机的基础 xff0c 追根溯源还是因为Si的半导体性 除了二进制 xff0c 还有十六进制 xff0c 它是简化二进制的表示 做个测试 xff1a
  • GitLab配置SSH key

    1 我们已经有了gitlab的账户 xff0c 项目组已经将我们添加到了group 2 打开git bash xff0c 输入命令 ls al ssh 如果显示如下图 xff1a 则表示生成过key 可以去执行第4个步骤 否则的话执行第三个
  • centos误删python2后怎么重新安装

    此教程为离线安装 一 先查询系统版本 cat proc version Linux version 3 10 0 1127 el7 x86 64 mockbuild 64 kbuilder bsys centos org gcc versi
  • Week 6 H (A - 氪金带东)(B - 戴好口罩!)(C - 掌握魔法の东东 I)(D - 数据中心)

    Week 6 A 氪金带东题意思路代码 B 戴好口罩 xff01 题意思路代码 C 掌握魔法 东东 I题意思路代码 D 数据中心题意思路代码 A 氪金带东 题意 思路 首先 xff0c 这个图是棵树 解法 xff1a 三遍DFS 前两遍用来
  • CSP M2(A - HRZ 的序列)(B - HRZ 学英语)(C - 咕咕东的奇妙序列)

    CSP M2 A HRZ 的序列题意思路代码 B HRZ 学英语题意思路代码 C 咕咕东的奇妙序列题意思路代码 A HRZ 的序列 题意 思路 我们先求有多少个不同的数 xff0c 记为cnt xff0c 然后分情况进行处理 cnt gt
  • CSP M4 (A - TT数鸭子)(B - ZJM要抵御宇宙射线)(C - 宇宙狗的危机)

    CSP M4 A TT数鸭子思路代码 B ZJM要抵御宇宙射线思路代码 C 宇宙狗的危机思路代码 A TT数鸭子 思路 给你n个很多未的数 xff0c 然后有个k表示最大能有k 1位数是不一样的 xff0c 输出符合的数的个数 xff08