题目描述:
小强和小丽一起在玩自走棋游戏,这个游戏是在一个有n个顶点的无向完全图上进行的,顶点i都有一个完美度Ci。
游戏开始时小强会选择一个顶点放上棋子,然后他们开始轮流进行游戏,小丽先开始。在每一个回合,他们会先将棋子从当前的顶点(不妨称为u)通过邻接的边移动到另一个顶点(不妨称为v),并将边uv删除,再将这场游戏的完美度加上Cu * Cv,游戏刚开始的完美度为0;当某人无法移动时则算输。
他们两人都是绝对理性的游戏者,因此他们会遵循以下的原则:
- 如果某人能赢,那么他应该优先最小化游戏的回合数(速战速决),再最大化游戏的完美度。
- 如果某人不能赢,那么他应该优先最大化游戏的回合数(拖延时间),再最大化游戏的完美度。
请问游戏最终的完美度是多少?
输入描述:
第一行,顶点数n;
第二行n个正整数,表示顶点 i 的完美度
输出描述:
输出一个整数:
表示整个游戏的完美度
示例:
输入
5
1 2 3 4 5
输出
74
代码
Java
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);