第六届 传智杯初赛B组

文章目录

    • A. 字符串拼接
      • 🍻 AC code
    • B. 最小差值
      • 🍻 AC code
    • C. 红色和紫色
      • 🍻 AC code
    • D. abb
      • 🍻 AC code
    • E. kotori和素因子
      • 🍻 AC code
    • F. 红和蓝
      • 🍻 AC code


🥰 Tips:AI可以把代码从 java 转成其他语言的版本,思路比语言更重要。

A. 字符串拼接

👨‍🏫 题目地址

在这里插入图片描述

🍻 AC code

#include <iostream>
using namespace std;int main() {string a, b;getline(cin,a);getline(cin,b);cout << a + b << endl;return 0;
}

B. 最小差值

👨‍🏫 参考地址

🍻 AC code

import java.util.*;
import java.io.*;public class Main {static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));public static void main(String[] args) throws NumberFormatException, IOException {int n = Integer.parseInt(in.readLine());int[] a = new int[n];String[] ss = in.readLine().split(" ");for(int i =0; i < n; i++)a[i] = Integer.parseInt(ss[i]);Arrays.sort(a);//排序int min = Integer.MAX_VALUE;for(int i =1; i < n; i++)min = Math.min(min, a[i]-a[i-1]);//算差值out.write(min + "");out.flush();}
}

C. 红色和紫色

👨‍🏫 题目地址
在这里插入图片描述

🍻 AC code

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();long ans = (long)n*m;if(ans % 2 == 0)System.out.println("yukari");else {System.out.println("akai");}}
}

D. abb

👨‍🏫 题目地址

🐷 思路:统计字符串中 a~z 每个字符出现的次数存在 cnt 数组中,根据题意,从前往后枚举 abb中的 a,没枚举一位就减去当前位上的字符数量,这样 cnt[ ] 的字符数量就是当前位往后的字符出现次数了,根据 cnt[ ] 来计算 abb中的bb的情况,使用组合数公式即可
C n m = n ! ( n − m ) ! × m ! C_n^m = \frac{n!}{(n-m)!\times m!} Cnm=(nm)!×m!n!

🍻 AC code

import java.util.*;
import java.io.*;public class Main {static long mod = (int)1e9+7;static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));static int N = (int)1e5+10;static int[] cnt = new int[256];//统计字母出现次数//	C(x,2) = x! / 2! (引以为戒)
//	C(x,2) = x! / (2! * (x-2)!) = x * x -1 / 2private static long cal(int x) {long ans = x*(x-1)/2;return ans;}public static void main(String[] args) throws IOException {int n = Integer.parseInt(in.readLine());String s = in.readLine();char[] a = s.toCharArray();n = a.length;long ans = 0;for(int i = 0; i < n; i++)cnt[a[i]]++;for(int i = 0; i < n-1; i++){char c = a[i];cnt[c]--;for(int j = 'a'; j <= 'z'; j++){if(j == c)continue;if(cnt[j] >= 2) {{long t = cal(cnt[j]) % mod;ans += t;}}}}out.write(ans+"\n");out.flush();}
}

E. kotori和素因子

👨‍🏫 题目地址

🐷 思路:先预处理出 0 到 1000 的所有质数,接着找到每个整数的所有质数因子存在因子数组中。根据题意,每个整数需要选出独一无二质因子,由于数据范围比较小 1 ≤ n ≤ 10 1 \le n \le 10 1n10,所以可以直接 dfs 枚举每个整数选取哪个质因子。

🍻 AC code

import java.util.*;public class Main {static int N = 15,n,INF = 0x3f3f3f3f;static int[] a = new int[N];//整数数组static int[] p = new int[300];//存2~1000的质数static int cnt = 0;//2~1000的质数个数static ArrayList[] factors = new ArrayList[N];//存每个整数的质因数
//	static boolean[] st = new boolean[N];static HashSet<Integer> st = new HashSet<>();//记录已经使用过的质数(st:state 状态)static int ans = INF;//答案public static void main(String[] args) {getPrimes();Scanner sc = new Scanner(System.in);n = sc.nextInt();for(int i =0; i < n; i++){factors[i] = new ArrayList<Integer>();a[i] = sc.nextInt();ArrayList<Integer> t = cal(a[i]);factors[i] = t;}dfs(0,0);if(ans != INF)System.out.println(ans);else {System.out.println(-1);}}//	x 表示当前搜索到的第几个整数private static void dfs(int x,int sum) {if(x == n){ans = Math.min(sum, ans);return;}ArrayList<Integer> ls = factors[x];boolean flag = false;for(Integer xx : ls){if(st.contains(xx))continue;flag = true;st.add(xx);dfs(x+1, sum + xx);st.remove(xx);}if(!flag)return;}//	返回 x 的所有质因数private static ArrayList<Integer> cal(int x) {ArrayList<Integer> ans = new ArrayList<Integer>();for(int i = 0; i < cnt; i++)if(x % p[i] == 0)ans.add(p[i]);return ans;	}//	预处理质数数组private static void getPrimes() {p[cnt++] = 2;for (int i = 3; i <= 1000; i++)if (isP(i))p[cnt++] = i;}//	判断x是否为质数private static boolean isP(int x) {for(int i = 2; i*i <= x; i++)if(x % i == 0)return false;return true;}
}

