1:年龄问题

s夫人一向很神秘。这会儿有人问起她的年龄,她想了想说:

“20年前,我丈夫的年龄刚好是我的2倍,而现在他的年龄刚好是我的1.5倍”。

你能算出s夫人现在的年龄吗?

这道题就是暴力就可以了

40

2 : 海盗与金币

12名海盗在一个小岛上发现了大量的金币,后统计一共有将近5万枚。

登上小岛是在夜里,天气又不好。由于各种原因,有的海盗偷拿了很多,有的拿了很少。

后来为了“均贫富”,头目提出一个很奇怪的方案:

每名海盗都把自己拿到的金币放在桌上。然后开始一个游戏。

金币最多的海盗要拿出自己的金币来补偿其他人。

补偿的额度为正好使被补偿人的金币数目翻番(即变为原来的2倍)。

游戏要一直进行下去,直到无法完成。

(当金币数最多的不只一个人或最多金币的人持有金币数不够补偿他人的)

游戏就这样紧张地进行了,一直进行了12轮,恰好每人都“放血”一次,

更离奇的是,刚好在第12轮后,每个人的金币数居然都相等了!! 这难道是天意吗?

请你计算,游戏开始前,所有海盗的初始金币数目,从小到大排列,中间有一个空格分开。

答案形如:

8 15 29 58 110 …

当然,这个不是正确答案。

public class haidaoyujinbi {
public static void main(String[] args) { int[] b = new int[12];// 12名海盗 /**
* 有将近5万枚硬币可知范围 因为在第12轮后 每个人的金币数都相等了 所以12个人总的金币数 应该是12的倍数
*/
for (int i = 12; i < 50000; i += 12) {
for (int j = 0; j < 12; j++) {// 12轮后的结果
b[j] = i / 12;
}
dfs(b, 11, i);// 最后一个是最大的
} } /**
* b是这12个人手中的金币数 MaxIn是当前金币最多的那个人 sum为总的金币数
*/
public static void dfs(int[] b, int MaxIn, int sum) {
if (MaxIn < 0) {
for (int i = 11; i >= 0; i--) {
System.out.print(b[i] + " ");
}
// System.out.println("*"+sum);
return;
}
int count = 0;
for (int i = 0; i < 12; i++) {
if (i == MaxIn) {
continue;
} else {
if (b[i] % 2 != 0) {
return;
} else {
b[i] = b[i] / 2;
count += b[i];
}
}
}
b[MaxIn] = sum - count;
dfs(b, MaxIn - 1, sum);
}
} //结果为 13 25 49 97 193 385 769 1537 3073 6145 12289 24577

(这道题可以以后没有了,蓝桥杯第十届已经是五道结果填空,五道编程大题了)

3 全排列

对于某个串,比如:“1234”,求它的所有全排列。

并且要求这些全排列一定要按照字母的升序排列。

对于“1234”,应该输出(一共4!=24行):

1234

1243

1324

1342

1423

1432

2134

2143

2314

2341

2413

2431

3124

3142

3214

3241

3412

3421

4123

4132

4213

4231

4312

4321

下面是实现程序,请仔细分析程序逻辑,并填写划线部分缺少的代码。

// 轮换前k个,再递归处理
import java.util.*;
public class A
{
static void permu(char[] data, int cur){
if(cur==data.length-1){
System.out.println(new String(data));
return;
} for(int i=cur; i<data.length; i++){
char tmp = data[i];
for(int j=i-1; j>=cur; j--) data[j+1] = data[j];
data[cur] = tmp; permu(data, cur+1); tmp = data[cur];
__________________________________________ ;//for(int j = cur; j < i; j++) data[j] = data[j + 1]; 填空
data[i] = tmp;
}
} static void permu(String x){
permu(x.toCharArray(),0);
} public static void main(String[] args){
permu("1234");
}
}

4 约瑟夫环

n 个人的编号是 1~n,如果他们依编号按顺时针排成一个圆圈,从编号是1的人开始顺时针报数。

(报数是从1报起)当报到 k 的时候,这个人就退出游戏圈。下一个人重新从1开始报数。

