2018年东北农业大学春季校赛 F-wyh的集合
2018-04-07 00:05
211 查看
2018年东北农业大学春季校赛 F-wyh的集合
链接:https://www.nowcoder.com/acm/contest/93/F来源:牛客网
题目描述
你们wyh学长给你n个点,让你分成2个集合,然后让你将这n个点进行两两连接在一起,连接规则是这样的连接的两个点必须在不同的两个集合
一个集合内部任意两个点之间不能相连
现在,wyh学长需要让你将这n个点任意分成2个集合之后,最多能连接多少条边?
输入描述:
输入第一行一个整数T(1<=T<=100000)接下来T组测试数据,每组测试数据输入一个整数n(1<=n<=100000)
输出描述:
对于每组测试数据,输出对应答案示例1
输入
4 0 1 2 4
输出
0 0 1 4
说明
对于4的情况,设4个点为A,B,C,D 第一个集合元素为 A,B 第二个集合元素为C,D 连接的边为AC,AD,BC,BD 此时为最大情况,所以答案为4
思路
从说明容易看出答案,其实问题相当于:当两个数的和相同,这两个数越接近,乘积越大。
证明:
设其中一个数为 x, 两数之和为一常数 a, 则另一个数为 a-x. x(a-x)=ax-x² =-(x²-ax+a²/4)+a²/4 =a²/4-(x-a/2)² 上式越大则要求 x-a/2 越小. 即x越接近 a/2. 因此两个数越接近,乘积越大.
注意:这里要用 long long(用 int 过不了,AC率92.68%)。
AC代码
#include <iostream> typedef long long ll; using namespace std; int main() { int T; cin >> T; for(int i=0;i<T;i++){ ll a; cin >> a; ll tmp = a/2; cout << tmp*(a-tmp) << endl; } return 0; }
相关文章推荐
- 2018年东北农业大学春季校赛 K-wyh的数列
- 2018年东北农业大学春季校赛 A-wyh的曲线
- 2018年东北农业大学春季校赛 B-wyh的矩阵
- 牛客网 2018年东北农业大学春季校赛 I题 wyh的物品
- 2018年东北农业大学春季校赛 E-wyh的阶乘
- 2018年东北农业大学春季校赛D wyh的迷宫
- 牛客网 2018年东北农业大学春季校赛 L题 wyh的天鹅
- 2018年东北农业大学春季校赛 M-wyh的数字
- 2018年东北农业大学春季校赛 I-wyh的物品
- 2018年东北农业大学春季校赛 D-wyh的迷宫
- 2018年东北农业大学春季校赛
- 2018年东北农业大学春季校赛 优先队列+bfs (莫名出bug题)
- 每日一题(1)2018年东北农业大学春季校赛 K wyh的数列
- 牛客网2018年东北农业大学春季校赛(BD)
- 2018年东北农业大学春季校赛 M wyh的数字
- Android 2018年春季面试/笔试面经(持续更新)
- 2013 HIT 春季校赛C题
- 2018年全国多校算法寒假训练营练习比赛(第五场)D集合问题详解
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 B合约数
- 2017VS2018年非工作日日期大集合