首页 > 其他分享 >CodeTON Round 8 (Div. 1 + Div. 2, Rated, Prizes!)做题笔记

CodeTON Round 8 (Div. 1 + Div. 2, Rated, Prizes!)做题笔记

时间:2024-03-31 17:33:54浏览次数:170  
标签:Rated cout int CodeTON cin ++ Div include mex

A. Farmer John's Challenge

Problem - A - Codeforces

题意:构造出满足条件的数组a,否则输出-1

做法:判断k和n或者1的关系;k==1则输出1就行,k==n就从1输出到n;都不满足就输出-1;
代码:

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. int t;
  5. cin >> t;
  6. while (t--) {
  7. int n, k;
  8. cin >> n >> k;
  9. if (k == 1) {
  10. for (int i = 0; i < n; i++)
  11. cout << i + 1 << ' ';
  12. }
  13. else if (k == n) {
  14. for (int i = 0; i < n; i++)
  15. cout << "1 ";
  16. }
  17. else
  18. {
  19. cout << "-1";
  20. }
  21. cout << '\n';
  22. }
  23. return 0;
  24. }

B. Bessie and MEX

Problem - B - Codeforces 

题意:构造出满足条件a[i]=mex{p1,....,pi}-p[i]的数组p;

做法:判断a[i]的值,大于0直接等于mex,小于0等于mex-a[i];同时用另外一个数组统计是否使用过该mex值,不断更新就行

代码:

#include <iostream>

#include <vector>

#include <string>

#include <algorithm>

#include <unordered_map>

using namespace std;

int main() {

    int t;

    cin >> t;

    while (t--) {

        int n;

        cin >> n;

        vector<int>a(n);

        vector<int> p(n);

        vector<int> pd(n + 1,0);

        for (int i = 0; i < n; i++)

            cin >> a[i];

        int mex = 0;

        for (int i = 0; i < n; i++) {

            if (a[i] >= 0) {

                p[i] = mex;

            }

            else {

                p[i] = mex - a[i];

            }

            pd[p[i]] = 1;

            while (pd[mex])

                mex++;

        }

        for (int i = 0; i < n; i++)

            cout << p[i] << ' ';

        cout << endl;

    }

    return 0;

}

标签:Rated,cout,int,CodeTON,cin,++,Div,include,mex
From: https://blog.csdn.net/qq_74193144/article/details/137204278

相关文章

  • cf(div4) 第四周
    Problem-E-CodeforcesE.NearlyShortestRepeatingSubstring题解:我们直接枚举长度题目限制很多首先,枚举长度要确保整除然后我们在取从头开始的这个长度的字符串一一向下比对这里我们还要去这个长度的i+=len下一个字串在一一去比对然后就不可能往下取了,如果向下取那就......
  • CodeTonRound8-BC1C2补题
    B-BessieandMEX思路:顺,逆填都可以.见代码注释voidsolve(){//补B--不用str.find来维护,这个是o(n)的。用set的count()orfind()来维护,这两个都是o(logn)的intn;cin>>n;////顺着填:填的数字=MEX.find('0')-aior填了MEX[MEX.find('0')]='1',之后MEX.f......
  • SMU Winter 2024 div2 ptlks的周报Week 7(3.25-3.31)
    哈夫曼编码对出现频率大的字符赋予较短的编码,对出现频率小的字符赋予较长的编码。哈夫曼树的建树过程为,每次选取最小和次小的根节点,将它们之和作为它们的根节点,左子节点为小点,右子节点为次小点,直至仅剩一棵树。一棵哈夫曼树,左子树为0,右子树为1,以根节点到叶子结点的路径作为每个叶......
  • CodeTON Round 8 (Div. 1 + Div. 2, Rated, Prizes!) D
    链接开始的时候看错题了。以为区间是可以我划分的,后面才发现是连着的区域是被强制合并的。导致我第一个写了给k短路。紫砂了。然后我的第二个思路是,从后往前和从前往后做两边dp,然后尝试枚举断点,看看有没有比最优稍微劣一点的解法。然后样例就是反例。正解是想到过的,但是因为......
  • codeforces div4 Double Strings
    #include<iostream>#include<algorithm>#include<cstring>#include<map>usingnamespacestd;intT,n;strings[900005];map<string,int>mm;//存放每一个字符串是否出现过intmain(){ cin>>T; while(T--){ mm.clear();//每次清空mm里面的数......
  • Codeforces Round 937 (Div. 4)----->E. Nearly Shortest Repeating Substring
    一,思路:1.这题很容易想到枚举n的因数(时间复杂度n^(1/2)),然后根据这个长度枚举字符串,看是否满足最多只有一个不相同(时间复杂度n)。总的时间复杂度是(n根号n)的级别。又n是1e5级别所以可以过。但是当n是1e6就不行了。2.难点在于如何判断,一个字符串的不同字符数量,主要是hshah......
  • Codeforces Round 936 (Div. 2)
    Preface懒狗闪总开完组会不打CF直接滚去睡觉了可海星,感觉我好像退化成我们队训练最少的人了赛后补了下发现这场题竟然都会做,不过F不知道是我实现有问题常数大得一批加了读优才惊险卡过A.MedianofanArray签到,找到中位数后面与它相同的数的个数即可#include<cstdio>#incl......
  • Codeforces Round 915 (Div. 2) D
    CyclicMEX题面翻译对于一个长为\(n\)的排列\(p\),定义其权值为\(\sum_{i=1}^n\operatorname{mex}_{j=1}^ip_j\),也就是\(p_1\simp_i\)中没有出现过的最小自然数的和。然后你可以对这个排列进行移位操作,问最大权值。题目描述Foranarray$a$,defineitscostas$......
  • Div4 VP总结
    CodeforcesRound799(Div.4)E(最长子区间)基本思路求满足s的最长子区间。错误思路分析想用双指针左右贪心模拟题目要求删前或后的数(但在面对前后两个相等的时候,删前删后没有无后效性)简单暴力枚举子区间长度(显然在n=1e5的时候t了)正确思路虽然也是暴力枚举子区间,但有做......
  • css实现弹出的div显示在屏幕中间
    主要代码如下:.info{width:90vw;height:102vw;display:block;position:fixed;z-index:999;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:14px;}.info-header{......