$$\color{Red}{排队打水}$$
这里附带打个广告——————我做的所有的题解
包括基础提高以及一些零散刷的各种各样的题
简单题,很容易想到从小到大排,算等待时间,故最后一个人不需要等自己,然后排到一个人,显然应该增加 (n - i) * t
的时间。
java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static int n, N = 100010;
static int[] arr = new int[N];
public static void main(String[] args) throws IOException {
n = Integer.parseInt(br.readLine());
String[] str = br.readLine().split(" ");
for (int i = 1; i <= n; i++) arr[i] = Integer.parseInt(str[i-1]);
Arrays.sort(arr, 1, n+1);
long res = 0;
for (int i = 1; i <= n; i++) {
res += arr[i] * (n - i);
}
System.out.println(res);
}
}
python3
n = int(input())
a = [1] + list(map(int, input().split()))
a.sort()
res = 0
for i in range(1, n+1):
res += (n - i) * a[i]
print(res)
一家人(5) 时限:1s 空间:256m
最近小明交了一个新朋友叫小宇,他们在聊天的时候发现500年前他们竟然是一家人!现在小明想知道小宇是他的长辈,晚辈,还是兄弟。
输入格式
首先输入一个整数N(N<=10),接下来N行,每行输入两个整数a和b,表示a的父亲是b(1<=a,b<=20)。小明的编号为1,小宇的编号为2。
输入数据保证每个人只有一个父亲。
输出格式
如果小宇是小明的晚辈,则输出“You are my younger”,如果小宇是小明的长辈,则输出“You are my elder”,如果是同辈则输出“You are my brother”。
输入/输出例子1
输入:
5
1 3
2 4
3 5
4 6
5 6
输出:
You are my elder
输入/输出例子2
输入:
6
1 3
2 4
3 5
4 6
5 7
6 7
输出:
You are my brother
哈哈哈
nb
hhh,没有没有
能不能教我一下
一家人(5) 时限:1s 空间:256m
最近小明交了一个新朋友叫小宇,他们在聊天的时候发现500年前他们竟然是一家人!现在小明想知道小宇是他的长辈,晚辈,还是兄弟。
输入格式
首先输入一个整数N(N<=10),接下来N行,每行输入两个整数a和b,表示a的父亲是b(1<=a,b<=20)。小明的编号为1,小宇的编号为2。
输入数据保证每个人只有一个父亲。
输出格式
如果小宇是小明的晚辈,则输出“You are my younger”,如果小宇是小明的长辈,则输出“You are my elder”,如果是同辈则输出“You are my brother”。
输入/输出例子1
输入:
5
1 3
2 4
3 5
4 6
5 6
输出:
You are my elder
输入/输出例子2
输入:
6
1 3
2 4
3 5
4 6
5 7
6 7
输出:
You are my brother
c++的
可以试试带距离的并查集?或者是bfs,从祖先找到孩子,设定一个st数组,有父节点就置true,这样遍历节点的st数组就知道谁是祖先,然后bfs设定距离。看他们距离祖先的层数。
我是小学生不会
你可以看看图中点的层次这个题,是bfs,然后你只需要多加个数组st,标记一下谁是祖先,然后从祖先按这个套路看看到祖先距离就行。
会了会了,谢谢大哥!!!!
没事哈哈