目录

1 三角形面积

2 立方变自身

3 三羊献瑞

4 九数组分数

5 饮料换购

6 生命之树

 

前言:以下试题解答代码部分仅供参考,若有不当之处,还请路过的同学提醒一下~


1 三角形面积

三角形面积

如【图1】所示。图中的所有小方格面积都是1。
那么,图中的三角形面积应该是多少呢? 请填写三角形的面积。不要填写任何多余内容或说明性文字。 28
简单的数学平面几何问题:
大正方形面积-三个三角形面积 = 最终结果

2 立方变自身

立方变自身

观察下面的现象,某个数字的立方,按位累加仍然等于自身。
1^3 = 1
8^3 = 512 5+1+2=8
17^3 = 4913 4+9+1+3=17
... 请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个? 请填写该数字,不要填写任何多余的内容或说明性的文字。 6
public class Main {

    //暴力枚举,轻易可知,当n > 100时,一定没有符合题意正整数,原因:100^3共7位置,7*9<100,依次类推

    public static void main(String[] args) {
int count = 0;
for(long i = 1;i <= 100000;i++) { //此处使用较大数据检测猜测
long temp = i * i * i;
long temp1 = 0;
while(temp > 0) {
temp1 += (temp % 10);
temp = temp / 10;
}
if(i == temp1) {
System.out.println("i = "+i+", i^3 = "+(i*i*i));
count++;
}
}
System.out.println(count);
}
}

3 三羊献瑞

三羊献瑞

观察下面的加法算式:

      祥 瑞 生 辉
+ 三 羊 献 瑞
-------------------
三 羊 生 瑞 气 (如果有对齐问题,可以参看【图1.jpg】) 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。 请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。 1085
import java.util.Arrays;

public class Main {

    public static boolean judge(int[] A) {
int[] tempA = new int[A.length];
for(int i = 0;i < A.length;i++)
tempA[i] = A[i];
Arrays.sort(tempA); //对tempA元素进行从小到大排序
for(int i = 1;i < tempA.length;i++) {
if(tempA[i - 1] == tempA[i])
return false;
}
return true; } public static boolean judge1(int[] A, int[] B) {
int[] temp = new int[A.length + B.length - 1];
int i = 0;
for(;i < A.length;i++)
temp[i] = A[i];
for(;i < temp.length;i++)
temp[i] = B[i - A.length];
Arrays.sort(temp);
for(i = 1;i < temp.length;i++) {
if(temp[i - 1] == temp[i])
return false;
}
return true;
} public static void main(String[] args) {
for(int i = 1000;i <= 9999;i++) {
int[] A = new int[4];
A[0] = i / 1000;
A[1] = i / 100 % 10;
A[2] = i / 10 % 10;
A[3] = i % 10;
if(judge(A) == false)
continue;
for(int j = 1000;j <= 9999;j++) {
int[] B = new int[4];
B[0] = j / 1000;
B[1] = j / 100 % 10;
B[2] = j / 10 % 10;
B[3] = j % 10;
if(judge(B) == false)
continue;
if(B[3] != A[1])
continue;
if(judge1(A, B) == false)
continue;
int temp = i + j;
if(temp < 9999 || temp > 99999)
continue;
int[] C = new int[5];
C[0] = temp / 10000;
C[1] = temp / 1000 % 10;
C[2] = temp / 100 % 10;
C[3] = temp / 10 % 10;
C[4] = temp % 10;
if(C[0] == B[0] && C[1] == B[1] && C[2] == A[2] && C[3] == A[1]) {
if(C[4] != A[0] && C[4] != A[1] && C[4] != A[2] && C[4] != A[3]) {
if(C[4] != B[0] && C[4] != B[1] && C[4] != B[2] && C[4] != B[3])
System.out.println("i = "+i+", j = "+j+", temp = "+temp);
}
}
}
}
}
}

4 九数组分数

九数组分数

1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法?

下面的程序实现了该功能,请填写划线部分缺失的代码。

public class A
{
public static void test(int[] x)
{
int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];
int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8];
if(a*3==b) System.out.println(a + " " + b);
} public static void f(int[] x, int k)
{
if(k>=x.length){
test(x);
return;
} for(int i=k; i<x.length; i++){
{int t=x[k]; x[k]=x[i]; x[i]=t;}
f(x,k+1);
_______________________________________ // 填空
}
} public static void main(String[] args)
{
int[] x = {1,2,3,4,5,6,7,8,9};
f(x,0);
}
} 注意,只能填写缺少的部分,不要重复抄写已有代码。不要填写任何多余的文字。 {int t=x[k]; x[k]=x[i]; x[i]=t;}

