题意 : 可以选择操作一串区间,将区间内的某一个数全部变成一个新的数字,询问整个区间中某个数字的出现次数总共有多少个?

思路分析 : 首先最后选的一定是一个区间,然后 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;
}

最新文章

  1. 使用Spring Task轻松完成定时任务
  2. CAST()函数
  3. HTML5+AJAX原生分块上传文件的关键参数设置
  4. iOS (catagroy)类别
  5. 【BZOJ 1563】 [NOI2009]诗人小G
  6. power desinger 学习笔记三&lt;批量执行sql语句&gt;
  7. 管理Activity 用户在主界面按两次回退退出系统
  8. UVA 1622 Robot
  9. 视频编辑类sdk--lansoeditor--更新啦, 完全免费,欢迎下载
  10. Unity3D-Shader-实现X光效果
  11. 通过PING命令中的TTL来判断对方操作系统
  12. dephi FillChar 的几种写法
  13. 联发科安卓6.0项目的到来的第一个难题:tar的分包与并包
  14. 天融信资料下载官方FTP服务器
  15. dig 命令
  16. 【MySQL】 Cannot load from mysql.proc. The table is probably corrupted
  17. react组件的创建
  18. Linux驱动之PCI
  19. Jmeter BeanShell 引用变量报错jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Parse error at line 14, column 181 : Error or number too big for integer
  20. React 组件条件渲染的几种方式

热门文章

  1. java.util.NoSuchElementException: No value present
  2. Python3 dir() 函数
  3. java Scanner(简单文本扫描器)
  4. js基础——对象和数组
  5. H3C IPv6地址解析
  6. H3C通过端口ID决定端口角色
  7. 递归&amp;时间模块&amp;os模块
  8. 大数据vs计算机
  9. linux查看文件内容跳到文件底部和回到文件顶部的快捷键
  10. 一种HTML table合并单元格的思路