AT2164 Rabbit Exercise】的更多相关文章

传送门 解题思路 首先考虑k=1的情况,对于每一个a[i],它可能会到a[i-1]*2-a[i] 与 a[i+1]*2-a[i]两个位置,概率都为%50,那么它的期望位置为 (a[i-1]*2-a[i]+a[i+2]*2-a[i])/2 即为 a[i+1]+a[i-1]-a[i] 对于以后的位置,可以把这个位置的期望位置视作它的变化,所以也可以直接算.做出差分数组,对于i与i+1,diff[i]=a[i]-a[i-1] ,diff[i+1]=a[i+1]-a[i],如果让i这个位置跳,diff[…
题目链接 AtCoder:https://agc006.contest.atcoder.jp/tasks/agc006_c 洛谷:https://www.luogu.org/problemnew/show/AT2164 Solution 注意到设第\(i\)个点的期望位置为\(p_i\),由中点公式可知这个点移动一次的期望位置变成了: \[ p_i'=\frac{2p_{i+1}-p_i+2p_{i-1}-p_i}{2}=p_{i+1}+p_{i-1}-p_i \] 考虑这个序列的差分数组\(\…
首先我们可以考虑一下 \(x\) 关于 \(y\) 的对称点的坐标,不难发现就是 \(x + 2 \times (y - x)\),那么期望的增量就会增加 \(2 \times (y - x)\).不难发现我们可以令 \(dp_{i, j}\) 表示 \(j\) 第 \(i\) 次操作(即假设进行了 \(p\) 轮操作,当前是第 \(q\) 次操作,则 \(i = (p - 1) \times m + q\)),则会有转移: \[dp_{i, a_q} += \frac{1}{2} \times…
题意: 有n只兔子,i号兔子开始的时候在a[i]号位置.每一轮操作都将若干只兔子依次进行操作: 加入操作的是b[i]号兔子,就将b[i]号兔子移动到关于b[i]-1号兔子现在所在的位置对称的地方,或者是关于b[i]+1号兔子现在所在的位置对称的地方,两者是等概率的.现在给出每一轮操作的兔子编号及顺序,要你求k轮之后每只兔子的位置的期望.保证操作的兔子编号为2~n-1. 数据范围: 1<=n,每一轮的操作数量<=100000 1<=k<=10^18 思路: 看见k这么大,肯定第一反应…
题目链接:https://www.luogu.org/problemnew/show/AT2164 https://agc006.contest.atcoder.jp/tasks/agc006_c 题目 中文描述:…
正题 题目链接:https://www.luogu.com.cn/problem/AT2164 题目大意 \(n\)只兔子编号为\(1\sim n\),第\(i\)只在坐标轴\(x_i\)处.然后\(m\)次跳跃,每次给出\(a_i\),编号为\(a_i\)的兔子会等概率的选取\(a_{i-1}\)和\(a_{i+1}\)跳跃到对称位置.进行\(k\)轮,求最后每只兔子的期望位置. \(3\leq n\leq 10^5,1\leq m\leq 10^5,1\leq k\leq 10^{18}\)…
题目描述 有\(n\)只兔子站在数轴上.为了方便,将这些兔子标号为\(1\ldots n\).第\(i\)只兔子的初始位置为\(a_i\). 现在这些兔子会按照下面的规则做若干套体操.每一套体操由\(m\)次跳跃组成:在第\(j\)次跳跃的时候,第\(c_j(2≤c_j≤n−1)\)只兔子会等概率随机选择第\(c_j−1\)或\(c_j+1\)只兔子中的一只(不妨设选择了第\(x\)只兔子),然后跳当前位置到关于第\(x\)只兔子对称的点. 这些兔子会按顺序做\(k\)套相同的体操.现在请你求出…
Problem AtCoder & bzoj 题意:数轴上有\(n\)个点(初始坐标均为整数),编号为\(1\)~\(n\).给出\(m\)个操作. 每个操作会选定点\(a\),然后随机在点\(a-1\)和点\(a+1\)中选一个,将点\(a\)以选中的点为中心做对称,将这\(m\)个操作按顺序执行\(k\)遍(\(1\)~\(m\)完整执行一次算\(1\)遍),求最终每个点的位置的期望值 Solution 不难发现根据期望的线性型,在\(a-1\)和\(a+1\)之间随机选一个进行对称操作的期…
原文链接https://www.cnblogs.com/zhouzhendong/p/AGC006C.html 题目传送门 - AGC006C 题意 有 $n$ 个兔子,从 $1$ 到 $n$ 编号,第 $i$ 个兔子的初始位置为 $x_i$ ,有 $K$ 次操作,每次操作分 $m$ 步,其中第 $j$ 步用一个数 $a_j$ 描述,这一步的效果是:等概率在 $a_j-1$ 和 $a_j +1$ 中选择一个(假设选择的那个是 $x$),并让兔子 $a_j$ 跳到以兔子 $x$ 为对称中心时,兔子…
原文链接https://www.cnblogs.com/cly-none/p/9745177.html 题意:数轴上有\(n\)个点,从\(1\)到\(n\)编号.有\(m\)个操作,每次操作给出一个编号\(i \, 1 < i < n\),即把点\(i\)等概率移动到它关于点\(i-1\)的对称点或关于点\(i+1\)的对称点.记顺序执行这\(m\)个操作为完成1次.问完成\(k\)次后,所有点的坐标的期望值是多少. \(n, m \leq 10^5, \, k \leq 10^{18}\)…
传送门 设 \(f_{i,j}\) 表示兔子 \(i\) 在当前 \(j\) 轮的期望位置 对于一次操作 \(f_{i,j+1}=\frac{1}{2}(2f_{i-1,j}-f_{i,j})+\frac{1}{2}(2f_{i+1,j}-f_{i,j})=f_{i-1,j}+f_{i+1,j}-f_{i,j}\) 这个东西就是差分数组上两个位置的交换 相当于是求经过 \(k\) 次长度为 \(m\) 的置换后的位置 只要求每个位置在每个环走 \(k\) 的位置即可 # include <bit…
Portal --> agc006C Solution 啊感觉是好有意思的一道题qwq官方题解里面的说辞也是够皮的哈哈哈..(大概就是说如果你没有意识到那个trick的话这题这辈子都做不出来qwq) 一开始看到那个什么随机跳啊..什么期望值啊..整个人都蒙掉了.. 然而实际上都是假的== 我们考虑一次跳跃,跳完的兔子的期望下标的表达式实际上长这个样子: \[ \frac{1}{2}(2\cdot x_{i-1}-x_i)+\frac{1}{2}(2\cdot x_{i+1}-x_i)=x_{i-…
题目:https://agc006.contest.atcoder.jp/tasks/agc006_c 选了 i 位置后 x[ i ] = x[ i-1 ] + x[ i+1 ] - x[ i ] . 从差分序列来看,选 i 位置后就是 swap( a[ i ] , a[ i+1 ] ) . 一组之后就是一个置换.找一下每个位置所在的环就行了. #include<iostream> #include<cstdio> #include<cstring> #include&…
题目:https://agc006.contest.atcoder.jp/tasks/agc006_c 考虑 \( i \) 号兔子移动后位置的期望,是 \( x_{i+1} + x_{i-1} - x_{i} \) 然后作差分,发现按顺序移动一次,实际上是交换了 \( d_{a_{i}} \) 和 \( d_{a_{i}+1} \) 于是可以先处理出移动一次的置换,然后快速幂: 而这是 \( nlogn \) 的做法,还可以找循环来做到 \( O(n) \) ,可见 Narh 的博客: 就写了…
题目传送门:https://agc006.contest.atcoder.jp/tasks/agc006_c 题目翻译 数轴上有\(N\)只兔子,从\(1\)到\(N\)编号,每只兔子初始位置是\(x_i\).现在兔子们要开始做运动,运动都有\(M\)个步骤,对于第\(i\)个步骤,我们用\(a_i\)来形容它,意思是: 在当前步骤中,从左至右数第\(a_i\)只兔子将会跳跃.我们在\(a_i-1\)和\(a_i+1\)两只兔子中等概率的选择一个兔子,假设我们选择的是\(x\),那么第\(a_i…
题意 有 \(n\) 只兔子在数轴上,第 \(i\) 只兔子的初始坐标为整数 \(x_i\). 现在这些兔子会按照下面的规则做体操.每一轮体操都由 \(m\) 次跳跃组成:在第 \(j\) 次跳跃时,第 \(a_j (2\le a_j\le n-1)\) 只兔子会等概率随机选择第 \(a_j-1\) 或 \(a_j+1\) 只兔子中的一只,设选择的兔子的坐标为 \(x\),然后跳到当前位置关于 \(x\) 的对称点. 求这些兔子会按顺序做 \(k\) 轮体操后,每只兔子的期望坐标. \(n,m\…
该比赛链接 T5 题意: 给你一个\(n\times n\)的网格,开始有\(m\)个被涂成黑色的格子,如果存在三个格子\((x,y)\),\((y,z)\),\((z,x)\)满足\((x,y)\),\((y,z)\)均为黑格子且\((z,x)\)为白格子,那么就将\((z,x)\)涂黑,问最后会有多少个被涂黑的格子. 题解 关键词:构造 染色(hint: 不是原矩阵的染色) T2 给定一个塔状结构,从上往下的第i层有2i−1个位置. 在最底层有一个(2n−1)的排列,然后往上的每一个格子都等…
AtCoder Grand Contest 006 吐槽 这套题要改个名字,叫神仙结论题大赛 A - Prefix and Suffix 翻译 给定两个串,求满足前缀是\(S\),后缀是\(T\),并且长度至少为\(n\)的最短串串长. 题解 暴力枚举\(S\)和\(T\)的重叠部分长度,然后直接\(check\) #include<iostream> #include<cstdio> #include<cstring> using namespace std; #de…
RE:从零开始的AGC被虐(到)生活(不能自理) 「一直注视着你,似近似远,总是触碰不到.」 --来自风平浪静的明天 AtCoder Grand Contest 001 B: Mysterious Light 设 \(f(x, y)\) 为上一次反射长度为 \(x\) ,边界长度为 \(y\) 的答案,容易观察得到 \(f(x, y) = 2 \times \lfloor\frac{y}{x}\rfloor \times x + f(y \mod x, x)\) C: Shorten Diame…
一句话题解 QwQ主要是因为这篇文章写的有点长……有时候要找某一个题可能不是很好找,所以写了这个东西. 具体的题意.题解和代码可以再往下翻._(:з」∠)_ AGC 001 C:枚举中点/中边. D:构造. E:根据组合数意义转为$DP$. F:拓扑排序,线段树优化连边. AGC 002 C:水题,看是否有a[i]+a[i+1]>=k. D:并查集上倍增,二分答案. E:博弈(坑) F:模型转化然后$DP$. AGC 003 C:一个数到自己应到位置距离为奇数的个数/2. D:数学,质因数分解,…
AtCoder Grand Contest 006 <br > 心血来潮,开了一套AGC..... 然后发现各种不会做.........感觉智商被AGC摁在地上摩擦...... <br > 代码戳这里 <br > A - Prefix and Suffix 这道题目还是送温暖的... 直接枚举长度从\(n\)到\(n+n\) 最后的\(n\)为用第二个字符串填充,剩余空缺从前到后一次用第一个字符串填充 最后验证前\(n\)位是否满足第一个字符串即可 由于是从小到大枚举,…
Atcoder/Topcoder 理论 AC Atcoder的❌游戏示范 兴致勃勃地打开一场 AGC 看 A 题,先 WA 一发,然后花了一年时间 Fix. 看 B 题,啥玩意?这能求? 睡觉觉. emmmmm 虽然这些副本里的怪一点也不友善,但是却能给直感[1]带来极大的提升. [1]:「直感」是在战斗中一瞬间判明「对自身最适合行动」的能力 Atcoder Grand Contest 2 B. Box and Ball 口胡 考虑 \(k\) 次操作后可能出现红球的集合,记录每个集合球的个数.…
AGC006 快乐翻题解\(\sqrt{}\) A Prefix and Suffix 这一场我怎么一道都不会啊/kk https://agc006.contest.atcoder.jp/submissions/7943204 B Median Pyramid Easy 我咋这都不会啊/dk 直接按题解构造(大雾 显然\(X=1\)或\(2n-1\)没有答案 如果一层\(a[1-(2N-1)]\)中\(a[N]=a[N+1](a[N-1])\)那么最后的值一定是\(a[N]\) 那么让第二层中间…
构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和\(A_{i+1}\)之间只会有一个括号:有多个括号的话只保留最外边那个,答案不变. 然后就可以定义状态:\(dp_{i,j}\)表示前\(i\)个数,还有\(j\)个未闭合的左括号,得到的最大答案. 由于只有减号右边有括号,所以只要知道左边有几个未闭合的左括号,就可以知道自己的贡献是\(1\)还是…
AGC006 A - Prefix and Suffix -- #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter putchar('\n') #define eps 1e-10 #define MA…
不久前发布了一篇博文".NET轻量级RPC框架:Rabbit.Rpc",当初只实现了非常简单的功能,也罗列了之后的计划,经过几天的不断努力又为Rabbit.Rpc增加了一大波新特性,今天主要介绍下项目近况. 特性一览 Apache License 2.0协议开源 支持客户端负载均衡(提供了轮询.随机算法的实现) 支持ZooKeeper和文件共享形式的服务协调 运行时客户端代理生成(基于Roslyn) 预生成客户端代理 客户端代理预生成(基于Roslyn) 抽象的编解码器(提供了JSON…
Rabbit and Grass Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2145    Accepted Submission(s): 1622 Problem Description 大学时光是浪漫的,女生是浪漫的,圣诞更是浪漫的,但是Rabbit和Grass这两个大学女生在今年的圣诞节却表现得一点都不浪漫:不去逛商场,不去逛…
Lab 1中Exercise 9的解答报告 Exercise 1.9: 判断一下操作系统内核是从哪条指令开始初始化它的堆栈空间的,以及这个堆栈坐落在内存的哪个地方?内核是如何给它的堆栈保留一块内存空间的?堆栈指针又是指向这块被保留的区域的哪一端的呢? 答: 1. 首先需要判断操作系统内核是从哪条指令开始初始化它的堆栈空间的. 前面已经分析过boot.S和main.c文件的运行过程,这个文件中的代码是PC启动后,BIOS运行完成后,首先执行的两部分代码.但是它们并不属于操作系统的内核.当main.…
Lab 1 Exercise 10 为了能够更好的了解在x86上的C程序调用过程的细节,我们首先找到在obj/kern/kern.asm中test_backtrace子程序的地址, 设置断点,并且探讨一下在内核启动后,这个程序被调用时发生了什么.对于这个循环嵌套调用的程序test_backtrace,它一共压入了多少信息到堆栈之中.并且它们都代表什么含义? 答: 先找到这个子程序的地址,打开obj/kern/kern.asm.在这个文件中我们查到调用test_backtrace子程序指令的地址为…
Exercise 1.8       我们丢弃了一小部分代码---即当我们在printf中指定输出"%o"格式的字符串,即八进制格式的代码.尝试去完成这部分程序. 解答: 在这个练习中我们首先要阅读以下三个源文件的代码,弄清楚他们三者之间的关系: 三个文件分别为 \kern\printf.c,\kern\console.c, \lib\printfmt.c 首先大致浏览三个源文件,其中粗略的观察到3点: 1.\kern\printf.c中的cprintf,vcprintf子程序调用了\…