C. Doremy‘s City Construction(二分图问题)

思路:把集合划分成两部分,一部分中每个数都比另一部分小,这两部分连成一个完全二分图,这种情况是最优的,还需要特判所有数都相等的情况.

代码:

cpp 复制代码
void solve(){
    int n;
    cin >> n;
    vector<int>a(n + 1);
    for(int i = 1;i <= n;i ++)
        cin >> a[i];
    sort(a.begin(),a.end());
    if(a[1] == a[n]){
        cout << n/2 << endl;
        return;
    }
    int ans =0;
    for(int i = 1;i <= n;i ++){
        int j = i;
        while(j + 1 <= n && a[j + 1] == a[i])j ++;
        ans = max(ans ,j * (n - j));
        i = j;
    }
    cout << ans << endl;
}
相关推荐
特立独行的猫A9 小时前
c++的`std::future` 与 `std::promise` 简明教程(5分钟读完)
c++
特立独行的猫A9 小时前
C++ 异步编程:std::future 与 std::promise 详解(含 RPC 客户端实现实践)
c++·后端
FluxArt9 小时前
GPT Image 2.5 多图参考怎么用:Flux Art 生成与编辑教程
数据结构·gpt·算法
All for pursuit.9 小时前
【分治-2】215.数组中的第K个最大元素
数据结构·c++·算法·leetcode
lcj251110 小时前
【C++】set和map——详细使用说明
开发语言·c++·笔记·面试
潼心1412o10 小时前
C++初阶(长期更新)第3讲:类和对象(中)
开发语言·c++
CQU_JIAKE10 小时前
9.15【A】
算法·动态规划
成为深度学习高手10 小时前
DAG:沿时间与通道双相关建模的外生变量时序预测
网络·人工智能·深度学习·算法·机器学习·数据挖掘·时序数据库
程序喵大人10 小时前
【C++入门】编译链接模型 - 02 预处理把头文件怎样塞进源文件
开发语言·c++·预处理·编译链接·头文件·源文件
阳明山水10 小时前
CEDAR双重解耦实现决策与干预分离
人工智能·深度学习·算法·机器学习·架构