5 饮料换购

饮料换购

乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去,但不允许赊账。

请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能得到多少瓶饮料。

输入:一个整数n,表示开始购买的饮料数量(0<n<10000)
输出:一个整数,表示实际得到的饮料数 例如:
用户输入:
100
程序应该输出:
149 用户输入:
101
程序应该输出:
151 资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms 请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。 所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。
import java.util.Scanner;

public class Main {

    public static void printResult(int n) {
int sum = n;
while(n > 2) {
sum += n / 3;
n = n / 3 + n % 3;
}
System.out.println(sum);
return;
} public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
printResult(n);
}
}

6 生命之树

生命之树

在X森林里,上帝创建了生命之树。

他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。
上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都存在一个点列 {a, v1, v2, ..., vk, b} 使得这个点列中的每个点都是S里面的元素,且序列中相邻两个点间有一条边相连。 在这个前提下,上帝要使得S中的点所对应的整数的和尽量大。
这个最大的和就是上帝给生命之树的评分。 经过atm的努力,他已经知道了上帝给每棵树上每个节点上的整数。但是由于 atm 不擅长计算,他不知道怎样有效的求评分。他需要你为他写一个程序来计算一棵树的分数。 「输入格式」
第一行一个整数 n 表示这棵树有 n 个节点。
第二行 n 个整数,依次表示每个节点的评分。
接下来 n-1 行,每行 2 个整数 u, v,表示存在一条 u 到 v 的边。由于这是一棵树,所以是不存在环的。 「输出格式」
输出一行一个数,表示上帝给这棵树的分数。 「样例输入」
5
1 -2 -3 4 5
4 2
3 1
1 2
2 5 「样例输出」
8 「数据范围」
对于 30% 的数据,n <= 10
对于 100% 的数据,0 < n <= 10^5, 每个节点的评分的绝对值不超过 10^6 。 资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 3000ms 请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。 所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。 对于此题,首先重点在于题意的理解:上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都存在一个点列 {a, v1, v2, ..., vk, b} 使得这个点列中的每个点都是S里面的元素,且序列中相邻两个点间有一条边相连。 其中,是对于S中任意两点a,b,存在(看清楚,是存在)一个点列,满足题意要求。 对于实例数据,选择点集S = {1,2,4,5},可知1,2直接相连,2,4和2,5都是直接相连,对于4,5存在点列{4,2,5}满足题意。所以,此题要求我们在给定树的情况下,寻找一颗子树,其所有顶点的和谐值和最大。
import java.util.ArrayList;
import java.util.Scanner; public class Main{
public static int[] nodeValue; //存放各个顶点的和谐值
public static ArrayList<Integer>[] edge; //存放各个顶点包含邻接边
public static int[] value; //用于存放某个顶点为根节点情况下,对于和谐值的和
public static int max = 0; //用于记录最终输出结果最大值 public static void dfs(int node, int father) {
value[node] = nodeValue[node];//节点node为根节点,刚开始和谐值和为节点本身和谐值
for(int i = 0;i < edge[node].size();i++) {
int son = edge[node].get(i); //节点node的孩子节点
if(son == father) //如果遍历到son为根节点时,son的孩子发现为node时,排除
continue;
dfs(son, node); //DFS搜索
if(value[son] > 0)
value[node] += value[son]; //回溯计算父母连带子节点的和谐值和
max = Math.max(max, value[node]);
}
} @SuppressWarnings("unchecked")
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
nodeValue = new int[n + 1];
for(int i = 1;i <= n;i++) {
int a = in.nextInt();
nodeValue[i] = a;
}
edge = new ArrayList[n + 1];
value = new int[n + 1];
for(int i = 1;i <= n;i++)
edge[i] = new ArrayList<Integer>();
for(int i = 1;i <= n - 1;i++) {
int a = in.nextInt();
int b = in.nextInt();
edge[a].add(b);
edge[b].add(a);
}
dfs(1, -1);//从顶点1开始DFS搜索,设置顶点1的父母节点为-1,即设置顶点1为树的根节点
System.out.println(max);
}
}

