🍷 5.二叉树的最大深度
一棵二叉树有2021个结点。该树满足任意结点的左子树结点个数和右子树的结点个数之差最多为1。
定义根结点的深度为0,子结点的深度比父结点深度多1。
请问,树中深度最大的结点的深度最大可能是多少?
左子树结点个数和右子树的结点个数之差最多为1,这句话的意思应该是这棵树是一颗完全二叉树。 根据完全二叉树的结点个数获得深度的公式是long2(N)+1。但这里说定义根节点的深度为0,所以我们不需要再加一,我得出来的答案是long(2021)~=10,最多是十层。
如果有错,还望评论区纠正。
🍦6.和尚挑水
问题描述
一个和尚要挑水,每次最多能挑 a 千克,水缸最多能装 t 千克,开始时水缸为空。
请问这个和尚最少要挑多少次可以将水缸装满?
输入格式
输入一行包含两个整数 a, t,用一个空格分隔。
输出格式
输出一行包含一个整数,表示答案。
样例输入
20 2021
样例输出
102
评测用例规模与约定
对于所有评测用例,1 <= a <= 100,1 <= t <= 10000。
这道题,emmmm,没什么好说的,不亏是大题第一道签到题。
public class Main6 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int t=sc.nextInt(); if(t%a==0) { System.out.println(t/a); }else{ System.out.println(t/a+1); } } }
🍨7.金融数字
问题描述
在金融领域,通常将金额的百位和千位之间、十万位和百万位之间增加逗号(千分位分隔符),以方便阅读。一般从个位开始,每三位之前增加一个逗号。
例如:1234567890.00 通常写成 1,234,567,890.00。
注意小数点后固定保留 2 位。
给定一个包含千分位分隔符的数值,请读入后输出对应的不含千分位的数值,小数点仍然保留 2 位。
输入格式
输入一行包含一个由千分位分隔符的数值,恰好有 2 位小数。
输出格式
输出不含千分位分隔符的数值,保留 2 位小数。
样例输入
1,234,567,890.00
样例输出
1234567890.00
评测用例规模与约定
对于所有评测用例,给定的数值整数部分不超过12位。
不知道这道题想考啥,我是字符串模拟,把所有逗号都去掉了。
public class Main7 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s=sc.next(); StringBuilder sb=new StringBuilder(); for(int i=0;i<s.length();++i) { if(s.charAt(i)!=',') { sb.append(s.charAt(i)); } } System.out.println(sb); } }
🍧8.插座
问题描述
小蓝有一个插板,形状用一个 n * m 的01矩阵表示,0 表示板面,1 表示插孔。
小蓝还有一个插头,形状用一个 r * c 的01矩阵表示,0 表示没有伸出的部分,1 表示伸出的部分。插头伸出的部分必须插在插孔里面。
为了安全,插头插到面板上不能有任何部分超过插板边界(包括没有伸出的部分)。
插头和插板都不能旋转,也不能翻转。请求出插头插入插板的合理位置。
输入格式
输入的第一行包含两个整数 n, m。
接下来 n 行,每行一个长度为 m 的01串,表示插板的形状。
接下来一行包含两个整数 r, c。
接下来 r 行,每行一个长度为 c 的01串,表示插头的形状。
输出格式
如果插头没办法安全插入插板中,输出“NO”。否则输出两个数 a, b,表示插头的第 1 行第 1 列对应插板的第 a 行第 b 列。如果有多种情况满足要求,输出 a 最小的方案,如果 a 最小的方案有多个,输出在 a 最小的前提下 b 最小的方案。
样例输入
3 4
0110
0000
0000
3 3
000
010
000
样例输出
NO
样例说明
在插头不超出范围的前提下无法插入。
样例输入
4 7
1110100
1101111
0001111
0000011
2 3
111
011
样例输出
2 4
评测用例规模与约定
对于 50% 的评测用例,2 <= n, m, r, c <= 20。
对于所有评测用例,2 <= n, m, r, c <= 100。