zoukankan      html  css  js  c++  java
  • 2018年东北农业大学春季校赛 F wyh的集合【思维】

    链接:https://www.nowcoder.com/acm/contest/93/F
    来源:牛客网

    题目描述

    你们wyh学长给你n个点,让你分成2个集合,然后让你将这n个点进行两两连接在一起,连接规则是这样的

    1. 连接的两个点必须在不同的两个集合

    2. 一个集合内部任意两个点之间不能相连

    现在,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
    【分析】:开始以为是二分图匹配,画了画发现直接当两边最接近的时候最大,两边数量要么相等,要么相差1
    【代码】:
    #include<bits/stdc++.h>
    
    using namespace std;
    
    #define ll long long
    
    int main()
    {
        int t;
        ll n;
        cin>>t;
        while(t--)
        {
            ll ans;
            cin>>n;
            ll a = n / 2;
            ll b = n - a;
            cout<<a * b<<endl; //注意相乘用long long
        }
    }
  • 相关阅读:
    二维线性表 list实现
    行测题
    邻接表
    链表中插入和删除结点
    linux监控指标和命令
    lr测试结果分析
    python 装饰器 decorator
    并查集 PID331 / 家族
    素数环 dfs+回溯
    catch the cow bfs
  • 原文地址:https://www.cnblogs.com/Roni-i/p/8724855.html
Copyright © 2011-2022 走看看