编程题 共5道
给定 n个正整数 a1,a2,…,an,请统计出这个数列中含有多少个不同的整数。
· 第一行:一个整数 n;
· 第二行:n 个整数 a1,a2,…,an。
一个整数,数列中含有多少个不同的整数。
6 1 6 5 6 3 1
4
10 1 2 3 4 5 6 7 8 9 10
10
【数据范围】
1≤n,ai≤105。
时间限制:1000ms
内存限制:256MiB
给定整数 n 和一个包含 n−1 个整数的序列,该序列由区间 [1,n] 内的 n−1 个互异整数组成。请找出该区间内缺失的唯一整数。
第一行:一个整数n
第二行:n−1 个整数。
一个整数,表示丢失的数字。
6 1 2 5 6 3
10 7 2 3 9 4 8 1 6 10
5
1≤n≤2×104,输入序列保证合法。
在一条商业街上,有 100个店铺,店铺从左到右编号为 1 到 100。工人从店铺 x移动到 y发生的移动距离为 |y−x|。
现在需要完成 n个修理任务。其中第 i个任务要求工人移动到店铺 ai,报修任务分两类,用 L表示任务分配给小李,用 R 表示任务分配给小任。
必须按照报修的顺序来完成这些任务。请计算,完成所有修理任务后,两位工人的总移动的总距离。工人最开始的位置可以按照最理想的情况安排。
第一行:一个整数 n表示搬运次数;
接下来 n行,每行一个整数 ai表示商店位置,一个字符 si 表示哪位工人完成。
输出所有任务完成时的最小总距离。
4 3 L 6 R 9 L 2 R
3 L
6 R
9 L
3 2 L 2 L 99 L
2 L
99 L
97
8 22 L 75 L 26 R 45 R 72 R 81 R 47 L 29 L
22 L
75 L
26 R
45 R
72 R
81 R
47 L
29 L
154
1≤N≤100;
1≤ai≤100;
si∈{'L','R'}。
可以使用任意数量的 a元硬币、b 元硬币和 c 元硬币。
请找出恰好凑出 n 元所需的最小硬币总数。
若无法凑出,则输出 -1。
· 第一行,整数 n;
· 第二行,三个整数表示 a,b,c。
输出最小硬币总数(若无法凑出则输出 −1)。
100 20 40 50
100
20 40 50
2
99 1 5 10
99
1 5 10
14
· 1≤N≤109;
· 1≤A≤B≤C≤109。
· 保证最终最小硬币总数不超过104。
游戏中有 N 个敌人,第 i 个敌人有 hi 的血量,当敌人血量降至 0 或以下时该敌人被消灭。
按照顺序从第 1 个敌人开始打,时间 T从 0 开始,每次攻击前,先将 T 增加 1,若此时 T 为 3 的倍数,当前敌人掉 3 滴血,否则掉 1 滴血。
求消灭全部敌人所需时间。
· 第一行输入一个正整数 N;
· 第二行输入 N个 正整数H1,H2…,Hn。
输出一行答案 T。
3 3 1 4
3
3 1 4
6
6 3 14 15 9 2 6
3 14 15 9 2 6
33
· 1≤ N≤ 2×105;
· 1≤ Hi≤109。