当前位置: 首页 > news >正文

贪心 [CSP-S 2025] 社团招新

[CSP-S 2025] 社团招新

CSP/NOIP 正在 ACM 化. 前几年 T1 送分往往都是写个模拟即可, 但现在变成考思维题了.

显然我们不妨先不管 \(\dfrac{n}{2}\) 的限制, 一股脑直接去把人扔到对应的社团里, 在从人数最多的社团里把多余的人给换到其它社团.
因为我们的限制是 \(\dfrac{n}{2}\), 所以当一个社团人达到 \(\dfarc{n}{2}\) 时, 另外两个社团人数分别均不超过 \(\dfrac{n}{2}\), 显然可行. 下一个问题就是将哪些人给换走.
显然换走人会产生使满意度下降, 我们的目的是要让满意度下降最少, 即最大值减去次大值要尽可能的小. 优先把这种人换到其它社团.

代码:

#include<iostream>
#include<algorithm>
#include<vector>
#define P(A) A=-~A
#define NUMBER1 100000
typedef long long LL;
struct Satify{int a[3],rank_place[3],max,mid,min;inline void inint(){int res=0;res=max=min=a[0],rank_place[0]=rank_place[2]=rank_place[1]=0;for(int j=1;j<3;P(j)){if(a[j]>max)max=a[j],rank_place[0]=j;else if(a[j]<min)min=a[j],rank_place[2]=j;res+=a[j];}rank_place[1]=3-rank_place[0]-rank_place[2],mid=res-max-min;}bool operator<(const Satify &A)const{return max-mid<A.max-A.mid;}
}student[NUMBER1+5];
int cnt[3],ans;
inline void solve(){ans=cnt[0]=cnt[1]=cnt[2]=0;int n,half_n,need_remove(0);std::cin>>n;half_n=n>>1;for(int i=1;i<=n;P(i)){for(int j=0;j<3;P(j))std::cin>>student[i].a[j];student[i].inint();}for(int i=1;i<=n;P(i))P(cnt[student[i].rank_place[0]]),ans+=student[i].a[student[i].rank_place[0]];for(int j=0;j<3;P(j))if(cnt[j]>half_n){need_remove=j;break;}std::sort(student+1,student+1+n);for(int i=1;i<=n&&cnt[need_remove]>half_n;P(i)){if(student[i].rank_place[0]^need_remove)continue;--cnt[need_remove],ans=ans-student[i].a[need_remove]+student[i].a[student[i].rank_place[1]],P(cnt[student[i].rank_place[1]]);}std::cout<<ans<<'\n';
}
signed main(){std::cin.tie(nullptr)->std::ios::sync_with_stdio(false);std::cout.tie(nullptr);int T;std::cin>>T;while(T--)solve();return 0;
}
http://www.jsqmd.com/news/65595/

相关文章:

  • 12月7日总结 - 作业----
  • P7115 [NOIP2020] 移球游戏 题解
  • pdf图片处理
  • 2025年12月本田雅阁更换轮胎推荐:最新性能测评与选购攻略
  • 获取运行中的exe的窗口标题名
  • 2025年大众帕萨特更换轮胎推荐:玲珑、米其林、马牌哪个是全面优选?
  • 12.7
  • 安卓页面的布局和生命周期(新手村第三篇) - 详解
  • 《场景化落地:用 Linux 共享内存解决进程间高效数据传输障碍(终篇)》
  • 本地AI模型API网址添加到Open WebUI的方法
  • 图像基础核心知识体系
  • P14660 你不孤单,我们都在 题解
  • Python 潮流周刊#130:Django 6.0 发布了
  • 渗透测试实验一报告
  • zebra zt610
  • 基于深度学习的苹果病害检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • 代码随想录Day30_贪心4
  • [论文笔记] Interleaving Static Analysis and LLM Prompting
  • 必考
  • 一种 DAG 上可达性判定问题的解决方案
  • 网络空间威慑:通过“曝光”手段反制国家级网络间谍活动
  • Gemini 2.5原生音频技术与多模态能力解析
  • 实用指南:多种时间序列预测算法的MATLAB实现
  • [开源项目] 蜜蜂记账 v2.2 发布:暗黑模式、标签系统、预算管理等 10+ 新功能
  • 12 月记录
  • 嵌入式软件架构--多窗口表明1(后台软件实现)
  • 【09】Word文档处理工具
  • 谁在主导“芯片战争”
  • 定制化 Live555 实战:按需开发低耗 RTSP 服务器,完美适配 C# 项目 - 源之缘
  • KEIL5软件查看函数最大调用深度12.7