题目描述
一张地图上有有N个城市,他们可以通过双向道路互相连接,但是每两座城市只能有一条双向道路互相连接。
现在我们想要满足条件“地图中不能有任意三个城市可以互相直达”,请问满足这个条件的最大道路数是多少?
输入描述:
多组输入
每组输入一个N(1<=N<=1000)
输出描述:
每组答案输出一行
输入
4
2
3
输出
4
1
2
思路
地图中不能有三个城市互相直达,就是把城市分为两组,组内不能相连,组间可以相连。道路数就是第一组的城市 乘以 第二组的城市。要想使道路数最多,两组的城市数要尽可能接近
AC
#include<bits/stdc++.h>
#define N 100005
#define ll long long
using namespace std;
int main() {
//freopen("in.txt", "r", stdin);
int n;
while (scanf("%d", &n) != EOF) {
int t = n / 2;
int ans = t * (n - t);
printf("%d\n", ans);
}
return 0;
}