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

中国东盟建设集团有限公司网站电子商务推广方式

中国东盟建设集团有限公司网站,电子商务推广方式,上海网站建设机构,天津最好的网站建设C 题面 Problem - 1348B - Codeforces 输出标准输出 凤凰网喜欢美丽的数组。如果一个数组中所有长度为k的子数组 的子数都有相同的总和,那么这个数组就是美丽的。一个数组的子数组是任何连续元素的序列。 凤凰网目前有一个数组a 的长度为n . 他想在他的数组中插入…

C

题面

Problem - 1348B - Codeforces
输出标准输出
凤凰网喜欢美丽的数组。如果一个数组中所有长度为k的子数组
的子数都有相同的总和,那么这个数组就是美丽的。一个数组的子数组是任何连续元素的序列。

凤凰网目前有一个数组a
的长度为n
. 他想在他的数组中插入一些整数,可能是零,这样它··就会变得很漂亮。插入的整数必须是在1
和n
包括在内。整数可以插入任何地方(甚至在第一个或最后一个元素之前或之后),而且他并不是要尽量减少插入的整数的数量。

输入
输入由多个测试案例组成。第一行包含一个整数t
(1≤t≤50
)–测试用例的数量。

每个测试用例的第一行包含两个整数n
和k
(1≤k≤n≤100
).

每个测试用例的第二行包含n
空间分隔的整数(1≤ai≤n
)–Phoenix当前拥有的数组。这个数组可能是也可能不是已经很美。

输出
对于每个测试案例,如果不可能创建一个漂亮的数组,则打印-1。否则,打印两行。

第一行应该包含美丽数组的长度m
(n≤m≤104
). 你不需要最小化m
.

第二行应该包含m
空间分隔的整数(1≤bi≤n
)–这是一个美丽的数组,Phoenix将一些可能为零的整数插入他的数组a后可以得到。
. 你可以打印原本不在数组a中的整数
.

如果有多个解决方案,就打印任何一个。可以保证,如果我们能使数组a
美丽,我们总能使它的结果长度不超过104
.

例子
InputCopy
4
4 2
1 2 2 1
4 3
1 2 2 1
3 2
1 2 3
4 4
4 3 4 2
输出拷贝
5
1 2 1 2 1
4
1 2 2 1
-1
7
4 3 2 1 4 3 2
注意
在第一个测试案例中,我们可以通过插入整数1来使数组a
通过在索引3处插入整数1
在索引3处
(在现有的两个2之间)
s). 现在,所有长度为k=2的子数组
都有相同的和 3
. 存在许多其他可能的解决方案,例如:

2,1,2,1,2,1
1,2,1,2,1,2
在第二个测试案例中,数组已经非常漂亮:所有长度为k=3的子数组
都有相同的和 5
.

在第三个测试案例中,我们可以证明,我们不能插入数字来使数组a
美丽。

在第四个测试案例中,数组b
是美丽的,所有长度为k=4的子数组
的所有子数都有相同的和 10
. 也存在着其他的解决方案。

代码

CodeForces - 1348B Phoenix and Beauty(思维+题干细节)_zaiyang遇见的博客-CSDN博客
见代码问号注释