算法笔记_120:蓝桥杯第六届省赛(Java语言B组部分习题)试题解答的更多相关文章

  1. 算法笔记_123:蓝桥杯第七届省赛(Java语言B组部分习题)试题解答

     目录 1 凑算式 2 方格填数 3 四平方和   1 凑算式 凑算式 B DEF A + --- + ------- = 10 C GHI (如果显示有问题,可以参见[图1.jpg]) 这个算式中A ...

  2. 算法笔记_119:蓝桥杯第六届省赛(Java语言A组)试题解答

     目录 1 熊怪吃核桃 2 星系炸弹 3 九数分三组 4 循环节长度 5 打印菱形 6 加法变乘法 7 牌型种数 8 移动距离 9 垒骰子 10 灾后重建   前言:以下试题解答代码部分仅供参考,若有 ...

  3. 算法笔记_121:蓝桥杯第六届省赛(Java语言C组部分习题)试题解答

     目录 1 隔行变色 2 立方尾不变 3 无穷分数 4 格子中输出 5 奇妙的数字 6 打印大X   前言:以下试题解答代码部分仅供参考,若有不当之处,还请路过的同学提醒一下~ 1 隔行变色 隔行变色 ...

  4. 算法笔记_122:蓝桥杯第七届省赛(Java语言A组)试题解答

     目录 1 煤球数目 2 生日蜡烛 3 搭积木 4 分小组 5 抽签 6 寒假作业 7 剪邮票 8 取球博弈 9 交换瓶子 10 压缩变换   前言:以下试题解答代码部分仅供参考,若有不当之处,还请路 ...

  5. 算法笔记_208:第六届蓝桥杯软件类决赛真题(Java语言A组)

    目录 1 胡同门牌号 2 四阶幻方 3 显示二叉树 4 穿越雷区 5 切开字符串 6 铺瓷砖   前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 胡同门牌号 标题:胡同门牌号 小明家住在一条胡同里. ...

  6. 算法笔记_206:第五届蓝桥杯软件类决赛真题(Java语言A组)

    目录 1 海盗分金币 2 六角幻方 3 格子放鸡蛋 4 排列序数 5 幂一矩阵 6 供水设施    前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 海盗分金币 有5个海盗,相约进行一次帆船比赛. 比 ...

  7. 算法笔记_210:第六届蓝桥杯软件类决赛真题(Java语言C组)

    目录 1 机器人数目 2 生成回文数 3 空心菱形 4 奇怪的数列 5 密文搜索 6 居民集会 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 机器人数目 标题:机器人数目 少年宫新近邮购了小机器人 ...

  8. 算法笔记_204:第四届蓝桥杯软件类决赛真题(Java语言C组)

    目录 1 好好学习 2 埃及分数 3 金蝉素数 4 横向打印二叉树 5 危险系数 6 公式求值   前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 好好学习 汤姆跟爷爷来中国旅游.一天,他帮助中国的 ...

  9. 算法笔记_077:蓝桥杯练习 K好数(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4, ...

随机推荐

  1. 模拟拖拽图片 碰撞检测 DOM 鼠标事件 闭包

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  2. Tasker to answer incoming call by pressing power button

    nowadays, the smartphone is getting bigger in size, eg. samsung galaxy note and note 2, sorta big in ...

  3. setTimeout() 实现程序每隔一段时间自己主动运行

    定义和使用方法 setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 语法 setTimeout(code,millisec) 參数 描写叙述 code 必需.要调用的函数后要运行 ...

  4. 浅析OpenGL光照

    浅析OpenGL光照 之前从来都没有涉及光照的内容,心想只要能通过常规的方法渲染出几何体甚至是模型就可以了,然而没有光照的日子注定是苦涩的,因为仅凭几何体和模型的颜色无法达到真是渲染的效果,在实际中有 ...

  5. Delphi TClientDataSet的使用

    1.TClientDataSet的基本属性和方法介绍 1).FieldDefs: 字段定义列表属性 开发者可通过单击属性编辑器中该属性编辑按钮,或在该控件上单击右键选择弹出菜单中的"Fiel ...

  6. 查看是否安装.NET Framework、.NET Framework的版本号、CLR版本号

    查看是否安装.NET Framework→%SystemRoot%\System32→如果有mscoree.dll文件,表明.NET Framework已安装 查看安装了哪些版本的.NET Framw ...

  7. C#程序集系列04,在程序集包含多个module的场景下理解关键字internal

    本篇在一个程序集包含多个module的场景下体验internal的含义. →查看F盘as文件夹下的文件→删除MainClass.exe→把MyFirstModule和MySecondModule组装到 ...

  8. Windows Embedded Compact 7初体验

    Windows Embedded Compact 7初体验 Windows Embedded Compact 7已经出来半年多了,一直没时间搞.最近它又出了Refresh的版本,电脑也换了个1T的硬盘 ...

  9. [runtime] iOS-Runtime-Headers

    Dynamically Generated iOS Headers https://github.com/nst/iOS-Runtime-Headers Here are iOS Objective- ...

  10. Python kmean

    # -*- coding: utf-8 -*-from sklearn.cluster import KMeansfrom sklearn.externals import joblibimport ...