首页 > 其他分享 >AtCoder ABC 273 复盘

AtCoder ABC 273 复盘

时间:2024-01-18 22:11:28浏览次数:30  
标签:AtCoder AC Code 273 10 栈顶 ABC save 障碍物

A A Recursive Function

模拟,递归、递推、累乘都可以。我用的累乘。

AC Code

B Broken Rounding

也是模拟,每次将 \(X\leftarrow X\div 10^{i-1}\) 后判断 \(X\bmod 10\) 是否 \(\geq 5\),若是,\(X\leftarrow X+10\);若不是,不进行操作。最后再将 \(X\div 10\) 输出。

AC Code

C (K+1)-th Largest Number

典型的二分。每一次二分出最小的大于等于 \(a_i\) 的数的下标 \(L\),然后用一个数组记录答案。

AC Code

D LRUD Instructions

大型模拟。需要用 map 存储障碍物,然后每次移动时 \(O(\log N)\) 的查询路径上距离起点最近的障碍物,并移动至障碍物前;如无障碍物,直接按输入移动。总体时间复杂度 \(O((N+Q)\log N)\)。

AC Code

E Notebook

很显然,如果直接存储直接恢复会爆炸(\(\color{#052242}\texttt{TLE}\) 和 \(\color{#052242}\texttt{MLE}\))。于是我们想到一件事,能否在一个一维数组上完成所有的操作?答案是肯定的,我们可以采用类似 list+stack 的方法完成。

  1. 插入,插入时即向类链表 lst 的尾部插入 \(x\),向类栈 stk 压入 \(x\)。

  2. 删除,删除即删除链表尾部。

  3. 保存,将 map \(save_x\leftarrow\) 栈顶指针(下标)。因为以后的操作均在下标为 \(x\) 的元素之后(即在栈顶之上)操作,所以可以通过将栈顶指针指回 \(save_x\) 实现恢复。

  4. 恢复,将栈顶指针指向 \(save_x\)。

每次输出栈顶即可。

AC Code

标签:AtCoder,AC,Code,273,10,栈顶,ABC,save,障碍物
From: https://www.cnblogs.com/TigerTanWQY/p/17973526

相关文章

  • abc227F - Treasure Hunting
    abc227F依次钦定x为路径上的第k大的数,然后dp即可。#include<cstdio>#include<algorithm>#include<cstring>#include<map>#include<queue>#include<bitset>#include<cmath>#include<set>#include<unordered_map>#definefo(i,......
  • ABC245G
    似乎是经典套路?先不考虑颜色限制,那么就直接把\(l\)个关键点当作起点跑多源最短路就行了。现在考虑颜色限制,有一种暴力的想法是枚举所有颜色,只把这种颜色的点当作起点,然后跑dijkstra,然后更新颜色不为这个的终点。发现这样终点就被更新了很多次,考虑优化。考虑枚举颜色的每个二......
  • AtCoder ABC 270 复盘
    A1-2-4TestACCodeBHammerACCodeCSimplepathACCodeDStones完全背包的应用。ACCodeEAppleBasketsonCircle有一点数学,又有一点贪心,还有二分。首先将每个篮子取走\(\min_{1\leqi\leqn}(A_i)\)个苹果,然后再不断扫描数组,按照题意取走苹果。ACCode......
  • AtCoder ABC 267 复盘
    ASaturdayACCodeBSplit?ACCodeCIndex×A(Continuousver.)本题可以采用类似滑动窗口的做法,使得时间复杂度降至\(O(n+m)\)。ACCodeDIndex×A(NotContinuousver.)本题是典型的01背包问题,只需要对值进行相应的修改即可。ACCodeEErasingVertices2本题......
  • AtCoder Beginner Contest 336
    题目链接:AtCoderBeginnerContest336A-LongLoong题意:输出Long,其中'o'的数量等于n解题思路:签到(其实没看清楚题目wa了一发)查看代码voidsolve(){ intn; cin>>n; cout<<'L'; while(n--)cout<<'o'; cout<<"ng";}......
  • ABC270H add 1
    题解里面有用鞅的停时定理的做法,但我现在既不会离散时间鞅也不记得这个定理是啥了,所以搞点阳间的做法。考虑列出操作次数的概率生成函数\(\mathscr{P}(x)\),也就是从初始状态开始操作\(i\)次后第一次达到终止状态的概率为\([x^i]\mathscr{P}(x)\),那么答案就是\(\mathscr{P}'(......
  • AtCoder ABC 279 复盘
    AwwwvvvvvvACCodeBLOOKUPACCodeCRANDOMACCodeDFreefall分析一下样例1,可以发现答案存在一个\(\sqrt{g}\),然后就联想到三分。这里图像是开口朝上的。注意要开longlong!(但我的代码需要__int128才行,玄学)ACCodeECheatingAmidakuji分析过程,可以发现第\(i\)次......
  • Atcoder 336 C
    题目链接https://atcoder.jp/contests/abc336/tasks/abc336_c一开始没有想到第N个数字与N之间的关系,但是在思考的过程中似乎发现了这几个数字与"5"有什么奇怪的联系。但是我想到这里时还没有将这道题和进制转换建立联系,只是觉得可以根据“5”的规律来推出第N个数字的各......
  • ABC311_g One More Grid Task 题解
    题目链接:Atcoder或者洛谷对于解决二维区间内的最值类型问题,我们常常有一类特别好用的方法,就是悬线法,它可以看做是单调栈的子集,但更加好理解和书写。对于悬线法,我们有一个常见的模型,找出面积最大的符合题意的最大的矩形:例题P4147玉蟾宫。对于悬线法而言,我们需要理解什么是悬......
  • AtCoder Grand Contest 046 F Forbidden Tournament
    洛谷传送门AtCoder传送门太厉害了!!!!!!首先竞赛图有个性质,若存在环则一定存在三元环。先把DAG的情况(一条链)特判了。然后缩点。发现非链底的部分不能存在大小\(>1\)的SCC。所以枚举非链底的部分有多少点,转化为SCC的情况。发现对于任意点(设为\(1\)号点),它的前驱连成一条链......