F. 红和蓝

👨‍🏫 题目地址
🐷 思路:如果叶子结点为一种颜色时,它的周围只有其父亲结点,所以父亲结点必须和它同色

🍻 AC code


import java.util.*;
import java.io.*;public class Main {static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));static int N = 200010,n,idx;
//	以无向图的邻接表形式存树static int[] h = new int[N];static int[] e = new int[N];static int[] ne = new int[N];static int[] cnt = new int[N];//存储每个节点包含多少个叶子节点(要求当前节点同色的节点)static int[] sz = new int[N];//存储每个节点所包含的子树的节点数量//	加边函数static void add(int a,int b){e[idx] = b;ne[idx] = h[a];h[a] = idx++;}//	u表示当前节点,p表示父结点static boolean dfs(int u,int p){sz[u] = 1;//初始化为1,表示当前节点自身for(int i = h[u]; i != -1; i = ne[i]){int j = e[i];if(j == p)continue;//存的是无向边,特判 父 --> 子 --> 父 的情况if(!dfs(j, u))return false;sz[u] += sz[j];//子树节点数量累加到当前节点的sz值上if((sz[j] & 1 )== 1)//当子树j的结点数为奇数时,当前节点u必须与节点j同色cnt[u]++;}if(cnt[u] > 1 )//两个叶子节点要求同色,无解return false;return true;}static int[] ans = new int[N];//答案数组
//	再跑一次搜索染色,0表示红色R,1表示蓝色B
//	u表示当前节点,p表示父结点, c表示颜色static void dfs2(int u,int p,int c){ans[u] = c;for(int i = h[u]; i != -1; i = ne[i]){int j = e[i];if(j == p)continue;if((sz[j] & 1) == 1)dfs2(j, u, c);else {dfs2(j, u, 1-c);}}}public static void main(String[] args) throws Exception {Arrays.fill(h, -1);n = Integer.parseInt(in.readLine());for(int i = 1; i < n; i++){String[] ss = in.readLine().split(" ");int a = Integer.parseInt(ss[0]);int b = Integer.parseInt(ss[1]);add(a, b);add(b, a);}if(n % 2 == 1){System.out.println(-1);System.exit(0);}if(!dfs(1, -1)){System.out.println(-1);return;}dfs2(1, -1, 0);for(int i = 1; i <= n; i++)System.out.print(ans[i] == 0 ? "R" : "B");
//			if(ans[i] != 0)
//				System.out.print("B");
//			else {
//				System.out.print("R");
//			}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/172439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android获取原始图片Bitmap的宽高大小尺寸,Kotlin

Android获取原始图片Bitmap的宽高大小尺寸&#xff0c;Kotlin val options BitmapFactory.Options()options.inJustDecodeBounds trueval decodeBmp BitmapFactory.decodeResource(resources, R.mipmap.p1, options)//此时&#xff0c;decode出来的decodeBmp宽高并不是原始图…

C++通讯录管理系统

目录 系统需求 1、 创建项目 2、 菜单功能设计 3、 退出功能设计 4、 添加联系人功能设计 4.1 设计联系人结构体 4.2 设计通讯录结构体 4.3 在main函数中创建通讯录 4.4 封装添加联系人函数 4.5 添加联系人功能测试 5、 显示联系人功能设计 5.1 封装显示…

算法基础之合并集合

合并集合 核心思想:并查集: 1.将两个集合合并2.询问两个元素是否在一个集合当中 基本原理:每个集合用一棵树表示 树根的编号就是整个集合的编号 每个节点存储其父节点&#xff0c;p[x]表示x的父节点 #include<iostream>using namespace std;const int N100010;int p[N];…

Huggingface 超详细介绍

Hugging face 起初是一家总部位于纽约的聊天机器人初创服务商&#xff0c;他们本来打算创业做聊天机器人&#xff0c;然后在github上开源了一个Transformers库&#xff0c;虽然聊天机器人业务没搞起来&#xff0c;但是他们的这个库在机器学习社区迅速大火起来。目前已经共享了超…

【C++初阶】二、入门知识讲解(引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr)

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【C初阶】一、入门知识讲解 &#xff08;C关键字、命名空间、C输入&输出、缺省参数、函数重载&#xff09;-CSDN博客 六 . 引用 &#xff08;1&#xff09;. 引用的概念和特性…

Hugging Face宣布最受欢迎的AI机构,开源模型ChatGLM-6B广受认可

近日&#xff0c;Hugging Face作为开源AI社区的代表&#xff0c;总结了社区最欢迎的前15个公司和机构&#xff0c;几乎囊括了全部国内外风头正盛的AI科技机构&#xff0c;Stability AI、Meta AI、Runway占据排名前三&#xff0c;大众熟知的OpenAI、谷歌、微软也榜上有名。 其中…

医学检验(LIS)管理系统源码,LIS源码,云LIS系统源码

