(1)小明和我参加班长的选举投票,投票人数为n,每人可以投K票,第一行输入为投票人数,第二行输入为每个人投给小明的票数求保证我能获胜最小的K。
例如下面的示例,由于小明获得1+1+1+5+1=9票,则我获得4+4+4+0+4=12票,我获胜,此时5最小。
输入:
5
1 1 1 5 1
输出:
5
输入:
5
1 1 1 5 1
输出:
5
import java.util.Scanner; public class Q1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine()); String num = sc.nextLine(); String[] s = num.split("\\s+"); int bSize = 0;//小明获取的票数 int maxB = 0;//个人投的最高票数 int b; for (int i = 0; i < n; i++) { b = Integer.parseInt(s[i]); bSize += b; if (maxB <= b) { maxB = b; } } int k; for (k = maxB; k * n <= 2 * bSize; k++){ } System.out.println(k); } }
(2)要求n各城市中有m条道路,求在距离d以内,从一个城市到其它城市的数量最少,如遇到数量相同,则选择输出编号最大的那个城市。
第一行,测试数据的组数:t组
第二行:n(城市数量) m(道路条数) d(要求距离)
接下来m行:l(城市编号) r(城市编号) w(距离)
例如:
输入:
1
4 4 4
0 1 3
1 2 1
2 3 1
1 3 4
输出:
3
第一行,测试数据的组数:t组
第二行:n(城市数量) m(道路条数) d(要求距离)
接下来m行:l(城市编号) r(城市编号) w(距离)
例如:
输入:
1
4 4 4
0 1 3
1 2 1
2 3 1
1 3 4
输出:
3
【注:原题不是这么描述的,只记得大致题目意思了】
全部评论
(4) 回帖