浇花系统
题目描述
有n棵植物,排成一排,从左到右的编号分别为:1,2,3,......,n ;n颗植物所需的水量分别为:w1,w2,w3,......wn 。小丁为植物设计了一套浇水系统。
浇水系统:每次会将连续的L棵植物分别浇1份水。每棵植物可以被重复浇水,如果当前植物已经满足所需水量,系统会将多浇的水排到水池中。
请计算浇水系统最少要浇多少次才能满足所有植物所需水量,以及排到水池的水量。
例如:n=4,L=3;4棵植物所需要的水量分别为1、1、3、2,浇水系统每次会将连续的 3 棵植物分别浇上1份水。以下是浇水次数最少的一种方式:
• 第一次:将第1、2、3 棵植物分别浇上1份水,浇水后4棵植物所需水量为0、0、2、2;
• 第二次:将第 2、3、4 棵植物分别浇上1份水,浇水后4棵植物所需水量为0、0、1、1,由于第2棵植物已经满足所需水量,所以系统会将此次多余的1份水排到水池;
• 第三次:将第 2、3、4棵植物分别浇上1份水,浇水后4棵植物所需水 量为0、0、0、0,此次系统也会将第2棵植物多余的1份水排到水池;所以,浇水系统最少需要浇3次,并且将多余的2份水排到水池。
输入描述
第一行输入两个整数n、L(1 ≤ L ≤ n ≤ 1000),分别表示植物的数量和浇水系统每次连续浇灌的植物数量,整数之间以一个空格隔开。
第二行输入n个整数w(0 <= w; <= 1000) ,分别表示编号 1~n 的植物所需的水量,整数之间以一个空格隔开。
输出描述
输出两个整数,分别表示浇水系统最少的浇水次数,以及排到水池的水量,整数之间以一个空格隔开。
样例输入
4 3 1 1 3 2
样例输出
3 2
相似题推荐
因数最多
提示信息:
因数:如果整数 a 除以整数 b(b≠0) 的商正好是整数且没有余数,则称 b 是 a 的因数。例如:整数 6 的因数有 1,2,3,6。
题目描述:
给定 n 个互不相同的整数,请找出其中因数数量最多的整数。如果因数数量最多的整数有多个,则输出最大的那个数。
例如:n = 4,给定的 4 个整数依次为 4,6,15,7;
4 的因数有 1,2,4,共 3 个;
6 的因数有 1,2,3,6,共 4 个;
15 的因数有 1,3,5,15,共 4 个;
7 的因数有 1,7,共 2 个;
因数最多的整数是 6 和 15,数量均为 4,但是 15 最大,所以输出 15。
输入描述:
第一行输入一个整数 n(1≤n≤1000),表示整数的数量;
第二行输入 n 个互不相同的整数(1≤整数≤105),整数之间以一个空格隔开。
输出描述:
输出一个整数,表示因数数量最多的整数;如果因数数量最多的整数有多个,则输出最大的那个数。
样例输入:
4 4 6 15 7
样例输出:
15
移动字符0
编程实现:
给定一个包含数字 0 的字符串,将其中的所有 0 移到字符串末尾,同时保持其他非 0 字符的相对顺序不变,输出操作后的字符串。
例如:字符串 "A001020",将其中的 4 个 0 移到末尾后,结果为 "A120000"。
输入描述:
输入一个包含数字 0 的字符串(3≤字符串长度≤100)。
输出描述:
输出一个字符串,表示按要求操作后的字符串。
样例输入:
A001020
样例输出:
A120000
以下关于 Python 的描述,【错误】的是?( )
| A. 常量 None 和 False 在逻辑值中被定义为假值 |
B. pow(0, 0) 和 0 ** 0 的值都定义为 1 |
| C. list、tuple 和 range 对象是 Python 的三种序列类型 |
D. 1、1.0、True 可在同一个字典中作为不同的键 |
编程实现:
Adam 和 Bob 在玩一种卡片接龙的游戏,他们各自有 n 张卡片,每张卡片写了一个号码,桌上还有一张写了号码 m 的卡片,他们会尽可能将手中的卡片进行接龙,游戏规则如下:
(1)由 Adam 开始,双方轮流接龙;
(2)接龙一方每次可以放置一张卡片到桌上,这张卡片必须比桌上的最小号码小 1,或者比桌上的最大号码大1,重复这个过程直到没有可以放置的卡片,然后轮到另一方接龙;
(3)胜负判定:
(3.1)如果一方率先将手中的卡片全部放置(手中的卡片数量为 0),则这一方获得胜利;
(3.2)如果双方都还有卡片,且都不能再放置卡片,则手中卡片较少的一方获得胜利;如果卡片数量相等,则平局。
给定 Adam 和 Bob 各自的卡片数量 n,以及双方的卡片号码,桌上的卡片号码 m。请计算出接龙游戏胜利方的名字和他手中剩余卡片的数量,如果平局,则输出 Draw 和 -1。
例如:n = 4;Adam 手中 4 张卡片的号码是 5、7、9、2;Bob 手中 4 张卡片的号码是 3、6、10、4;
m = 8,桌上卡片的号码是 8,初始由 Adam 开始,接龙情况如下:
(1)Adam 手中有比桌上最小号码 8 小 1 的卡片 7,将卡片 7 放置到桌上,手中还有比桌上最大号码 8 大 1的卡片 9,将卡片 9 放置到桌上,此时手中还有卡片 5、2,没有符合接龙的卡片,轮到 Bob;

(2)Bob 手中有比桌上最小号码 7 小 1 的卡片 6,将卡片 6 放置到桌上,手中还有比桌上最大号码 9 大 1的卡片 10,将卡片 10 放置到桌上,此时手中还有卡片 3、4,没有符合接龙的卡片,轮到 Adam;

(3)Adam 手中有比桌上最小号码 6 小 1 的卡片 5,将卡片 5 放置到桌上,此时手中还有卡片 2,没有符合接龙的卡片,轮到 Bob;

(4)Bob 手中有比桌上最小号码 5 小 1 的卡片 4,将卡片 4 放置到桌上,手中还有比桌上最小号码 4 小 1的卡片 3,将卡片 3 放置到桌上,此时手中卡片数量为 0,Bob 胜利。

输出 Bob 和 0。
输入描述:
第一行输入一个整数 n(2≤n≤1000),表示 Adam 和 Bob 的卡片数量;
第二行输入 n 个整数(1≤整数≤2000),表示 Adam 手中卡片的号码,整数之间以一个空格隔开;
第三行输入 n 个整数(1≤整数≤2000),表示 Bob 手中卡片的号码,整数之间以一个空格隔开;
第四行输入一个整数 m(1≤m≤2000),表示初始桌上的卡片号码。
输出描述:
第一行输出一个字符串,表示胜利方的名字,如果平局,则输出 Draw;
第二行输出一个整数,表示胜利方手中剩余卡片的数量,如果平局,则输出 -1。
样例输入:
4 5 7 9 2 3 6 10 4 8
样例输出:
Bob 0