求最后剩下的人的编号。这就是著名的约瑟夫环问题。

本题目就是已知 n,k 的情况下,求最后剩下的人的编号。

题目的输入是一行,2个空格分开的整数n, k

要求输出一个整数,表示最后剩下的人的编号。

约定:0 < n,k < 1百万

例如输入:

10 3

程序应该输出:

4

资源约定:

峰值内存消耗(含虚拟机) < 256M

CPU消耗 < 1000ms

import java.util.Scanner;

public class test1 {

	public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int k = in.nextInt();
System.out.println(cir(n,k));
} public static int cir(int n,int m){
int p=0;
for(int i=2;i<=n;i++){
p=(p+m)%i;
}
return p+1;
}
}

其他的方法都会超时的,只能过部分样例

这里应该使用约瑟夫环公式:详见下面链接,讲的很详细

https://blog.csdn.net/weixin_42318538/article/details/89294690

测试数据:

100 3 91

2000 196 1963

10000 6847 4442

520000 84795 7725

820000 88795 458467

820000 99999 188212

721000 100001 142837

951000 200001 102843

999999 222222 177380

5交换次数

IT产业人才需求节节攀升。业内巨头百度、阿里巴巴、腾讯(简称BAT)在某海滩进行招聘活动。

招聘部门一字排开。由于是自由抢占席位,三大公司的席位随机交错在一起,形如:

ABABTATT,这使得应聘者十分别扭。

于是,管理部门要求招聘方进行必要的交换位置,使得每个集团的席位都挨在一起。即最后形如:

BBAAATTT 这样的形状,当然,也可能是:

AAABBTTT 等。

现在,假设每次只能交换2个席位,并且知道现在的席位分布,

你的任务是计算:要使每个集团的招聘席位都挨在一起需要至少进行多少次交换动作。

输入是一行n个字符(只含有字母B、A或T),表示现在的席位分布。

输出是一个整数,表示至少交换次数。

比如,输入:

TABTABBTTTT

程序应该输出:

3

再比如,输入:

TTAAABB

程序应该输出:

0

我们约定,输入字符串的长度n 不大于10万

资源约定:

峰值内存消耗(含虚拟机) < 256M

CPU消耗 < 1000ms

这道题小白表示不会

6 自描述序列

小明在研究一个序列,叫Golomb自描述序列,不妨将其记作{G(n)}。这个序列有2个很有趣的性质:

  1. 对于任意正整数n,n在整个序列中恰好出现G(n)次。
  2. 这个序列是不下降的。

以下是{G(n)}的前几项:

n 1 2 3 4 5 6 7 8 9 10 11 12 13

G(n) 1 2 2 3 3 4 4 4 5 5 5 6 6

给定一个整数n,你能帮小明算出G(n)的值吗?

输入

一个整数n。

对于30%的数据,1 <= n <= 1000000

对于70%的数据,1 <= n <= 1000000000

对于100%的数据,1 <= n <= 2000000000000000

输出

一个整数G(n)

【样例输入】

13

【样例输出】

6

资源约定:

峰值内存消耗(含虚拟机) < 256M

CPU消耗 < 1000ms

这道题小白表示不会

如果哪位大佬会的话能不能私信告诉我一下

如果需要往届真题测试数据加我QQ:1439775520

