作物杂交(JAVA)
题目:作物杂交是作物栽培中重要的一步。已知有 N种作物 (编号 1至 N),第 i种作物从播种到成熟的时间为 Ti。作物之间两两可以进行杂交,杂交时间取两种中时间较长的一方。如作物 A 种植时间为 5 天,作物 B 种植时间为 7 天,则 AB 杂交花费的时间为 7 天。作物杂交会产生固定的作物,新产生的作物仍然属于 N 种作物中的一种。
初始时,拥有其中 M 种作物的种子 (数量无限,可以支持多次杂交)。同时可以进行多个杂交过程。求问对于给定的目标种子,最少需要多少天能够得到。
如存在 4 种作物 ABCD,各自的成熟时间为 5 天、7 天、3 天、8 天。初始拥有 AB 两种作物的种子,目标种子为 D,已知杂交情况为 A × B → C,A × C → D。则最短的杂交过程为:
第 1 天到第 7 天 (作物 B 的时间),A × B → C。
第 8 天到第 12 天 (作物 A 的时间),A × C → D。
花费 12 天得到作物 D 的种子。输入描述
输入的第 1 行包含 4 个整数 N, M, K, T,N 表示作物种类总数 (编号 1 至 N),M 表示初始拥有的作物种 ...
结构体之时间设计(python)
题目描述定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。
输入格式年月日
输出格式当年第几天
样例输入2000 12 31
样例输出366
代码演示一:def p_y(m, d): # 平年 sum = 0 m_list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] for i in range(m - 1): sum += m_list[i] sum += d return sumdef r_y(m, d): # 闰年 sum = 0 m_list = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] for i in range(m - 1): sum += m_list[i] sum += d return sumdef p_d(y): # 判断平年和闰年 平年True 闰年False if ((y % 4 == 0) and (y % 100 ...
石头剪刀布(python)
题目描述石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。 游戏规则:石头打剪刀,布包石头,剪刀剪布。 现在,需要你写一个程序来判断石头剪子布游戏的结果。
输入格式输入包括N+1行: 第一行是一个整数N,表示一共进行了N次游戏。1 <= N <= 100。 接下来N行的每一行包括两个字符串,表示游戏参与者Player1,Player2的选择(石头、剪子或者是布): S1 S2 字符串之间以空格隔开S1,S2只可能取值在{“Rock”, “Scissors”, “Paper”}(大小写敏感)中。
输出格式输出包括N行,每一行对应一个胜利者(Player1或者Player2),或者游戏出现平局,则输出Tie。
样例输入3Rock ScissorsPaper PaperRock Paper
样例输出Player1TiePlayer2 ...
猴子吃桃(python)
题目描述猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
输入格式N
输出格式桃子总数
样例输入10
样例输出1534
代码演示:N = int(input())m = 1for i in range(1, N): n = 2 * (m + 1) m = nprint(n)
解题思路:本题可以倒着来思考,首先已知最后一天为一个,并且知道猴子吃桃的规律
可以算出倒数第二天吃的
以此为循环,可以算出每一次的前一天吃的
循环的范围为N-1天,因为第N天已经知道且为1
闹钟定时程序(python)
闹钟是现在人们常备的物品之一,可以尝试用python写一个简易的闹钟程序
包含以下几部分:
1.输入定时的时间2.获取当前的时间3.获取实时的时间4.将电脑的实时时间与设定的时间对比大体的思路有了
代码实现:import datetime # 调用的datetime库import pyttsx3 # 文本到语音的转换库from playsound import playsound # 播放声音print("请输入设定的时间(示例:HH:MM:SS): ")set_time = input('--:--:-- = ')set_time_H = set_time[0:2] # 获取输入的时set_time_M = set_time[3:5] # 获取输入的分钟set_time_S = set_time[6:8] # 获取输入的秒print('--> 设定时间为: {}:{}:{}'.format(set_time_H, set_ti ...
字母数(python)
问题描述请找到一个大于 2022的最小数,这个数转换成十六进制之后,所有的数位(不含前导 0)都为字母(A 到 F)。
请将这个数的十进制形式作为答案提交。
答案提交这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
代码实现:import osimport sys# 请在此输入您的代码def xiao(m): while m: # 当m为0时,跳出循环 if m % 16 <= 9: # 十六进制数中,A到F代表的是10到15 return False else: m //= 16 # 当不满足if的时候,让其向下整除16,在进行一次取余,观察是否符合条件 return Truex = 2022while True: if xiao(x): break x += 1 # 如不满足条件就加一print(x)
解题思路:本题要求的是转换为16进制数后所有位数都为A到F,而A到F转 ...
迷宫(python)
题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
下图给出了一个迷宫的平面图,其中标记为 11 的为障碍,标记为 00 的为可以通行的地方。
010000000100001001110000
迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。
对于上面的迷宫,从入口开始,可以按 DRRURRDDDR 的顺序通过迷宫, 一共 10 步。其中 D、U、L、R 分别表示向下、向上、向左、向右走。 对于下面这个更复杂的迷宫(30 行 50 列),请找出一种通过迷宫的方式,其使用的步数最少,在步数最少的前提下,请找出字典序最小的一个作为答案。
请注意在字典序中 D<L<R<U。
01010101001011001001010110010110100100001000101010000010001000001010100100001000000010011001101001010111101101001000100000110100101110001100000001000001000000001 ...
数位排序(python)
题目描述小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序。当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。
例如,2022 排在 409 前面,因为 2022 的数位之和是 6,小于 409 的数位之和 13。
又如,6 排在 2022 前面,因为它们的数位之和相同,而 6 小于 2022。
给定正整数 n,m,请问对 1 到 n 采用这种方法排序时,排在第 m 个的元素是多少?
输入格式输入第一行包含一个正整数 n。
第二行包含一个正整数 m。
输出格式输出一行包含一个整数,表示答案。
样例输入135
样例输出3
提示1 到 13 的排序为:1, 10, 2, 11, 3, 12, 4, 13, 5, 6, 7, 8, 9。第 5 个数为 3。
对于 30% 的评测用例,1 ≤ m ≤ n ≤ 300。
对于 50% 的评测用例,1 ≤ m ≤ n ≤ 1000。
对于所有评测用例,1 ≤ m ≤ n ≤ 10^6。
代码演示:n = int(input())m = int(input())list_1 = [str(i) ...
纸张尺寸(python)
题目在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm × 841mm,将 A0 纸沿长边对折后为 A1 纸,大小为 841mm × 594mm,在对折的过程中长度直接取下整(实际裁剪时可能有损耗)。将 A1 纸沿长边对折后为 A2 纸,依此类推。
输入纸张的名称,请输出纸张的大小。
输入格式输入一行包含一个字符串表示纸张的名称,该名称一定是 A0、A1、A2、A3、A4、A5、A6、A7、A8、A9 之一。
输出格式输出两行,每行包含一个整数,依次表示长边和短边的长度。
样例输入A0
样例输出1189841
代码实现:m = input() # 输入纸张的大小n = m.replace("A", "") # 将A给替换掉,只留数字n = int(n) # 上面的为str类型,需要将其转换为int类型q = 1189 w = 841for i in range(0, n): # 通过for循环遍历需要处理的次数 if q > w: # 用if判断长边,并将长边除2向下 ...
砝码称重(JAVA)
题目:你有一架天平和 N个砝码,这 N 个砝码重量依次是 W1, W2, · · · , WN。
请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边。
输入格式
输入的第一行包含一个整数 N。
第二行包含 N 个整数:W1, W2, W3, · · · , WN。
输出格式
输出一个整数代表答案
样例输入
31 4 6
样例输出
10
样例说明
能称出的 10 种重量是:1、2、3、4、5、6、7、9、10、11。
1 = 1;
2 = 6 − 4 (2=6−4(天平一边放 66,另一边放 4);
3 = 4 − 1;
4 = 4;
5 = 6 − 1;
6 = 6;
7 = 1 + 6;
9 = 4 + 6 − 1;
10 = 4 + 6;
11 = 1 + 4 + 6。
评测用规模与约定
对于 50%的评测用例,1 ≤ N ≤ 15。
对于所有评测用例,1 ≤ N ≤ 100,N个砝码总重不超过 100000。
运行限制
最大运行时间:1s
最大运行内存: 256M
代码import java.util.Scanner;public class main ...