医学检验(LIS)管理系统源码&#xff0c;云LIS系统全套商业源码 随着全自动生化分析仪、全自动免疫分析仪和全自动血球计数器等仪器的使用&#xff0c;检验科的大多数项目实现了全自动化分析。全自动化分析引入后&#xff0c;组合化验增多&#xff0c;更好的满足了临床需要&…

php订单发起退款(余额和微信支付)

index.html <a class"btn btn-danger btn-change btn-tuikuan btn-disabled" href"javascript:;"><i class"fa fa-tuikuan"></i> 订单退款</a>-->order.js // 为表格绑定事件Table.api.bindevent(table);//退款按钮…

056-第三代软件开发-软件打包

第三代软件开发-软件打包 文章目录 第三代软件开发-软件打包项目介绍软件打包1 下载 linuxdepoyqt 工具2 安装 linuxdepoyqt3 qmake配置4 打包程序 总结 关键字&#xff1a; Qt、 Qml、 linuxdeployqt、 Ubuntu、 AppImage 项目介绍 欢迎来到我们的 QML & C 项目&…

本地运行“李开复”的零一万物 34B 大模型

这篇文章&#xff0c;我们来聊聊如何本地运行最近争议颇多的&#xff0c;李开复带队的国产大模型&#xff1a;零一万物 34B。 写在前面 零一万物的模型争议有很多&#xff0c;不论是在海外的社交媒体平台&#xff0c;还是在国内的知乎和一种科技媒体上&#xff0c;不论是针对…

基恩士软件的基本操作(五,日志记录与使用)

目录 基恩士是如何保存日志的&#xff1f; 如何使用日志功能 查看DM10的值1秒加1的记录日志 设定id与储存位置 软元件设定&#xff08; 日志ID有10个&#xff08;0~10&#xff09;&#xff0c;每一个ID最多添加512个软元件&#xff09; 设定触发 执行日志的梯形图程序 触…

【Amazon】在Amazon EKS集群中安装部署最小化KubeSphere容器平台

文章目录 一、准备工作二、部署 KubeSphere三、访问 KubeSphere 控制台四、安装Amazon EBS CSI 驱动程序4.1 集群IAM角色建立并赋予权限4.2 安装 Helm Kubernetes 包管理器4.3 安装Amazon EBS CSI 驱动程序 五、常见问题六、参考链接 一、准备工作 Kubernetes 版本必须为&…

i社为什么不出游戏了?

I社&#xff0c;即国际知名的游戏公司&#xff0c;近来为何鲜有新游问世&#xff1f;曾经风靡一时的游戏开发者&#xff0c;如今为何陷入了沉寂&#xff1f;这其中的种种原因&#xff0c;值得我们深入剖析。 首先&#xff0c;I社近期的沉寂可能与其内部管理层的调整和战略规划…

Scrum敏捷开发培训团队和组织来说的重要性

Scrum敏捷开发培训对于团队和组织来说是至关重要的&#xff0c;有以下几点&#xff0c;大家可以参考下&#xff1a; 理解敏捷价值观和原则&#xff1a; 培训有助于团队理解敏捷方法背后的核心理念和价值观&#xff0c;包括个体和互动、工作软件、客户合作和响应变化。这有助于建…

RESTful API 架构快速入门 Flask实现

RESTful 简介 1.1 为什么要使用 RESTful 架构&#xff1f; Representational State Transfer&#xff08;REST&#xff09;是一种面向资源的架构风格&#xff0c;广泛应用于网络服务的设计和开发。使用RESTful架构有以下几个优点&#xff1a; 简单性和可扩展性&#xff1a; RE…

[LaTex]arXiv投稿攻略——jpg/png转pdf

一、将图片复制进ppt&#xff0c;右键单击图片选择设置图片格式&#xff0c;获取图片高度和宽度 二、选择“设计-幻灯片大小-自定义幻灯片大小” 三、设置幻灯片大小为图片大小 四、 选择“最大化” 五、 检查幻灯片大小是否与图像大小一致 六、导出为PDF

浅谈Python中的鸭子类型和猴子补丁

文章目录 前言一、鸭子类型二、猴子补丁关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 前言 Python 开发者可能…

springboot打印启动信息

打印启动信息 转载自:www.javaman.cn 1 spring Bean实例化流程 基本流程&#xff1a; 1、Spring容器在进行初始化时&#xff0c;会将xml或者annotation配置的bean的信息封装成一个BeanDefinition对象&#xff08;每一个bean标签或者bean注解都封装成一个BeanDefinition对象&a…

【Vulnhub靶机】Jarbas--Jenkins

文章目录 信息收集主机发现端口扫描目录爆破 漏洞探测whatwebhash-identifierwhatweb 文档说明&#xff1a;https://www.vulnhub.com/entry/jarbas-1,232/ 靶机下载&#xff1a;Download (Mirror): 信息收集 主机发现 扫描C段 sudo nmap -sn 10.9.75.0/24端口扫描 sudo nma…

装饰者设计模式

package com.jmj.pattern.decorator;/*** 快餐类(抽象构建角色)*/ public abstract class FastFood {private float price;private String desc;public float getPrice() {return price;}public void setPrice(float price) {this.price price;}public String getDesc() {retu…