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

P14361 [CSP-S 2025] 社团招新 / club 题解

P14361 [CSP-S 2025] 社团招新 / club 题解

P14361 [CSP-S 2025] 社团招新 / club 题解

题目链接

本人博客

前言

恩对,笔者在考场上思来想去,一共实现了 \(3\) 种代码,但无一例外,均未调出来。怒得 \(25\) pts遗憾退场。

思路

首先需要让每个人选自己最喜欢的社团(贪心),这无疑是最优的。但是有可能不合法。

那我们考虑不合法应该怎么办。

\(3\) 个部门人数为 \(a,b,c\)(其中 \(a \geq b \geq c\))。如果不合法当且仅当 \(a > \frac{n}{2}\)\(b,c < \frac{n}{2}\)。证明如下。

| 由题意可知 \(a + b + c = n\)。若 \(a > \frac{n}{2}\),则为 \(n-(b+c) > \frac{n}{2}\),即 \(b+c < \frac{n}{2}\)

因此只需要考虑其中一个部门不合法的情况。(笔者就是这个证明考场上脑子不好使,没想到)

于是只需要预处理每个人从他最喜欢的部门到他次喜欢的部门的满意度差。答案把多出来的人的差减去即可。

笔者这里用的是优先队列维护,时间复杂度 \(O(n \log n)\)

代码如下

#include<cstdio>
#include<iostream> 
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
#define int long long 
inline int Read(){int x=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}while(isdigit(c)){x=x*10+c-48;c=getchar();}return x*f;
}
inline void Write(int x){if(x<0){x=-x;putchar('-');}if(x>9) Write(x/10);putchar(x%10+'0');
}
const int N=1e5+10;
int T,n,ans;
int a[10]; 
priority_queue<int> q1,q2,q3;
//三个队列用来维护每个部门的人数和每个人次大与最大之间的差
//注意默认为大根堆
int Max_3(int a,int b,int c){return max(max(a,b),c);}//最大值
void solve(){ans=0;while(!q1.empty()) q1.pop();while(!q2.empty()) q2.pop();while(!q3.empty()) q3.pop();//多测清空!n=Read();for(int i=1;i<=n;i++){//边输入边处理for(int j=1;j<=3;j++){a[j]=Read();} int t=Max_3(a[1],a[2],a[3]);if(a[1]==t){ans+=a[1];q1.push(max(a[2]-a[1],a[3]-a[1]));//因为默认大根堆,而我们最后贪心出队的应该是差最小的,所以可以存复数,出队的时候直接加  }else if(a[2]==t){ans+=a[2];q2.push(max(a[1]-a[2],a[3]-a[2]));  }else if(a[3]==t){ans+=a[3];q3.push(max(a[1]-a[3],a[2]-a[3]));}}while(q1.size()>n/2){ans+=q1.top();q1.pop();}while(q2.size()>n/2){ans+=q2.top();q2.pop();}while(q3.size()>n/2){ans+=q3.top();q3.pop();}	printf("%lld\n",ans);
}
signed main(){T=Read();while(T--){solve();//多测函数好}return 0; 
}
http://www.zskr.cn/news/38708.html

相关文章:

  • 2025年母线加工机实力厂家权威推荐榜单:铜排加工机/母排加工机/数控母线加工机设备源头厂家精选
  • GitHub小众宝藏扫街(自留)
  • csp2025 邮寄 根根又号号
  • Elasticsearch-head 安装
  • Unresolved reference ksp
  • 2025 年 11 月商标注册服务商权威推荐榜:覆盖江苏商标注册,靖江商标注册,常州商标注册,镇江商标注册,丹阳商标注册的专业机构精选
  • 2025 年连接器厂家最新推荐榜:实力制造商全面盘点,附中国电子元件行业协会权威测评数据与选型指南
  • AWS |ssh连接
  • 2025年杭州可以看运河的写字楼推荐,武林CBD商务办公全解析
  • PDF处理控件Aspose.PDF教程:在Python中向PDF文档添加页面
  • 点阵液晶屏驱动 VK1024B段码驱动IC 3线串行接口 LCD驱动原厂
  • 20255年11月换热器厂家权威测评:创新热管理技术的先锋
  • 2025年波光泉加工厂权威推荐榜单:喊泉/水景喷泉/喷泉工程源头厂家精选
  • 2025年11月锅炉厂家推荐榜:江苏永润锅炉领跑
  • 2025年减压阀制造企业权威推荐榜单:阀门/止回阀/排气阀源头厂家精选
  • 2025年中国液压榨油机生产企业推荐:小型液压榨油机生产厂哪家更值得选
  • 2025圆木/方木/原木/多片锯/厂家推荐榜:河北普悦机械五星领跑!高精度切割 + 场景适配,3 企凭特色突围​
  • 2025广告策划/营销策划/电商/餐饮/食品/化妆品/美妆/护肤品/建材/家居/品牌策划领域公司/机构推荐榜:物心策划以定制化破局,三家企业凭实战力脱颖而出
  • 微算法科技(NASDAQ MLGO):DPoS驱动区块链治理与DAO机制融合,共筑Web3.0坚实基石
  • 【LTDC】LTDC 驱动的接口层与 LCD 显示的应用驱动层
  • 2025年11月线椒种子厂家前十强榜:探索线椒种子厂家实力
  • 【LangChain Model IO 02】
  • rk3568时钟驱动
  • 探究cv2.GaussianBlur中ksize和sigma对于效果的影响
  • 2025年11月螺丝椒种子厂家推荐榜:镇江市镇研种业螺丝椒种子夺冠
  • AE/PR插件-Continuum 2026 v19.0.0 CE BCC视觉特效和转场插件一键安装版
  • 2025 年膜结构厂家最新推荐品牌排行榜:涵盖充电棚停车棚等多品类,精选五大优质企业权威解析景观棚/收费棚/体育棚/污水池棚/门头出入口棚/推拉棚公司推荐
  • 2025年酸洗钝化服务标杆厂家最新推荐:威海立森环保,专注不锈钢酸洗钝化/设备酸洗钝化/机械酸洗钝化/压力容器酸洗钝化/表面处理新标准
  • 让“照片查看器显示,并且能打开多种格式
  • Calico VXLAN 每一台节点服务器上都会开启并监听UDP 4789