构造,循环节
发布日期:2021-05-14 16:51:56 浏览次数:21 分类:精选文章

本文共 575 字,大约阅读时间需要 1 分钟。

在这里插入图片描述

大致题意:在长度为n的数组里插入一些数,让他每k个数只和都相等。
思路:最后的数列一定是a,b,c,d ,a,b,c,d。。它是拥有循环节的,可以把存在的数放到set里,如果set比k还大,就无法构造循环节了,我们可以构造n个循环节,每个循环节里面如果set个数比k小可以用1来代替。
代码:

#include
#include
#include
using namespace std;set
s;int a[1000];int main(){ int t; cin>>t; while(t--) { s.clear(); int n; int k; cin>>n>>k; for(int i=0;i
>a[i]; s.insert(a[i]); } if(s.size()>k) { puts("-1"); } else { cout << n*k << endl; for(int i=0;i
上一篇:牛客多校签到题
下一篇:叉鸡判断顺时针还是逆时针

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月24日 17时38分12秒