首页 > 其他分享 >AGC-058

AGC-058

时间:2022-10-10 20:23:36浏览次数:79  
标签:元素 数列 位置 AGC 058 正负号 操作

Atcoder Grand Contest 058

队友说板刷 agc 是最好的训练方法之一,于是我来了

A - Make it Zigzag

题意:给你一个长度为 \(2n\) 的排列,你最多可以做 \(n\) 次交换相邻元素的操作,最后要满足

\[p_i<p_{i+1} \ for\ each\ i=1,3,5,7...\\ p_i>p_{i+1} \ for\ each\ i=2,4,6,8... \]

题解

感觉我的思路有点蠢(

先把数列差分,即 \(p_i\) 变成 \(p_{i+1}-p_i\) 那么我们的目标数列满足正负交替出现即可

考虑一个操作之后差分数列会变成什么,例如交换 \(x\) 和 \(x+1\) (简称操作 \(x\) )

差分数列 \(p_{x-1},p_x,p_{x+1}\) 会变成 \((p_{x-1}+p_x),-p_x,(p_x+p_{x+1})\)

那么可以这么操作,从前往后考虑,遇到第一个正负号不对的元素(显然它前一个元素正负号是对的)。

如果后面一个元素正负号不对,那就操作它与后一个元素绝对值更大的那一个

如果后面一个元素正负号是对的,那就操作它自己

这么做的话,它自己和它前后元素的正负号都能变成正确的。然后以此类推继续往后考虑。

然后就做完了

B - Adjacent Chmax

题意:给定一个排列,操作为将相邻两个元素变成他们中较大的那一个,你可以做任意次操作,问操作完了的排列会有多少种

题解:首先,结果的数字一定是成段出现的,不可能一个数字出现了两段,一定是连续的一段。每个数字有它能够覆盖的区间。

然后关键在于设状态,我设的是 \(f[i][j]\) 表示前 \(i\) 个位置已经确定,第 \(i\) 个位置放的是 \(j\) 。

讨论这个状态可以转移到哪些状态:

如果可以转移到 \(f[i+1][k]\)

分情况讨论

  • 若 \(j\) 的初始位置在 \(i\) 之前,\(k\) 只需满足下列任意一个条件

    • \(k=j\)
    • \(k\) 的初始位置更靠近 \(i\) ,且 \(k<j\) ,且 \(k\) 可以覆盖到 \(i\) 位置
  • 若 \(j\) 的初始位置在 \(i\) 之后,\(k\) 只需满足下列任意一个条件

    • \(k=j\)
    • \(k\) 的初始位置更远离 \(i\) ,且 \(k>j\) ,且 \(k\) 可以覆盖到 \(i\) 位置

然后有技巧的转移,就做完了

——

待更…

标签:元素,数列,位置,AGC,058,正负号,操作
From: https://www.cnblogs.com/xoslh/p/16777044.html

相关文章

  • 【AGC+FPGA】基于FPGA的数字AGC自适应增益设计,应用在BPSK调制解调系统中
           AGC测试,这里我们主要通过产生一个信号,输入到AGC中,来分析AGC的工作效果,其仿真结果如下图所示: 这里,我们使用测试信号的时候,通过输入一个正弦信号,实现AGC的功......
  • [AGC028B] Removing Blocks
    E-EternalAverage真的好做这道题的时候严重怀疑自己发烧了,不知道为什么,感觉身上冷冰冰的,头还烫烫的,有可能是因为太闷了,导致脑子有点不够用性质推简单dp了令最后留下......
  • AT2371 [AGC013E] Placing Squares
    AT2371[AGC013E]PlacingSquares设\(f_i\)表示考虑到第\(i\)个点的贡献之和且不考虑坏点。不难发现转移方程为\(f_n=\sum_{i=0}^nf_i\times(n-i)^2\)则当第\(n......
  • 【题解】「AGC013D」Piling Up
    传送门题目大意:开始有\(n\)个黑白球在袋子中,但是不知道具体多少黑球白球,有\(m\)次操作,每次从袋子中先拿一个球,再放入一个黑球一个白球,再拿走一个球,求所有初始情况下......
  • AGC001
    第一次尝试AGC。A(最优化、贪心)排序之后隔一个选一个即可。B(递推)定义\(f(a,b)\)表示底为\(b\)腰为\(a\)的等腰梯形从右上角开始的答案,可以在\(f(a,b)\)和\(f(......
  • [AGC041D] Problem Scores
    StOKubic神发现主要限制在第三个限制,考虑变形一下限制要求,问题转化为要求序列的\(k=\lfloor\dfrac{n}{2}\rfloor\),的前\(k+1\)项的和,大于后\(k\)项的和。动......
  • AGC014
    A若存在答案则答案是\(\mathcal{O}(\loga)\)的,直接模拟即可。B可以发现有解当且仅当给出的\(m\)条边存在欧拉回路。C\((\texttt{Easy}\1/0)\)删掉的障碍是......
  • 0058-Tui-段落示例
    环境Time2022-08-12Rust1.63.0Tui0.18.0前言说明参考:https://github.com/fdehau/tui-rs/blob/master/examples/paragraph.rs目标使用tui-rs显示段落。定义......
  • AGC053C
    先考虑两个牌堆固定了的话,最小操作次数是什么。不妨假设两个牌堆为\(A,B\),并且\(2n\)在牌堆\(B\)中,则最后的目标是将\(A\)删空。结论:设\(d=\max\limits_{i=1}^{n......
  • com.ibatis.sqlmap.client.SqlMapException: There is no statement named saveNewPr
    经常发生这种问题,其实是写代码不严谨造成的。忘记将相应的sqlMap文件名称和路径在sqlMapConfig(sql-map-config.xml)配置文件中进行配置。  在文件中加入新写的dao层xml......