第九届蓝桥杯JavaC组决(国)赛真题的更多相关文章

  1. 第九届蓝桥杯JavaC组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.哪天返回 题目描述 小明被不明势力劫持.后被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文. ...

  2. 2018年第九届蓝桥杯B组题C++汇总解析-fishers

    2018年第九届蓝桥杯B组题C++解析-fishers 题型 第一题:第几天 第二题:明码 第三题:乘积尾零 第四题:测试次数 第五题:快速排序 第六题:递增三元组 第七题:螺旋折线 第八题:日志统计 ...

  3. 第十届蓝桥杯JavaC组省赛真题

    试题 A: 求和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1.2.9.10 至 32.39 和 40,共 28 个,他们的 ...

  4. Java实现第十届蓝桥杯JavaC组第十题(试题J)扫地机器人

    扫地机器人 时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分 [问题描述] 小明公司的办公区有一条长长的走廊,由 N 个方格区域组成,如下图所 示. 走廊内部署了 K 台扫地机器人 ...

  5. [算法竞赛][2018][蓝桥杯][LanqiaoCA]第九届蓝桥杯A组

    题目1 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + .... 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来.类似:3/2当然,这只是加了前2项 ...

  6. 第九届蓝桥杯JavaB组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.第几天 题目描述 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数 ...

  7. 第九届蓝桥杯JavaA组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.分数 题目描述 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + - 每项是前一项的一半,如果一共有20项, 求这个和是多 ...

  8. 2018年第九届蓝桥杯B组第四题:摔手机题解

    摔手机 摔手机 动态规划  在蓝桥杯的时候遇到一次 当时没有做对  看了题解也没明白  如今再次遇到这个类似的题目 于是拿出来补补吧 摔手机题目如下: 星球的居民脾气不太好,但好在他们生气的时候唯一的 ...

  9. 第六届蓝桥杯JavaC组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.机器人数目 少年宫新近邮购了小机器人配件,共有3类,其中, A类含有:8个轮子,1个传感器 B类含有: 6个轮子,3个传感器 C类含有 ...

随机推荐

  1. 你应该知道的Python3.6、3.7、3.8新特性

    很多人在学习了基本的Python语言知识后,就转入应用阶段了,后期很少对语言本身的新变化.新内容进行跟踪学习和知识更新,甚至连已经发布了好几年的Python3.6的新特性都缺乏了解. 本文列举了Pyt ...

  2. 如何为Linux服务器添加磁盘

    Linux服务器如果磁盘不够用了,就需要增加新的磁盘,磁盘添加到使用通常有4个步骤.其中第一个步骤虚拟机和实体服务器有差别,后面三个步骤都是相同的,这里以VMWare虚拟机来进行演示如何添加磁盘. ( ...

  3. 微服务框架 ketchup 介绍

    1.背景 在ketchup诞生之前.期间也是用surging开发了两个项目.奈何surging没有文档,升级之后,只能从头在读一遍源码,了解新功能,会消耗大量的时间.商业化也使一些 想学习微服务的人望 ...

  4. 《机器学习_01_线性模型_线性回归_正则化(Lasso,Ridge,ElasticNet)》

    一.过拟合 建模的目的是让模型学习到数据的一般性规律,但有时候可能会学过头,学到一些噪声数据的特性,虽然模型可以在训练集上取得好的表现,但在测试集上结果往往会变差,这时称模型陷入了过拟合,接下来造一些 ...

  5. javascript----放大模式

    放大模式 1.介绍:放大模式降低模块之间直接的联系,降低耦合,当一个模块出现错误,不会影响另一个模块的功能

  6. Spring+Struts2+Hibernate框架搭建

    SSH框架版本:Struts-2.3.30  +  Spring-4.2.2  +  Hibernate5.2.2 下图是所需要的Jar包: 下面是项目的结构图: 1.web.xml <?xml ...

  7. HTML5新特性-- -定时器

    一.定时器:一次性定时器/周期性定时器 #requestAnimationFrame 智能定时器 #此定时器主要使用范围:动画和游戏中 特点: setTimeout(fn,500); setInter ...

  8. 第一章 Python 基础

    1. 为什么学习 Python? 答题路线:a.python的优点,b.python的应用领域广 具体: 优点 1.python语法非常优雅,简单易学 2.免费开源 3.跨平台,可以自由移植 4.可扩 ...

  9. 手机短号(hdu2081)

    这里字符串的输入用gets_s()函数. #include<stdio.h> using namespace std; int main() { int N; scanf_s(" ...

  10. Python一键获取日漫Top100榜单电影信息

    最近看到一个 UP 主做的视频,使用可视化动态图,把目前播放量最多的 UP 主一一列出来,结果第一名是哔哩哔哩番剧,第一名的播放量是第二名近 10 倍. B站的番剧数量,也是相对其他平台比较多的,而且 ...