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

embedded/2025/3/15 16:57:11/

	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/embedded/172817.html

相关文章

Vue 中如何使用 nextTick?

在 Vue.js 中&#xff0c;nextTick 是一个非常重要的 API&#xff0c;用于处理与 DOM 更新相关的异步操作。它允许开发者在下次 DOM 更新循环结束之后执行代码。这在涉及到需要依赖于更新后的 DOM 状态的场景中尤其有用。本文将详细探讨 nextTick 的用法、应用场景以及最佳实践…

jmeter分布式原理及实例

一、执行原理 二、相关注意事项 关闭防火墙所有上网控制机、代理机、服务器都在同一个网络上所有机器的jmeter和java版本必须一致关闭RMI.SSL开关 三、配置和执行 配置&#xff1a; 修改bin/jmeter.properties文件&#xff1a; 代理机&#xff1a; 修改服务端口&#xff1…

23 详解闭包

1. 闭包的定义 闭包是一个函数对象&#xff0c;它可以访问其所在作用域之外的变量。具体来说&#xff0c;闭包是由函数及其相关的引用环境组合而成的实体。 2、闭包的特点&#xff1a; 必须有一个内嵌函数&#xff08;函数中定义的函数&#xff09;内嵌函数必须引用外部函数…

OpenCV图像加权函数:addWeighted

1 addWeighted函数 在OpenCV 里&#xff0c;addWeighted 函数的作用是对两个图像进行加权求和&#xff0c;常用于图像融合、图像过渡等场景。函数如下&#xff1a; cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]])2 参数解释 src1&#xff1a;第一个输入图…

Qt-开发设置窗体透明效果

一、前言 在音频开发中&#xff0c;窗体多半为半透明、圆角窗体&#xff0c;如下为Qt 5.5 VS2013实现半透明方法总结。 二、半透明方法设置 1、窗体及子控件都设置为半透明 1&#xff09;setWindowOpacity(0.8);//参数范围为0-1.0&#xff0c;通过QSlider控件做成透明度控制条…

证券交易系统的流程

证券交易系统的流程通常包括账户开立、资金存入、下单交易、撮合成交、清算交割和资金划转等环节。以下是证券交易的完整流程&#xff0c;按照时间顺序排列&#xff1a; 一、开户 在进行证券交易前&#xff0c;投资者需要开设以下账户&#xff1a; 证券账户&#xff08;由证券…

Mac M1 切换Java版本

下载地址&#xff1a;Java 8, 11, 17, 21, 23 Download for Linux, Windows and macOS 安装 Java 8&#xff1a;下载完成后&#xff0c;双击 .dmg 文件&#xff0c;接着在打开的窗口中双击 .pkg 文件&#xff0c;按照安装向导完成安装。 vim ~/.bashrcexport JAVA_8_HOME/Lib…

使用服务器如何DNS呢

莱卡云服务器 DNS 配置指南 一、配置云服务器本地 DNS ‌修改网络配置文件‌ ‌Ubuntu/Debian‌&#xff1a; bashCopy Code sudo nano /etc/network/interfaces # 添加或修改 DNS 配置 dns-nameservers 8.8.8.8 8.8.4.4 *&#xff08;保存后重启网络服务&#xf…