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;
}
相关推荐
wen__xvn19 小时前
代码随想录算法训练营DAY15第六章 二叉树part03
数据结构·算法·leetcode
Sagittarius_A*19 小时前
图像滤波:手撕五大经典滤波(均值 / 高斯 / 中值 / 双边 / 导向)【计算机视觉】
图像处理·python·opencv·算法·计算机视觉·均值算法
seeksky19 小时前
Transformer 注意力机制与序列建模基础
算法
玖釉-19 小时前
[Vulkan 学习之路] 03 - 你的守护天使:校验层 (Validation Layers)
c++·windows·图形渲染
冰暮流星19 小时前
c语言如何实现字符串复制替换
c语言·c++·算法
txinyu的博客19 小时前
C++内存池的内存对齐问题
c++
Swift社区19 小时前
LeetCode 374 猜数字大小 - Swift 题解
算法·leetcode·swift
Coovally AI模型快速验证19 小时前
2026 CES 如何用“视觉”改变生活?机器的“视觉大脑”被点亮
人工智能·深度学习·算法·yolo·生活·无人机
有一个好名字19 小时前
力扣-链表最大孪生和
算法·leetcode·链表
AshinGau19 小时前
Groth16 ZKP: 零知识证明
算法