首页 > 其他分享 >ATC简单题解(不定时更新

ATC简单题解(不定时更新

时间:2023-01-05 22:47:05浏览次数:50  
标签:begin end ATC 题解 序列 定时 cases dp

ABC129

前三题略

D.lamp

虽然数据范围不大,但也没法暴力 check ,可以考虑分别维护每行(每列)障碍物的纵(横)坐标,可以考虑到插入 std::vector 中,然后对于每一个点查找横竖方向上的前驱后继,再减去 \(3\) 即可。为了方便维护和简化讨论,对于每列可以将 \(0\) 和 \(h+1\) 也插入进 std::vector ,对于行同理

E.Sum Equals Xor

由于满足 \(a+b=a\bigoplus b\) ,且异或本质为二进制不进位加法。因此可得出 \(a\) 和 \(b\) 不能在相同位上同为 \(1\)

可通过数位dp解决该问题,但需保证 \(a\bigoplus b\leq L\) 恒成立

也可通过线性dp解决,定义 \(f[i][0]\) 为前 \(i\) 位与 \(L\) 相同的方案数,\(f[i][1]\) 为前 \(i\) 位小于 \(L\) 的方案数

可得转移方程

\[\begin{cases} f[i][0]=f[i-1][0]*2,L[i]=1 \\ f[i][0]=f[i-1][0],L[i]=0 \end{cases} \]

\[\begin{cases} f[i][1]=f[i-1][0]+f[i-1][1]*3,L[i]=1 \\ f[i][1]=f[i-1][1]*3,L[i]=0 \end{cases} \]

F.Takahashi's Basics in Education and Learning

矩阵快速幂,待补

ABC130

前三题略

D.Enough Array

套路题,由于 \(a_i\) 为整数,保证了前缀和的单调性,做出前缀和后对于每一个位置二分即可

E.Common Subsequence

比较有意思的dp,设计状态 \(f[i][j]\) 为 \(a\) 序列前 \(i\) 项与 \(b\) 序列前 \(j\) 项相同子序列的个数

可得转移方程: \(f[i][j]=f[i][j-1]+f[i-1][j]-f[i-1][j-1]\)

该部分有容斥的知识,即 \(|A\bigcup B|=|A|+|B|-|A\bigcap B|\)

需要注意的时,当 \(a[i]=b[j]\) 时,转移方程为 \(f[i][j]=f[i][j-1]+f[i-1][j]\)

最终可得

\[\begin{cases}f[i][j]=f[i][j-1]+f[i-1][j]-f[i-1][j-1],a[i]\neq b[j]\\f[i][j]=f[i][j-1]+f[i-1][j],a[i]=a[j]\end{cases} \]

F.Minimum Bounding Box

算法1:可以大力分类讨论,因为答案只会受到边界点的印象,因此同方向运动只考虑坐标更大(小)的点,但较为复杂

算法2:裸的三分,证明不会,代码实现简单

标签:begin,end,ATC,题解,序列,定时,cases,dp
From: https://www.cnblogs.com/Jadebo1/p/17029031.html

相关文章

  • AtCoder Beginner Contest 132
    AtCoderBeginnerContest132https://atcoder.jp/contests/abc132持续被暴打的一天,因为晚上要打cf,所以明天再来写总结。悲ct就是菜鸟newbie......
  • CF893D Credit Card 题解
    简要题意:你有一张信用卡,\(n\)天有\(n\)个操作,每次操作给定一个\(x\),如果\(x\)是\(0\)那么银行会查询信用卡里的金额,要保证金额是非负数;否则你卡里的金额会变化\(x......
  • 如何给所有的 await async 函数添加try/catch?
    如何给所有的awaitasync函数添加try/catch?做全局捕获异常。面试官:如何给所有的awaitasync函数添加try/catch?做全局捕获异常。我们可以使用window.addEventListene......
  • 安徽农业大学寒假训练赛1题解
    D#include<bits/stdc++.h>usingnamespacestd;charg[10][10];intmain(){for(inti=1;i<=5;i++)scanf("%s",g[i]+1);//这样可以保证下标都从1......
  • 题解 : Luogu P2197 【模板】nim 游戏
    题目链接:link结论如果$a_1\oplusa_2\oplus...\oplusa_n\not=0$,则先手必胜证明操作到最后时,每堆石子数都是\(0\),\(0\oplus0\oplus...\oplus0=0......
  • Starling常见问题解决办法
    ​​Starling常见问题解决办法​​来自:​​智慧+毅力=无所不能​​ 1、Android设备上阻止用户按下后退后的行为侦听按键事件//阻止后退行为view.stage.addEventL......
  • JSOI2009 题解
    Count二维树状数组板子题,开\(c\)个二维树状数组即可过。可以通过离线对每个权值单独操作做到只开一个二维树状数组。如果空间要求更紧的话可以cdq分治做到只开一个......
  • 重磅直播|PatchmatchNet:一种高效的Multi-view Stereo框架(CVPR2021)
    本期由苏黎世联邦理工学院ComputerVisionandGeometryGroup王方锦华博士分享,分享的主题为《PatchmatchNet:基于传统PatchMatch算法的高效Multi-viewStereo框架》,主讲人会......
  • Vue Day2-watch
    watch 监听数据的变化,从而实现相应的业务逻辑主要应用场景是监听数据的变化处理副作用。与处理数据无关的的操作都算副作用,如日志处理、异步请求、本地存储操作等......
  • linux crontab 定时任务详解
    前言正如闹钟对于日常生活的重要性一样,linuxcrontab定时任务在开发中是必不可少的工具,诸如:每六个月清理一次日志,每天凌晨12.00重启服务等多种场景,都可以用crontab......