ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

AGC021

2022-04-07 01:02:35  阅读:177  来源: 互联网

标签:方案 然后 AGC021 考虑 binom dp


AGC021

做了一下 AGC021 这套题,感觉很厉害,纪念一下,题意就不放了。

A

自己想出来了,就枚举每一位,然后后面的位可以都是 \(9....\) 之类的,前面可以卡的死一点。

B

你就考虑,既然他这个圆这么离谱,那一看起来就和这个东西没啥关系啊。

显然只有凸包上的点才有可能有答案诶。

然后维护一下凸包,求一下每个点占据的弧度即可。

求凸包写挂了,注意不能加等号。

C

傻逼构造不想说话,傻逼

D

设 \(f[l][r][k]\) 表示我用了 \(k\) 次转移字符,然后就考虑,直接按照区间dp的方式转移即可。

如果 \(s[i] == s[j]\) 那么转移 \(dp[i + 1][j - 1][k]+2 \to dp[i][j][k]\)

否则转移 \(dp[i + 1][j - 1][k - 1]+2\to dp[i][j] [k]\)

然后还有就是,\(dp[i + 1][j][k]\to dp[i][j][k]\)

还有 \(dp[i][j + 1][k]\to dp[i][j][k]\)

E

这题蛮有意思的!。

我们考虑枚举红色球的数量设为 \(R\),然后此时蓝色球的数量为 \(B\)。然后捏,我们就考虑,如果 \(R<B\) 肯定不能成为答案。

如果 \(R=B\) 的情况,这时候肯定蓝色球最后一个放,那么等于少一个蓝色球的情况。

然后只用考虑 \(R>B\) 的情况。就考虑,如果 \(R- B \ge N\) 的话,那么肯定是每个变色龙都可以成为红色,因为可以给每个变色龙多一个红色球。这时候的方案数应该是 \(\binom{R+B}{R}\) 就随便一个序列都可以啦。

然后考虑如果 \(B<R<N\) 的情况,那么应该有 \(N-(R-B)\) 的变色龙的蓝色和红色球是一样的。那么肯定是可以从合法序列中分出来 \(N-(R-B)\) 个合法的 RB 序列,这时候还剩下最多 \(B-(N-(R-B))=R-N\) 个球,然后也就是说,对于序列的每个前缀,蓝色球不多于红色的个数 \(R-N\)。

那么,我们考虑容斥掉不合法的方案,如果不考虑限制,应该是从 \((0,0)\) 这个点走到 \((R,B)\) 的方案数。我们要求 \(y\le x + R - N\)。也就是说,始终要满足点在 \(y=x+R-N+1\) 这条线下,考虑容斥掉不合法的方案,就是说,我们考虑第一次越过这条线的方案,对于他进行翻折,设点为 \((t,t+R-N+1)\),然后就是剩下 \((R-t,B-t-R+N-1)\),然后反转 \((B-t-R+N-1,R-t)\),然后拼起来,就是 \((B-R+N-1,2R-N+1)\),然后就是说,这时候的方案就是 \(\binom{R+B}{R}-\binom{R+B}{2R-N+1}\)。

F

更有意思了,明天再来更这个题解。要睡觉了。

标签:方案,然后,AGC021,考虑,binom,dp
来源: https://www.cnblogs.com/siriehn-nx/p/16110517.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有