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

免费做问卷的网站网站怎么做能让人搜到

免费做问卷的网站,网站怎么做能让人搜到,白云手机网站建设价格,4399游戏官网目录 题目简述: 思路: 总代码: https://codeforces.com/contest/2117/problem/C 题目简述: 给定一个整数数组,现要求你对数组进行分割,但需满足条件:前一个子数组中的值必须在后一个子数组中…

目录

题目简述:

思路:

总代码:



https://codeforces.com/contest/2117/problem/C

 

题目简述:

给定一个整数数组,现要求你对数组进行分割,但需满足条件:前一个子数组中的值必须在后一个子数组中全部出现(例如 123142,可以分成12 和3142这俩子数组)求子数组个数

思路:

关键思路很好想:尽可能早的进行数组分割

具体实操很难搞

我们可以维护一个集合,遍历整个数组,不断弹出当前所遍历到的值,如果这个集合为空了,那么此时就满足的分割条件,且是最优分割位置,此时ans++,此时集合需要更新成前一个集合(假设有集合a1,a2,a3,此时满足了a1中全部元素在a2中全出现了,下次再判断时就要满足a2中全部元素在a3中全部出现,所以把集合更新成a2)

接下来我们想用什么容器存呢?

这个容器得可以实现:任意删除,判空,去重(若a1中出现俩相同元素如a1=112,a2中只需出现一次1即可,所以要去重)。

那很显然了就是set。

总结:

使用集合s记录当前段的所有元素

从左到右遍历数组,对于每个元素a[i],将其从集合中删除

当集合为空时,说明当前段的所有元素都能在后续段中找到(因为已被删除),可以在此处分割

分割后重置集合,记录新段的起始位置

最后处理可能未完成的段

总代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
const int N=5e5+10;
int a[N];
void solve(){int n;cin>>n;set<int>s;for(int i=1;i<=n;i++)cin>>a[i];int ans=1;int r=1;for(int i=1;i<=n;i++) {s.erase(a[i]);if(s.empty()){ans++;for(int j=r;j<=i;j++)s.insert(a[j]);r=i+1;}}if(!s.empty())ans--;cout<<ans<<endl;
}
signed main(){ios::sync_with_stdio(false);cin.tie(nullptr);int q=1;cin>>q;while(q--) solve();return 0;
}

http://www.dtcms.com/a/599934.html

相关文章:

  • 东莞网站建设信科网络营销工具大全
  • 泰安高端网站设计建设河北网站制作公司
  • 网上的网站模板怎么下载网站 点击量
  • 网站服务器响应时间过长网站移动端生成器
  • 郑州做商城网站公司网站建设需要报告
  • 达州网站建设公司国外免费网站域名服务器
  • 食品企业网站建设方案上海专业做网站电话
  • com网站免费注册如何用iis部署网站
  • 河北省建设网湘潭seo公司
  • 建立有域名网站功能国际网站如何做seo
  • wordpress 网站重置免费软件网站大全
  • 网站建设企业排行榜广东省建设发展深圳公司
  • 全国网站建设人员数量淘宝网站建设基本流程
  • 做教育类网站一般流程开发公司合作协议
  • 注册营业执照网站搭建网站服务器教程
  • 网站建设回龙观seocui cn
  • 网站开发路径爱情动做电影网站推荐
  • 织梦html5网站模板恒大地产
  • jquery网站模板拍卖网站建设需求
  • 做教育网站宣传策略携程网网站规划建设特点
  • 网站建设课程设计心得增城营销网站建设
  • wordpress主题视频站欧派家居全屋定制价格多少钱一平
  • 通过网站赚钱网站服务器地址怎么查询
  • phpcms 网站如何制定网站建设规划
  • 温州网站建设 seo广州h5网站开发
  • 做淘宝客如何建立网站wordpress nginx 500
  • 嘉祥住房和城乡建设局网站网站 成品下载
  • 网站制作企业有哪些公司智能家居产品设计案例
  • 快要到期的域名网站有人用wordpress做企业
  • 网站如何做银联在线支付网页设计与制作过程中遇到的问题