首页 > 其他分享 >AtCoder Beginner Contest 337

AtCoder Beginner Contest 337

时间:2024-01-21 11:00:58浏览次数:34  
标签:AtCoder 下标 Beginner Contest int 337 数组

AtCoder Beginner Contest 337

赛后总结

A题不多说,纯水。
B题对题目要求没有理解太透(不知道是英语问题,还是它样例给的不够全,没太能理解最后的那个判断结果)
卡c题上了

c题感觉其实是个比较有意思的题,但是只要理解了题目就知道本质是一个求数组对应的下标,再以数组的下标所对应的数组值来求下一个下标。
  • 我的错误思路
    我一开始没太完全看懂样例,和它给的数组条件,我以为数组的值是除-1这个特定值去都是依次递增了,但样例3就有揭示这个问题,我看半天没看出来,想用sort排序来寻找下标对应的值的下标。
  • 正确思路
    通过观摩别人的解答,收获了一种新思路。
    应该放弃第一个特殊值-1,正常是通过首位数-1再去求它的下标,然后再找-1的下标对应的数组值得下标,重复这个过程。但其实由于首位是固定的,转换思路,以-1的下标去求值再得新下标,重复。
    因为数组的值是需要遍历才能知道的,而下标可以直接定位所在的值。
    这样我们就有种新的数组方式存储数组
    将数组的值为下标,原本的下标变为值,这样我们就可以以值为下标的方式直接调用出下一个的下标。
    代码:
#include <iostream>
using namespace std;

int r[1000000];

int main(){
    int n;
    cin >> n; 
    int s;
    int next;
    for (int i = 1; i <= n; i++){
        cin >> s;
        r[s] = i;
        if (s == -1){
            cout << i << " ";
            next = i;
        }
    }
    for (int i = 2; i <= n; i++){
        cout << r[next] << " ";
        next = r[next];
    }
    cout << endl;
    return 0;
}

标签:AtCoder,下标,Beginner,Contest,int,337,数组
From: https://www.cnblogs.com/sdlypsck/p/17977605

相关文章

  • ABC337
    T1:Scoreboard模拟代码实现n=int(input())st,sa=0,0foriinrange(n):x,y=map(int,input().split())st+=x;sa+=yifst<sa:print('Aoki')ifst==sa:print('Draw')ifst>sa:print('......
  • AtCoder Beginner Contest 336
    AtCoderBeginnerContest336A-LongLoong代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondusingi128=__int128_t;voidsolve(){intn;cin>&g......
  • 比赛必备——codeforces better 和 atcoder better 的安装教程
    大家有没有像我一样英语不太好然后又想要打cf和atc的呢?(可能全世界就我英语不好)这里有两个强力的工具可以帮助我们解决这一问题——codeforcesbetter和atcoderbetter。由于我只用的是edge,所以下面默认为edge浏览器篡改猴首先我们需要安装篡改猴,link。codeforcesbe......
  • AtCoder Beginner Contest 337
    AtCoderBeginnerContest337做题顺序有点奇怪。先做的C。套路题。令\(to_i\)表示\(i\)的下一个点是什么。2min过了。再做的B。智障题。令\(now\)表示现在在哪个字符(A或B或C),然后挨个字符跳。结果真成智障了,第一发没判断A跳到C的情况,罚时+1。又做的A。入......
  • AtCoder Grand Contest 010 E Rearranging
    洛谷传送门AtCoder传送门赛时在想一些奇怪的东西,没想到建图。考虑使用元素两两之间的相对顺序来描述序列。发现若\(x,y\)互质那么它们的相对顺序被确定了。先把输入的序列从小到大排序。然后考虑互质的数之间先连一条无向边。那么先手要把无向边定向使得它是个DAG,后手会......
  • AtCoder Beginner Contest 337
    A-Scoreboard思路&&Code/*高桥和青木N场比赛xy得分情况分别为x1y1.....xnyn计算高桥的总得分与青木的总得分进行比较高桥得分>青木得分输出Takahashi==输出Draw<输出Aoki*......
  • AtCoder Beginner Contest 336
    AtCoderBeginnerContest33657秒切A,75秒切B。然后C就卡了,没想到五进制,二分答案加数位DP判断过了。用了半个小时。DE读完题,发现D可做。小推了一下发现可以维护线段树。很快写完过了样例。第一发罚时,\(+1\)和\(-1\)写反了。第二发罚时,把那个“金字塔”写成了......
  • 昆虫科学院 AtCoder Race Ranking 2023 Autumn
    概况为提高选手们的训练/比赛热情,我们(昆虫科学院)通过商讨,在\(2023-5-25\)仿照AtCoderRaceRanking(WTF)机制,设立了“昆虫科学院AtCoderRaceRanking2023”。该排行榜为\(2023\sim2024\)赛季的第二轮排行。校内参赛选手(按照学号排序)AtCoder用户名学号......
  • Contest3376 - 2024寒假集训-排位赛竞赛(一)
    A:幂位和高精度。用高精度加法或乘法算出\(2^{1000}\),再将各位累加即为答案。#include<bits/stdc++.h>usingnamespacestd;#definecctieios::sync_with_stdio(0);cin.tie(0);cout.tie(0)stringAP_add(stringA,stringB)//高精度加法{intlena=A.size()......
  • AtCoder Beginner Contest 335
    A-2023(abc335A)题目大意给定一个字符串,将最后一位改成4。解题思路模拟即可。神奇的代码#include<bits/stdc++.h>usingnamespacestd;usingLL=longlong;intmain(void){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);strings;......