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;
}
相关推荐
神仙别闹1 分钟前
基于Python实现一个C语言的编译器
java·c语言·python
玛卡巴卡ldf8 分钟前
【LeetCode 手撕算法】(回溯)全排列DFS、子集、电话号码字母组合 九键、组合总和、括号生成、单词搜索、分割回文数
java·算法·leetcode·力扣
minji...12 分钟前
Linux 网络基础(三)HTTP的请求方法(GET/POST),HTTP表单、临时和永久重定向状态码、Cookie、查询参数、Web根目录
linux·运维·服务器·网络·c++·http
风筝在晴天搁浅12 分钟前
快手/腾讯 CodeTop LeetCode 43.字符串相乘
算法·leetcode
鱼很腾apoc12 分钟前
【学习篇】第18期 C++模板
c语言·c++
郝学胜-神的一滴14 分钟前
跨平台 C++ 静态库编译实战:Linux/Windows/macOS 三端统一实现
linux·开发语言·c++·windows·软件构建
派葛穆16 分钟前
ESP32开发- OLED显示“你好世界”——U8g2库完整教程
c++
weixin_4217252617 分钟前
Windows下C语言编译指南
c语言·visualstudio·mingw·gcc·windows编译
tankeven20 分钟前
C++ 指针
c++
@Ma21 分钟前
详细解读Redis作者antirez开源的ds4项目,ds4.c — DeepSeek V4 Flash 本地推理引擎(中文文档)
c语言·redis·开源