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

【题解】CF2232C2

0

\(link\)

1:注意到

唯一的变量是 \(A\) 的赋值,容易发现,把固定数量 \(g\)\(A\) 变成 \(I\),其余为 \(E\) ,那么变换 \(A\) 的前缀最优

2:O(n^2)

枚举 \(g\) ,取 \(max\)

3:O(nlogn)

注意到单峰,二分求导即可

对于单峰,感性证明一下

多了一个 \(A\) 变成 \(I\)

如果桶不满,一定不降

否则一定先不降(卡掉一个 \(I\) ,加上一些 \(E\) ),再降(只卡掉一个 \(I\)

综上,单峰

4:代码

// Problem: C2. Seating Arrangement (Hard Version)
// Contest: Codeforces - Codeforces Round 1101 (Div. 2)
// URL: https://codeforces.com/contest/2232/problem/C2
// Memory Limit: 256 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include<bits/stdc++.h>
#define int long long 
#define Pair pair<int,int>
#define eps 1e-6
using namespace std;
using LL=long long;
const int N=5e5+10;
char c[N];
char d[N];
int n,x,s;
int calc(int g){int k=g;for(int i=1;i<=n;i++){d[i]=c[i];if(d[i]=='A'){if(k){d[i]='I';k--;}else d[i]='E';}}int desk=0;int res=0;for(int i=1;i<=n;i++){if(d[i]=='I'){if(desk+1<=x){desk++;res++;}}else{if(res+1<=desk*s){res++;}}}	return res;
}
void solve(){cin>>n>>x>>s;for(int i=1;i<=n;i++) cin>>c[i];int l=0,r=n;while(l<r){int mid=l+r>>1;if(calc(mid)>=calc(mid+1)) r=mid;else l=mid+1;}cout<<calc(l)<<"\n";
}
signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t=1;cin>>t;while(t--) solve();return 0;
}

5.反思与评价

饭堂了

5.1

C1往dp角度想了,所以想到一个算法,一定要再想一想有没有更简单的替代算法

5.2

C2场上想到三分,觉得是假的没去证

所以在没有进展的情况下,一定要尝试各个解法

http://www.gsyq.cn/news/1448985.html

相关文章:

  • 学Simulink--交错并联 Buck 变换器的均流控制与热应力分析仿真
  • 如何在Windows上实现完全离线的实时语音识别与会议转录
  • 岗位干货|测试岗位全解析:小白 0-1 落地指南(职责拆解 + 环境搭建 + 实战避坑 + 面试题库)
  • leecodecode【反转链表+快慢指针】【2026.5.29打卡-java版本】
  • 手把手教你学Simulink--交错并联 Buck 变换器的均流控制与热应力分析仿真
  • 鸣潮游戏模组大全:15项功能解锁全新游戏体验,5分钟快速上手指南
  • 系统集成项目管理工程师案例分析怎么复习? - 众智商学院官方
  • DamaiHelper:基于Selenium的票务自动化解决方案实现原理与应用指南
  • Day6:RAG项目实战(1)
  • C++20新特性解析:从概念到协程的全面指南
  • 显存优化解码:ComfyUI-WanVideoWrapper如何让8GB显卡也能生成高清视频
  • CyberpunkSaveEditor终极指南:如何快速解决赛博朋克2077存档的5大常见问题
  • 文章七:ElasticSearch 集群监控指标
  • 告别Touch Bar鸡肋!保姆级MTMR配置教程,打造你的专属Mac效率神器
  • 基于 PaddleOCR 和 Flask 的学生证借书证识别与档案录入系统实战
  • 55项功能终极指南:如何使用HsMod深度定制炉石传说游戏体验
  • 快速排序扩展:三路划分与自省排序,解决重复元素和最坏退化问题
  • 泉州黄金回收哪家不玩套路?丰泽、晋江、鲤城三店实测实录 - 百福黄金回收
  • 基于 BERTopic 的电商评论主题聚类与差评原因分析系统实战
  • 3步搞定海尔智能设备接入HomeAssistant:新手完整指南
  • 介绍网络编程中的Select
  • 从Linux命令行到MinIO存储桶:一份给运维的mc命令对照表与实战脚本
  • 3步解锁扫描PDF价值:OCRmyPDF让纸质文档重获数字生命
  • 2026年船用救生衣灯与特种锂电池优质厂家推荐:全品类船用示位灯、海洋特种锂电池一站式供应 - 海棠依旧大
  • c++迭代器失效问题
  • ATmega328P烧录Bootloader总报错?别急着换芯片,先检查这个签名!
  • 私人AI Agent搭建:让人人都拥有自己的数字员工
  • 老硬盘迁移到新电脑无限重启?可能是Intel VMD在捣鬼,附PE下驱动注入完整流程
  • Tessy新手避坑指南:从零搭建单元测试工程,手把手搞定.c文件与.h文件链接
  • 别再傻傻重做U盘了!Windows10安装报错0x8007000D,一招拆分install.wim搞定