JZOJ_7.19C组第四题 秀姿势

2024-01-30 04:48
文章标签 第四 姿势 jzoj 7.19

本文主要是介绍JZOJ_7.19C组第四题 秀姿势,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意

给出一个序列,我们可以进行k次操作,每次操作都能刷掉所有相同的数,求出这个序列中的连续子序列最长。
这里写图片描述

思路

这题我们可以用到队列。维护一个区间,使里面数的种类不超过k+1,那答案就为这些合法区间中的相同的数的数量的最大值。

代码

#include<cstdio>
#include<cstring>
#include<algorithm>
#define p 1000007
#define hash(x) x%p
using namespace std;
int n,k,a[100001],h[p],v[p],s,head,sum,ans,w1,w2;
int locate(int x)
{int f=hash(x);while (h[f]!=0&&h[f]!=x) f=(f+1)%p;return f;
}
int main()
{scanf("%d%d",&n,&k);k++;for (int i=1;i<=n;i++){scanf("%d",&a[i]);w1=locate(a[i]);if (!v[w1]) sum++;//如果新加一个没出现过的数,那么sum(区间里面数的种数)+1 v[w1]++;//v[i]代表i这个数的数量h[w1]=a[i];//存hash表 while(sum>k)//弹到种数<=k+1{w2=locate(a[head]);v[w2]--;if (!v[w2]){sum--;h[w2]=0;}head++;}ans=max(ans,v[w1]);//取最大值 }printf("%d",ans);
}

这篇关于JZOJ_7.19C组第四题 秀姿势的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/659144

相关文章

项目实战系列三: 家居购项目 第四部分

购物车 🌳购物车🍆显示购物车🍆更改商品数量🍆清空购物车&&删除商品 🌳生成订单 🌳购物车 需求分析 1.会员登陆后, 可以添加家居到购物车 2.完成购物车的设计和实现 3.每添加一个家居,购物车的数量+1, 并显示 程序框架图 1.新建src/com/zzw/furns/entity/CartItem.java, CartItem-家居项模型 /***

C语言深度剖析--不定期更新的第四弹

哈哈哈哈哈哈,今天一天两更! void关键字 void关键字不能用来定义变量,原因是void本身就被编译器解释为空类型,编译器强制地不允许定义变量 定义变量的本质是:开辟空间 而void 作为空类型,理论上不应该开辟空间(针对编译器而言),即使开辟了空间,也只是作为一个占位符看待(针对Linux来说) 所以,既然无法开辟空间,也无法作为正常变量使用,既然无法使用,干脆编译器不让它编译变

HDU1720(输入输出涨姿势)

A+B Coming Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5953    Accepted Submission(s): 3901 题目链接: http://acm.hdu.edu.cn/showproblem.p

Hdfs FileSystem 使用姿势不对导致的内存泄露

文章目录 一、问题描述二、问题排查Java Heap Dump文件使用Jmap获取运行中的jvm内存在Jhat页面查找对应类实例具体的引用问题定位 三、解决方案四、总结 一、问题描述 有用户反馈访问httpfs服务偶尔出现502的情况,所以上httpfs服务器看了下,发现有一台因为OOM挂掉了(运维告警没弄好,所以没及时通知到)。 目前有两台HttpFs,通过nginx转发,

Jzoj 条件循环(while,do while) 部分代码(共25题)

1020: 【入门】编程求1+3+5+...+n #include <bits/stdc++.h>using namespace std;int n, sum;int main() {scanf("%d", &n);for(int i=1; i<=n; i+=2){sum+=i;} printf("%d", sum);return 0;} 1012: 【入门】两数比大小 #i

Jzoj 二维数组部分代码(共13题)

2788: 【入门】二维数组的输入输出 边输入边输出 #include <bits/stdc++.h>using namespace std;int n, m, a[11][11];int main(){scanf("%d %d", &n, &m);//边输入边输出for(int i=1; i<=n; ++i){for(int j=1; j<=m; ++j){scanf("%d", &

第四讲:拟合算法

与插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟合问题的目标是寻求一个函数(曲线)使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好(最小化损失函数)。 插值算法中,得到的多项式f(x)要经过所有样本点。但是如果样本点太多,那么这个多项式次数过高,会造成龙格现象。 尽管我们可以选择分段的方法避免这种现象,但是更多时候我们更倾向于得到-个确定的曲线,尽管这条曲线不能经过每

Hive源码本地IDEA调试的正确姿势

Hive源码本地IDEA调试的正确姿势 背景环境准备初始化配置修改配置初始化元数据库编译代码 启动HiveMetaStore启动Hive sql客户端Client Driver模式HiveServer2模式启动HiveServer2启动beeline客户端本地启动远程启动 总结 背景 Hive作为最最基础的大数据框架,可以说,没装Hive,就等于没有大数据这回事。Hive的

(第四十天)配置完整的考试系统,完成前端和后端并优化,mysql后端,nginx前端,java连接

回顾 1 、使用 harbor 仓库 python --version yum -y update yum -y install python2-pip pip install --upgrade pip == 20 .3 -i ....... pip install docker-compose -i .......

让Activity更加简洁第二篇---AsyncTask的使用姿势

如果你点开的这篇文章,那么 AsyncTask 的基本用法肯定是掌握了的。这篇文章不是分析 AsyncTask的内部原理,而是侧重于如何使用,让我们视图层中的Activity看起来更舒适。本文的项目地址请移步:https://github.com/herojing/JokeTask 下面结合项目谈谈自己的使用心得。 一、使用后效果如何?        老规矩,DEMO 实现的是