#include<bits/stdc++.h>
using namespace std;
const int N=110;
int f[N],vis[N],c[N];
***
int main()
{int T;cin>>T;while(T--){memset(f,0,sizeof f);memset(vis,0,sizeof vis);memset(c,0,sizeof c);***int n,k,S=0;多组输入初始化cin>>n>>k;数组长,漂亮长for(int i=1;i<=n;i++){cin>>f[i];if(vis[f[i]]==0){vis[f[i]]=1;c[++S]=f[i];}}读入并记录原数组数据和数据是否出现。记录数组数据种类,并存入c***if(S>k){cout<<-1<<endl;种类大于k则不能构造漂亮因为每个k长度的连续序列里的总和相同的话,必定是要每个k区间元素都具有相同的种类与排列}***else{否则:for(int i=S+1;i<=k;i++)c[i]=c[i-1];***for(int i=k+1;i<=9999;i++)需要构造n*k个这样的连续序列。????????????????????????似乎是因为存在一些排列与要构造k排列不同的子区间,而且又不能打乱n的排列,所以假定最坏情况下每次构造只能满足其中一个元素的排列,这样要构造n-k次。c[i]=c[i-k];距离为k+1cout<<9999<<endl;***for(int i=1;i<=9999;i++)cout<<c[i]<<" ";cout<<endl;}不够k的部分,随便补,可以补成一样的数。大于k的部分,变成和k一样的序列只要具有相同的长度为k的排列,就可以满足题意,突然发现可以用双指针滑动窗口来理解这个题因为以k长度的滑动窗口移动时,k少掉了哪个元素,就会新增哪个元素。最后输出。看到k长度没有提取出双指针滑动窗口套路,不太熟练,要再去加深印象}return 0;
}

考验代码

4:30
4:00
4:00

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1e4 + 10;
int vis[N],f[N],c[N];
int  main(){int T;cin >> T;while(T--){memset(vis,0,sizeof vis);int n,k,siz = 0;cin >> n >> k;for(int i = 1;i <= n;i++){cin >> f[i];if(!vis[f[i]]){vis[f[i]] = true;c[++siz] = f[i];}}if(siz > k){cout << -1 << endl;}else{for(int i = siz + 1;i <= k;i++){c[i] = 1;}for(int i = k+1;i <= n *k;i++){c[i] = c[i-k];}cout << n*k << " " ;for(int i = 1;i <= n*k;i++){cout << c[i] << " " ;}cout << endl;}}return 0;
}

套路:双指针滑动窗口的构造。

前提条件:固定长度的连续区间

双指针滑动窗口特殊性在于每次移动会少一个元素,会多一个元素,
要让总和相同,少掉的元素必须等于新增的元素。

所以如果原数组中即将进入滑动窗口的元素不等于少掉的元素时,
就要插入一个与少掉的元素相等的数作为新增的元素。
一直插入直到原数组中每个元素都进入了滑动窗口。

http://www.shuangfujiaoyu.com/news/58528.html

相关文章:

  • 免费商城网站模板下载天津百度
  • 眉山做网站余姚网站制作公司
  • 深圳企业登记注册抚顺seo
  • 焦作网站建设哪家正规哈尔滨seo优化软件
  • 南昌企业做网站公关公司排行榜
  • html个人网页完整代码模板seo营销培训
  • 广东网站设计费用制作一个网页的步骤
  • 微网站中定位功能怎么做的seo综合查询是什么意思
  • 网站全屏轮播怎么做百度互联网营销顾问
  • 专业做网站电话百度搜索引擎怎么做
  • 如何做输入密码进入网站网络服务器地址怎么查
  • 深圳深圳龙岗网站建设公司seo关键词优化怎么收费
  • 北海哪家做网站网站seo运营
  • 有域名有服务器如何做网站怎么免费创建网站
  • 连锁酒店网站方案百度网站下载安装
  • 小型旅游网站建设方案营销软文推广平台
  • 低价网站建设哪家更好流量平台排名
  • 哪里有网站制作平台说说seo论坛
  • 渭南市网站建设友链交易网
  • 霸州有做滤芯网站的吗营销宝
  • 0基础怎么做网站模版成都网站关键词推广优化
  • 从搜索引擎访问网站策划推广方案
  • 五指山网站开发价格seo策略
  • 乐清做网站的公司企业官方网站推广
  • wordpress福利网站源码海口百度seo公司
  • 网页生成链接淘宝优化
  • 网站建设地位成都网站优化平台
  • 网站优化对企业有什么好处提升seo排名平台
  • 深圳做人工智能芯片的公司沈阳seo排名收费
  • 做好的网站怎么演示怎么优化自己网站