首页 > 其他分享 >CF 1863 C

CF 1863 C

时间:2023-09-10 11:45:04浏览次数:39  
标签:typedef int CF long cin 1863 bool tie

C. MEX Repetition

通过观察样例,直接猜结论可知,例如第二个样例\([0, 1, 3]\)后面其实有一个隐藏数字(2),所以完整的排列为\([0, 1, 3, 2]\)。然后每一次操作都是把最后的一位数字移到整个排列的最前面,并把最后一位隐藏,所以直接取模就能求出最后的排列。

代码

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
typedef pair<ll, ll> PII;

const int N = 1e5 + 10;
int t;
int n, k;
int a[N];
bool v[N];
signed main()
{
    std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cin >> t;
    while(t--)
    {
        cin >> n >> k;
        memset(v, 0, sizeof(bool) * (n + 1));
        for(int i = 0;i < n;i++)
        {
            cin >> a[i];
            v[a[i]] = 1;
        }
        for(int i = 0;i <= n;i++)
        {
            if(!v[i])
            {
                a[n] = i;
                break;
            }
        }
        int cnt = 0;
        for(int i = (-k % (n + 1) + (n + 1)) % (n + 1);cnt < n;cnt++, i = (i + 1) % (n + 1))
        {
            cout << a[i] << " ";
        }
        cout << endl;
    }
    return 0;
}

标签:typedef,int,CF,long,cin,1863,bool,tie
From: https://www.cnblogs.com/tongluosao/p/17690952.html

相关文章

  • CF758F
    题目链接description求满足长度为\(n\),所有项都是\([l,r]\)间的正整数且公比为非1有理数的等比数列的数量。\(n\leq10^7,1\leql\leqr\leq10^7\)solution先不考虑公比不能为1的限制,对于\([l,r]\)间的正整数\(a,b\),它们可以分别作为首项末项构成等比数列的一个必......
  • CF1570D 题解
    思路分析前言题解区好似没有用哈希的啊。发现大家都在用map来存是否出现过数字,但是需要注意的是,map的单次查询时间复杂度是\(\mathcalO(\logn)\)的,对于大规模的数据就很可能会TLE。所以,我们可以使用哈希的方法来判断数字是否出现过。浅谈哈希哈希,是通过哈希函数将数......
  • 【题解】Educational Codeforces Round 143(CF1795)
    A.TwoTowers题目描述:有\(a,b\)两座由红蓝色方块垒成的塔,其中\(a\)的高度为\(n\);\(b\)的高度为\(m\),用R代表红色;用B代表蓝色。你可以多次把其中一座顶端的方块移到另一座的顶端(可以不移动)。问有没有一种方法可以使两座塔中均没有连续的同颜色方块。题目分析:可以......
  • 【CF1364C】Ehab and Prefix MEXs(构造)
    题目大意:给出长度为\(n(1\len\le10^5)\)的数组\(a\),构造数组\(b\)使得\(a_i=MEX\{b_1,b_2,...,b_1\}\)首先考虑当\(b_1,b_2,...,b_n\)为什么数时,\(a_n=MEX\{b_1,b_2,...,b_n\}\)。然后再考虑当\(b_1,b_2,...,b_{n-1}\)为什么数时,\(a_{n-1}=MEX\{b_1,b_2,...,b_{n-1}\}\)。......
  • [题解] CF29D Ant on the Tree
    CF29DAntontheTree题目知识点:LCA。题目传送门题意给定一棵以\(1\)为节点的树,再给定树的所有叶子节点的一个序列。现在执行一个操作:从\(1\)开始遍历每个节点,并返回根,要求每条边经过的次数一定为\(2\)。问是否能够使得访问节点序列中叶子节点的序列符合给定序列的条......
  • CF1834E
    题目链接description给定一个长度为\(n\)的序列\(a\),求一个最小的正整数\(x\),使得它不是这个序列任意区间的最小公倍数。值域\(W=10^9\)solution显然答案最大的数量级为\(O(n\logn)\),记\(m=n\times(\lfloor\log_2n\rfloor+1)\)。考虑枚举区间右端点,维护以\(r\)为......
  • CF982E
    题目链接description如上图,\((0,0),(0,m),(n,0),(n,m)\)是四个口袋。一个台球从整点\((x,y)\)按照给定的初始方向出发(方向只可能平行于坐标轴或和坐标轴呈45°夹角),当它和一个口袋的坐标重合时游戏结束。给定\(n,m,x,y\)以及球初始的速度方向,求它最终落到哪个口袋。如......
  • CF1513C题解
    一道递推由于对于一个数x,可得x+10-x=10(废话)于是问题就变成了0+m次,然后x+m就变成0+x+m(还是废话)于是可以写一个递推。首先对于函数f(m)可分为m ≤9和m>9,然后可得出递推式结果为1或f(m-9)+f(m-10),所以我们可以直接求出结果再分解数位求值。最后贴上代码......
  • CF1872
    LinkATwoVessels十分甚至九分地简单#include<bits/stdc++.h>usingnamespacestd;intt;inta,b,c;intmain(){ scanf("%d",&t); while(t--){ scanf("%d%d%d",&a,&b,&c); c<<=1; a=abs(a-b); printf("%d\n&q......
  • CF1106F
    题目链接description定义数列\(f\),当\(i>k\)时,\(f_i=\prod\limits_{j=1}^kf_{i-j}^{b_k}\)模998244353。已知数组\(b\)且\(f_1,f_2,\dots,f_{k-1}\)均等于1,给定\(n,m\)。求任意一个合法的\(f_k\)的取值(在\([0,998244352]\)间),使得\(f_n=m\)无解输出-1\(k......