蓝桥杯第二天:2023省赛C 1题 分糖果

news/2025/3/15 23:33:48/

	public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n,x;n = scan.nextInt();x = scan.nextInt();String res1;res1 = scan.next();char res[] = res1.toCharArray();Arrays.sort(res);//第一种情况:糖果是aaaaaa...这种类型的(一个种类的)if(res[0]==res[n-1]) {int n1 = n/x;for(int i = 0;i<n1;i++) {System.out.print(res[i]);}n1 = n%x;//看看有没有剩余的if(n1!=0)System.out.print(res[0]);//  int count = n / x + (n % x == 0 ? 0 : 1);//       for (int i = 0; i < count; i++) System.out.print(res[i]);}//第二种情况 :糖果是假设aaabbbccc x=1(x小于首字母的个数) else if(res[0]==res[x-1]) {// aaabcdefg 三个人 这种必须是 a  a  abcdefg 如果剩下的这些(bcdefg)让三个人平分的话,就不能保证最小的是ab..打头的了for(int i = x-1;i<n;i++) {System.out.print(res[i]);}	}//第三种情况 :糖果是假设abbbccc x=5(x小于首字母的个数) abceeee 3else if(res[0]!=res[x-1]){//如abceeee 3 这个例子, a 打头给一个人  b 打头给一个人, c 给一个人 剩下eeee这些分给a 、b打头的这俩,最大的还是cSystem.out.print(res[x-1]);}}

 代码虽然能通过100%测试用例(20个)但是有一种情况不能处理

这种情况应该输出ab就是三个都一样,

把第二部分代码修改一下就好了,加一种判断这种类型:

好了完整代码是这样的

	public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n,x;n = scan.nextInt();x = scan.nextInt();String res1;res1 = scan.next();char res[] = res1.toCharArray();Arrays.sort(res);//第一种情况:糖果是aaaaaa...这种类型的(一个种类的)if(res[0]==res[n-1]) {int n1 = n/x;for(int i = 0;i<n1;i++) {System.out.print(res[i]);}n1 = n%x;//看看有没有剩余的if(n1!=0)System.out.print(res[0]);//  int count = n / x + (n % x == 0 ? 0 : 1);//       for (int i = 0; i < count; i++) System.out.print(res[i]);}//第二种情况 :糖果是假设aaabbbccc x=1(x小于首字母的个数) else if(res[0]==res[x-1]) {// aaabcdefg 三个人 这种必须是 a  a  abcdefg 如果剩下的这些(bcdefg)让三个人平分的话,就不能保证最小的是ab..打头的了int flag = 0;	if(n%x==0) {flag = 1;	for(int i = 1;(x*(i+1)-1)<n;i++) {if(res[x*i]!=res[x*(i+1)-1]) {flag = 0;break;}}}if(flag==0) {for(int i = x-1;i<n;i++) {System.out.print(res[i]);}	}else {for(int i =0;i<n;i=i+x) {System.out.print(res[i]);}}}//第三种情况 :糖果是假设abbbccc x=5(x小于首字母的个数) abceeee 3else if(res[0]!=res[x-1]){//如abceeee 3 这个例子, a 打头给一个人  b 打头给一个人, c 给一个人 剩下eeee这些分给a 、b打头的这俩,最大的还是cSystem.out.print(res[x-1]);}}

进行调试:可以满足这种情况了


http://www.ppmy.cn/news/1579428.html

相关文章

宇树ROS1开源模型在ROS2中Gazebo中仿真

以GO1为例 1. CMakelists.txt更新语法 cmake_minimum_required(VERSION 3.8) project(go1_description) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")add_compile_options(-Wall -Wextra -Wpedantic) endif() # find dependencies find…

C语言零基础入门:嵌入式系统开发之旅

C语言零基础入门&#xff1a;嵌入式系统开发之旅 一、引言 嵌入式系统开发是当今科技领域中一个极具魅力和挑战性的方向。从智能家居设备到汽车电子系统&#xff0c;从智能穿戴设备到工业自动化控制&#xff0c;嵌入式系统无处不在。而C语言&#xff0c;作为嵌入式开发中最常…

用CSS画一条0.5px的线

上次面试前端被问到了这个问题&#xff0c;感觉有点懵懵的&#xff0c;我就回答了一个scaleY(0.5),这个是真的没想到&#xff0c;希望有需要的朋友可以去看看。随便记住一种就行。 1.第一种方式&#xff1a;通过缩放1px的线条实现视觉上的0.5px效果&#xff0c;兼容性较好。 …

外层元素旋转,其包括在内的子元素一并旋转(不改变旋转中心),单元测试

思路&#xff1a;外层旋转后坐标&#xff0c;元素旋转后坐标&#xff0c;计算偏移坐标 <template><div class"outbox"><label>角度: <input v-model.number"rotate" type"number" /></label><br><div c…

Linux驱动开发实战(五):Qt应用程序点RGB灯(保姆级快速入门!)

Linux驱动开发实战&#xff08;五&#xff09;&#xff1a;Qt应用程序点RGB灯&#xff08;保姆级快速入门&#xff01;&#xff09; 文章目录 Linux驱动开发实战&#xff08;五&#xff09;&#xff1a;Qt应用程序点RGB灯&#xff08;保姆级快速入门&#xff01;&#xff09;前…

Oracle中In和Exists区别分析

在Oracle中&#xff0c;IN和EXISTS都是用于子查询的条件判断&#xff0c;但它们在执行逻辑、性能和应用场景上有显著区别。以下是两者的主要差异&#xff1a; 1.执行机制 IN IN 先执行子查询&#xff0c;将子查询的结果集缓存到内存中&#xff0c;生成一个静态列表。 主查询的…

本地化语音识别CapsWriter结合内网穿透远程会议录音秒变文字稿

文章目录 前言1. 软件与模型下载2. 本地使用测试3. 异地远程使用3.1 内网穿透工具下载安装3.2 配置公网地址3.3 修改config文件3.4 异地远程访问服务端 4. 配置固定公网地址4.1 修改config文件 5. 固定tcp公网地址远程访问服务端 前言 今天我要给大家推荐一个绝对能让你 produ…

【Javascript网页设计】个人简历网页案例

代码如下: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>个人简历 - 张三…