强密码
描述
我们称一个密码是强密码,当且仅当它满足以下所有条件:由 8 − 16 个字符组成
至少包含一个大写字母 (A-Z)
至少包含一个小写字母 (a-z)
至少包含一个数字 (0-9)
至少包含一个特殊符号 (! @ # $ % & * _ +)
娇娇发现她现在的密码好像不是强密码,请你帮她计算一下最少添加几个字符可以变成强密码。
输入
输入仅一行,一个字符串,表示娇娇当前的密码。
输出
输出一个数表示答案。
如果不需要添加任何字符就已经是强密码,请输出 0。
如果不存在任意一种方案使得密码变成强密码,请输出 −1。
输入样例 1whj518
输出样例 12
提示
样例解释
需要添加一个大写字母、一个特殊字符,共两个字符。添加后密码长度为 8,正好符合长度要求。故答案为 2。
数据规模与约定
对于 50% 的数据,字符串已经满足题目描述中的 4 个条件;
对于 100% 的数据,字符串的长度 ≤ 16,字符串中只会出现题目描述中包含的字符。
倒水
描述
Alice 正在家里看电视,突然她听见有人在敲门,她觉得很不开心,竟然有人来打扰她看电视。开门后她更不开心了,门后竟然站着 K 个老师,这些老师都是来家访的。Alice 的妈妈看到这么多老师后,赶紧吩咐 Alice 去给老师们倒水喝。Alice 家里只有一个热水壶,这个热水壶每次最多只能烧开 L毫升水。 Alice 家里有 N 个杯子,第 i 个杯子的容量为 ai毫升。Alice 需要从里面选出 K 个杯子给这些老师,然后把每一杯水都倒满,再拿给老师。Alice 现在想知道,她最少得需要烧多少壶水,才能给这 K 名老师倒够水。
考虑下面这个例子,N = 4,K = 4,L = 4, a1 = 2,a2 = 3,a3 = 1,a4 = 5。Alice 至少需要烧 3 次水。第一次烧水后,Alice 可以倒满第一,和第三个杯子。还剩 1 毫升水可以倒到第二个杯子。第二次烧水,Alice 可以倒满第二个杯子,还剩 2 毫升水可以倒到第四个杯子。最后一次烧开的水可以倒满第四个杯子。
输入
第一行输入三个整数 N,K,L。接下来一行 N 个整数。第 i 个整数 ai代表第 i 个杯子的容量。
输出
输出一行一个整数代表 Alice 最少需要烧多少次水。
输入样例 14 4 4
2 3 1 5
输出样例 13
输入样例 24 3 4
2 3 1 5
输出样例 22
提示
题目包含 10 个测试点。
对于第 1,2,3 测试点,满足 N ≤ 20。
对于第 4,5,6 测试点,满足 N ≤ 1000。
对于所有测试点,满足 1 ≤ K ≤ N ≤ 10^5,1 ≤ ai,L ≤ 10^9。
寻找方案
描述
Alice 在玩一个很好玩的数字游戏。这个游戏是这样的,首先有一个给定的正整数 x,现在你可以
进行下面这三种操作,
· 给 x 加一。
· 给 x 减一。
· 若 x 为 3 的倍数,则可以给 x 除以 3。
现在 Alice 想让你帮帮她,找到一个操作次数最少的方案,把一个数 x 通过这些操作变成 1。比如当 x = 10 时,一种可行的方案是