最大区间和变形 - codeforces
2024-10-08 05:28:13
题意 : 可以选择操作一串区间,将区间内的某一个数全部变成一个新的数字,询问整个区间中某个数字的出现次数总共有多少个?
思路分析 : 首先最后选的一定是一个区间,然后 ans = cnt(1, l-1, c)+cnt(r+1, n, c)+cnt(l, r, d)
ans = cnt(1, n, c) - cnt(l, r, c) + cnt(l, r, d)
即,我们只需要最大化 l - r 内的 d - c 的个数,其实就是个最大区间和的变化版本,统计一个数时,当这个数的的个数小于C的个数时,只需要将它的个数更新到和 d 的个数一样即可
代码示例 :
int n, c;
int a[maxn];
int cnt[maxn]; void solve(){
int f = 0;
for(int i = 1; i <= n; i++){
cnt[a[i]] = max(cnt[a[i]], cnt[c]);
cnt[a[i]]++;
f = max(f, cnt[a[i]]-cnt[c]);
}
printf("%d\n", f+cnt[c]);
}
int main() {
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout); cin >> n >> c;
for(int i = 1; i <= n; i++) scanf("%d", &a[i]); solve();
return 0;
}
最新文章
- 使用Spring Task轻松完成定时任务
- CAST()函数
- HTML5+AJAX原生分块上传文件的关键参数设置
- iOS (catagroy)类别
- 【BZOJ 1563】 [NOI2009]诗人小G
- power desinger 学习笔记三<;批量执行sql语句>;
- 管理Activity 用户在主界面按两次回退退出系统
- UVA 1622 Robot
- 视频编辑类sdk--lansoeditor--更新啦, 完全免费,欢迎下载
- Unity3D-Shader-实现X光效果
- 通过PING命令中的TTL来判断对方操作系统
- dephi FillChar 的几种写法
- 联发科安卓6.0项目的到来的第一个难题:tar的分包与并包
- 天融信资料下载官方FTP服务器
- dig 命令
- 【MySQL】 Cannot load from mysql.proc. The table is probably corrupted
- react组件的创建
- Linux驱动之PCI
- Jmeter BeanShell 引用变量报错jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Parse error at line 14, column 181 : Error or number too big for integer
- React 组件条件渲染的几种方式