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

定州网站建设开发网站的公司

定州网站建设,开发网站的公司,国内模板建站公司,太原注册公司代办费用Problem - C - Codeforces 题目大意&#xff1a;有一个长度为n的数组&#xff0c;数组中每个数字互不相同&#xff0c;范围都是0到n&#xff0c;每次操作将每一个数字从左到右依次变成当前数组的MEX&#xff0c;问k次操作后的数组 1<n<1e5&#xff1b;1<k<1e9 思…

Problem - C - Codeforces

题目大意:有一个长度为n的数组,数组中每个数字互不相同,范围都是0到n,每次操作将每一个数字从左到右依次变成当前数组的MEX,问k次操作后的数组

1<=n<=1e5;1<=k<=1e9

思路:因为每个数都互不相同,且数字范围比数组长度正好大1,这样不停的求MEX,猜想肯定会出现循环节,我们不妨用样例多进行几次操作,发现其实操作k次就相当于将n的范围内数组中没有的那个数放到数组最后,然后将数组右移k个数,例如a=[1,2,3,4,5],操作1次就是[0,1,2,3,4],操作2次就是[5,0,1,2,3],操作3次就是[4,5,0,1,2]。

所以我们将0~n内数组中没出现的那个数放到数组末尾,然后令k对(n+1)取模,先输出[n+1-k+1,n+1]部分的数组,再输出[1,n-k]部分的数组

//#include<__msvc_all_public_headers.hpp>
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n;
int a[N];
int cnt[N];
void init()
{for (int i = 0; i <= n; i++){cnt[i] = 0;}
}
void solve()
{int k;cin >> n >> k;init();int mex = 0;for (int i = 1; i <= n; i++){cin >> a[i];cnt[a[i]]++;//记录每个数字是否出现}for (int i = 0; i <= n; i++){if (!cnt[i]){mex = i;//找到当前的MEXbreak;}}a[n + 1] = mex;k = k % (n + 1);for (int i = n + 1 - k + 1; i <= n + 1; i++){cout << a[i] << " ";}for (int i = 1; i <= n - k; i++){cout << a[i] << " ";}cout << endl;
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);int t;cin >> t;while (t--){solve();}
}

http://www.mmbaike.com/news/44948.html

相关文章:

  • wordpress一栏多图北京优化seo排名优化
  • 合肥商城网站建设多少钱网络营销环境分析包括哪些内容
  • 建立网站专栏今天有哪些新闻
  • 做网站虚拟主机推荐什么是电商平台推广
  • 做趣味图形的网站成都最新疫情
  • wordpress免登录发文章seo整站网站推广优化排名
  • 第三次网站建设的通报网络营销推广外包服务
  • 怎么可以自己做网站被百度收到如何注册网站平台
  • 悉知网站建设鸿星尔克网络营销
  • 怎样做网站建设的程序手机端网站优化
  • 阿里云免费企业邮箱申请德州网站建设优化
  • 建设国家地质公园网站主要功能中牟网络推广外包
  • 月嫂网站建设方案互联网广告销售是做什么的
  • 奶茶店做网站好处抖音十大搜索关键词
  • 网站接电话win7系统优化
  • 合肥建设网站查询网销怎么做才能做好
  • 凡科建设网站怎么保存站长工具5g
  • 网站弹窗代码网店营销策划方案
  • 网站为什么做301晚上国网app
  • 绵阳网站建设怎么做适合企业员工培训的课程
  • sogo提交网站入口百度电商平台
  • 宜昌网站制作嘉兴seo外包平台
  • 怎么用网吧电脑做网站服务器吗互联网营销师培训课程免费
  • 常州 网站优化代运营公司怎么找客户
  • 外贸网站推广建设百度代理加盟
  • 视频分享网站建设难吗chrome官方下载
  • 怎么用代码做网站郑州seo技术博客
  • 现在是用什么软件做网站百度seo网站在线诊断
  • php儿童摄影网站源码手机怎么建自己的网站
  • 新手做网站需要多久重庆百度快速优化