AtCoder AGC #3 Virtual Participation
Havana真好听qwq
AB题就不写了 SB
C.BBuBBBlesort!
有一个长度为$n$的数列
你每次可以用两种操作
1.交换两个相邻元素
2.交换两个隔且仅隔了一个的元素
求把数列排成有序的,最少需要多少1操作
sol:显然,2操作并不会改变排序后元素所处位置的奇偶性
我们找到所有排序后位置与现在位置差为奇数的点,再除以2就可以了
D.Anticube
给出$n$个两两不同的数,选出一些数使得不存在两个数的积是完全立方数,求能选出的最大数量
sol:套路
把每个数分解质因数,求出他们每个质因数次数膜3的值
然后每次选择两个“互补”的数中较大的那个数就可以了
因为数不超过${10^{10}}$,可以用不超过${10^{\frac{10}{3}}}$的质数来筛
筛掉的这些数可以求出最简表示和补数
剩下的数都可以分成不超过两个质因子
然后就完全平方判一下就可以了
E.Sequential operations on Sequence
一个由$1,2,3,4,...,n$组成的数列,有$Q$次操作,每次操作包含一个$q_i$表示将数列无限重复,然后取前$q_i$项组成一个新的数列
$q_i \leq 10 ^ {18}$
求最后数列中$1$到$n$各出现了多少次
sol:
首先,如果前面的$q_i$大于后面的,那肯定是一次无效操作,我们可以删去
于是$q_i$递增
然后...就是神仙操作了
我们记一个$f_x$表示“第$x$次操作后的序列在最后的序列中出现了多少次”
显然,第$i$次操作后的序列肯定是由很多次第$i - 1$次操作后的序列加上一段第$i - 1$次操作后的序列的前缀组成
完整的部分显然是可以直接拿$f_{x- 1}$转移到$f_x$的
考虑剩下的一段前缀
剩下的一段前缀,肯定是由$x - 1$之前的某个操作后的序列搞出来的
我们可以二分这个序列是第几次操作后的序列
二分得到一个$ans$,它会对这个前缀产生一些贡献,可能还会再剩下一些
但剩下的不会超过$len(prefix)$ % $len(sequence(ans))$
然后就是一个结论,一个数膜一个比它小的数,最多膜log次
于是就是$O(log^2n)$的
F.Fraction of Fractal
给你一个黑白图案和一个分形次数$k$
每次分形是用$k-1$次分形当做“黑格”,大白方块当做“白格”如初始图案那样拼起来
问最后有多少黑色连通块,取膜
$k \leq 10^{18}$
sol:
这么大 矩阵快速幂
比上一题好想一点...
我们设$x$为初始黑块数
首先,如果分形边界没有黑格,直接就是$x^{k}$
只有当它上下左右连通的时候才会产生影响
1.如果全都连通,直接就是$1$
2.如果仅有上下连通或者左右连通
因为旋转90度的话这两个就是一种情况了,我们现在只考虑左右连通的情况
我们可以dp
$f[i]$表示$i$阶分形黑色连通块数量
$g[i]$表示$i$阶分形有多少个联通块满足,当它跟它的复制左右拼起来时会和一个联通块连在一起
转移就是$f[i] = f[i - 1] * x - g[i - 1] * w$
然后$g[i] = f[i -1] * y$
$w$表示原图中有多少对左右相邻的黑格
$y$表示原图中最左边一列和最右边一列拼起来有多少黑色相邻
这样就是一个齐次递推式,我们可以矩阵乘法
AtCoder AGC #3 Virtual Participation的更多相关文章
- AtCoder AGC #2 Virtual Participation
在知乎上听zzx大佬说AGC练智商...于是试了一下 A.Range Product 给$a$,$b$,求$\prod^{b}_{i=a}i$是正数,负数还是$0$ ...不写了 B.Box and ...
- AtCoder AGC #4 Virtual Participation
我好懒啊QAQ 老规矩 从C开始 C.给一个矩阵,里面有一些紫色方块,你需要涂两个矩阵,一个红色,一个蓝色,保证你涂的颜色四连通 然后把红色蓝色矩阵叠起来要求紫色的地方必须是紫色,其他地方不能是紫色 ...
- 2015 Multi-University Training Contest 4 hdu 5334 Virtual Participation
Virtual Participation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Ot ...
- 记人生中第一场认真打的CF——CF1000(虽然是Virtual participation)
老师说下午要让我们(来自开明的新高一同学)感受一下CF,于是下午2:20我们就集中到了机房.老师教我们用Educational Codeforces Round 46 (Rated for Div. ...
- 【做题记录】AtCoder AGC做题记录
做一下AtCoder的AGC锻炼一下思维吧 目前已做题数: 75 总共题数: 239 每一场比赛后面的字母是做完的题,括号里是写完题解的题 AGC001: ABCDEF (DEF) AGC002: A ...
- 【题解】Atcoder AGC#16 E-Poor Turkeys
%拜!颜神怒A此题,像我这样的渣渣只能看看题解度日╭(╯^╰)╮在这里把两种做法都记录一下吧~ 题解做法:可以考虑单独的一只鸡 u 能否存活.首先我们将 u 加入到集合S.然后我们按照时间倒序往回推, ...
- 【题解】Atcoder AGC#01 E-BBQ Hard
计数题萌萌哒~ 这道题其实就是统计 \(\sum_{i=1}^{n}\sum_{j=i+1}^{n}C\binom{a[i] + a[j]}{a[i] + a[j] + b[i] + b[j]}\) ...
- 【题解】Atcoder AGC#03 E-Sequential operations on Sequence
仙题膜拜系列...首先我们可以发现:如果在截取了一段大的区间之后再截取一段小的区间,显然是没有什么用的.所以我们可以将操作序列变成单调递增的序列. 然后怎么考虑呢?启示:不一定要考虑每一个数字出现的次 ...
- hdu5334(2015多校4)--Virtual Participation(构造)
题目链接:pid=5334">点击打开链接 题目大意:给出一个数字k,要求做出一个长度小于等于10^5的序列.该序列中不同样的连续子序列有k个. 构造啊,.,,,,一点辙都没有 使用连 ...
随机推荐
- 如何修改mindmanager默认字体为微软雅黑
mindmanager默认的字体是Verdana的,如何改为大家喜欢的其他字体呢?比如微软雅黑. 其实很简单,以我使用的是汉化版Mindmanager2012为例,只需要下面几个步骤 第1步:找到 ...
- HTTP状态码中301与302的区别
301 Moved Permanently 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改 ...
- Urho3D 在Win10下编辑器崩溃的解决方案
本解决方案来自于 https://github.com/urho3d/Urho3D/issues/2417 描述 在Win10中通过CMake启用URHO_ANGELSCRIPT选项的前提下生成Urh ...
- 创业做移动互联网App的4个注意事项
导语:大多数人对于做App还是比較盲目,有个想法立刻就去做了.做出来了才忽然想到市场和推广.我把做移动 互联网App注意事项情给大家列下. 文| 移动互联网李建华 近 来,常常有人问我关于推广的事情, ...
- MySQL 事务1
本人应用的MySQL的版本为:5.6.22
- WebApi 传参详解(转)
一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中 ...
- Linq的优缺点
优点: 1.Linq提供了不同数据源的抽象层,所以可以使用相同的语法访问不同的数据源(只要该数据源有提供程序即可) 2.Linq为底层的数据存储提供了一个强类型化的界面,可以把底层的数据作为对象来访问 ...
- Elipse clean后无法编译出class文件
通常之前一直运行正常的项目,在某次修改或重新启动时总是报 ClassNotFoundException,而事实是这个类确实存在,出现这种原因最好看看 build文件下的classes是否为空 或 编译 ...
- 九度OJ 1016:火星A+B (进制转换)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4913 解决:1334 题目描述: 读入两个不超过25位的火星正整数A和B,计算A+B.需要注意的是:在火星上,整数不是单一进制的, ...
- 爬虫-Selenium -抱错ElementNotVisibleException: Message: element not visible
1.当使用Selenium IDE 完成了脚本的录制和回放通过后,想要将脚本转换为其他语言如java.Python等,首次使用时打开Options->Format发现没有可以转换的语言,如下: ...