题解 [USACO18DEC]Balance Beam】的更多相关文章

(翻了翻其他的题解,觉得它们没讲清楚这个策略的正确性) Problem 洛谷5155 题意概要:给定一个长为\(n\)的序列,可以选择以\(\frac 12\)的概率进行左右移动,也可以结束并得到当前位置上的收益,求从每个位置开始时使用最优策略的最大期望收益是多少 \(n\leq 10^5\) Solution 关键在于需要考虑当前是选择移动还是直接结束.一个很明了的观点:如果当前移动后的收益期望比当前位置的收益大,那么会选择移动:否则选择直接停止.直接停止的贡献已经知道,那么要求的就是当前点选…
被概率冲昏的头脑~~~ 我们先将样例在图上画下来: 会发现,最大收益是: 看出什么了吗? 这不就是凸包吗? 跑一遍凸包就好了呀,这些点中,如果i号点是凸包上的点,那么它的ans就是自己(第二个点),不然的话,从上图来看,i的ans肯定和他相邻的两个是凸包边界的点有关(0节点和2节点),那么怎么求这个ans呢?(第x号点为横坐标为x的点) 实际上我也不知道就是个期望公式啊! l[i]记录i号点往左走第一个为凸包边界的点(如果i为1号,那么l[i]为0,特殊的,如果i为2号,那么l[i]就是本身),…
你以为它是一个期望dp,其实它是一个凸包哒! 设平衡木长度为\(L\),把向右走平衡木那个式子写一下: \[dp[i]=\frac{dp[i+1]+dp[i-1]}{2}\] 然后会发现这是一个等差数列,显然有\(dp[0]=0,dp[L]=1\) 所以\(dp_{i\rightarrow L}=\frac{i}{L}\) 向左走同理:\(dp_{i\rightarrow 1}=\frac{L-i}{L}\) 令停止点为直接从这个点跳下去能得到期望报酬最高的点,设点\(i\)左右两端的停止点分别…
题目链接:洛谷 这道题看起来是个期望题,但是其实是一道计算几何(这种题太妙了) 首先有一个很好的结论,在一个长度为$L$的数轴上,每次从$x$处出发,不停地走,有$\frac{x}{L}$的概率从右端点掉下去,$\frac{L-x}{L}$从左端点掉下去. 这个证明的话,感性理解一下. 令$l_x$表示从$x$处掉到左端点的概率,则$l_0=1,l_L=0$,且对于$x\in (0,L)$,$l_x=\frac{l_{x-1}+l_{x+1}}{2}$,所以$l_x$构成一个等差数列,所以得证.…
题目链接:这里 或者这里 答案是很显然的,记\(g(i)\)为在\(i\)下平衡木时的期望收益 那么\(g(i)=max(f(i),\frac{g(i-1)+g(i+1)}{2})\) 好了做完了 TMD这个式子有和没有有什么区别啊(还是有区别的) 我们考察那些\(g(i)=f(i)\)的点 更特殊的,我们考虑点\((i,f(i))\)在二维坐标上的分布,同时由\(f(0)=f(n+1)=0\)我们再加入两个新点\((0,0)\)和\((n+1,0)\) 那么样例的图就是这样子的 我们再来看一下…
假设已经求出了在每个点的最优期望收益,显然最优策略是仅当移动一次后的期望收益>当前点收益时移动.对于初始点,其两边各存在一个最近的不满足上述条件的位置,因此从初始点开始随机游走,直到移动到这两个点之一时停止即为最优方案. 设当前点为i,左边的停止点为x,右边的停止点为y,考虑在x停止和在y停止的概率各是多少.设从i点出发在x停止的概率为f(i),显然有f(x)=1,f(y)=0,f(i)=[f(i-1)+f(i+1)]/2.解方程得f(i)=(y-i)/(y-x).在y停止的概率同理. 再设f[…
传送门 分析 https://www.luogu.org/blog/22112/solution-p5155 代码 #include<bits/stdc++.h> using namespace std; #define int long long struct node { int x,y; }; node d[],a; inline node operator - (node x,node y){return (node){x.x-y.x,x.y-y.y};} inline int ope…
根据题意不难发现这个模型是不好进行贪心的,于是可以考虑使用 \(dp\).可以令 \(dp_i\) 表示在 \(i\) 位置以最优策略能获得的报酬期望值,那么会有转移: \[dp_i = \max(f_i, \frac{1}{2}(dp_{i - 1} + dp_{i + 1})) \] 不难发现上面这个 \(dp\) 的转移是有后效性的,但类似地往两边的转移方式在 [六省联考2017]分手是祝愿 中遇到过.但可以发现的是,在那道题的第一个方法当中因为我们终点都是同一个位置所以才可以改变状态向同…
Problem 洛谷5156 题意概要:给定一个长为\(n\)的排列,可以选择一个集合\(S\)使这个集合内部元素排到自己在整个序列中应该在的位置(即对于集合\(S\)内的每一个元素\(i\),使其排到第\(i\)号位置,使得整个排列在排序后为上升序列.求满足这样条件的,且集合大小最小的集合中字典序第\(k\)小的集合(可能总结不到位,看链接里的吧) \(n\leq 10^5\) Solution 不难发现出题人费尽心思写的题面就是在强烈暗示选取一个集合等价于将这个集合内所有元素排到自己该处于的…
又又又又又又又被踩爆了 首先容易写出这样的期望方程:f(1)=max(d(1),f(2)/2),f(n)=max(d(n),f(n-1)/2), f(i)=max(d(i),(f(i-1)+f(i+1))/2),d是直接下来的收益 令S(i)等于后面那一个东西,那么f(i)=max(d(i),S(i)) 套了max很难直接求,但是S(i)和d(i)一定是定值,那些由S贡献的点实际上就是被它左右两边各一个点的d贡献的,更确切的,假如把那些点是由d贡献找出来,那些由S贡献的点实际上就是被它左右两边第…
这些题都是没ac调了好久发现是sb错误的题--. 想清楚再写题!!! 2019.4.18 洛谷P5155 [USACO18DEC]Balance Beam 转移方程\((a[l[i]]*(r[i]-i)+a[r[i]]*(i-l[i]))/(r[i]-l[i])\)写成\((a[l[i]]*(i-l[i])+a[r[i]]*(r[i]-i))/(r[i]-l[i])\) 100pt->9pt 洛谷P5289 [十二省联考2019]皮配 背包有限制的学校时,第四维边界为了图省事直接写的\(D0\)…
bzoj5483 Usaco2018Dec Balance Beam 题目链接:https://lydsy.com/JudgeOnline/problem.php?id=5483 数据范围:略. 题解: 首先有一个模型,就是长度为$L$的线段,$f_i$表示这个点每次有$\frac{1}{2}$的几率向左,$\frac{1}{2}$的几率向右.走到端点会掉下去的话,走到右端点的概率. 我们发现:$f_i=\frac{f_{i-1}+f_{i+1}}{2}$,是一个等差数列. 然后,$f_0 =…
从这里开始 比赛目录 A < B < E < D < C = F,心情简单.jpg. Problem A >< 把峰谷都设成 0. Code #include <bits/stdc++.h> using namespace std; typedef bool boolean; const int N = 5e5 + 5; int n; char s[N]; int L[N], R[N]; int main() { scanf("%s",…
t1 Convention 题目大意 每一头牛都有一个来的时间,一共有\(n\)辆车,求出等待时间最长的那头牛等待的最小时间. 解法 第一眼看到这道题还以为是\(2018noip\)普及组的t3魔鬼题,但是不一样. 我们因为要查找最大最小值,很容易就想到用二分查找. 那么直接查找答案,也就是等待的时间,然后用\(O(n)\)的复杂度的贪心验证就可以了,放的下且能放进去,那么就放. 总体复杂度是\(O(nlogn)\) \(ps.\)要注意边界的判断. t2 Convention II 题目大意…
Preface 今年准备省选啥都不说了,省选题基本上都做过一遍了,开始尝试板刷AGC 这场做完就从AGC001开始吧,感觉以我的速度和来机房的频率一个礼拜做一场都谢天谢地了 A - >< 考虑我们找出所有的山谷的位置,把它们设成0 然后它有两种向两边扩展方式,直接取\(\min\)BFS一下就好了,显然状态数是\(2n\)的 #include<cstdio> #include<cstring> #define RI register int #define CI con…
点此进入比赛 \(A\):><(点此看题面) 大致题意: 给你一个长度为\(n-1\).由\(<\)和\(>\)组成的的字符串,第\(i\)位的字符表示第\(i\)个数和第\(i+1\)个数的大小关系,求这个由非负整数组成的数组中元素和的最小值. 送分题都想了几分钟才做出来,真是退役预警...... 显然,对于所有小于两旁的数,我们给它赋值为\(0\),然后再从它们向两边扩展即可. #include<bits/stdc++.h> #define Tp template&…
主要参考博客: https://blog.csdn.net/u011046017/article/details/80672597#%E8%AE%AD%E7%BB%83%E4%BB%A3%E7%A0%81http://www.cs.toronto.edu/~frossard/post/vgg16/ 1.物体分类 imagenet_classes.py class_names = '''tench, Tinca tinca goldfish, Carassius auratus great whi…
就按(博主认为的)难度顺序排吧. Sort It Out 分析 容易发现选出的集合一定是所有逆序对的一个最小覆盖集,那么剩下的就一定是一个LIS.仔细想想还可以发现字典序第\(k\)小的最小覆盖集的补集一定是字典序第\(k\)大的LIS,所以找到这个序列字典序第\(k\)大的LIS就好了. 代码 #include <bits/stdc++.h> #define rin(i,a,b) for(register int i=(a);i<=(b);++i) #define irin(i,a,b…
ImageNet2017文件下载 文件说明 imagenet_object_localization.tar.gz包含训练集和验证集的图像数据和地面实况,以及测试集的图像数据. 图像注释以PASCAL VOC 格式保存在 XML 文件中.用户可以使用 PASCAL 开发工具包解析注释. 注释按它们的同义词集(例如,"波斯猫"."山地自行车"或"热狗")作为它们的wnid. 这些 ID 看起来像 n00141669.每个图像的名称与注释文件名直接对…
ImageNet2017文件介绍及使用 文件说明 imagenet_object_localization.tar.gz包含训练集和验证集的图像数据和地面实况,以及测试集的图像数据. 图像注释以PASCAL VOC 格式保存在 XML 文件中.用户可以使用 PASCAL 开发工具包解析注释. 注释按它们的同义词集(例如,"波斯猫"."山地自行车"或"热狗")作为它们的wnid. 这些 ID 看起来像 n00141669.每个图像的名称与注释文件名…
http://poj.org/problem?id=2142 题目大意:有一天平和两种数量无限的砝码(重为a和b),天平左右都可以放砝码,称质量为c的物品,要求:放置的砝码数量尽量少:当砝码数量相同时,总质量尽量小. 显然转换成ax+by=c的问题,求|x|+|y|最小且|ax|+|by|最小的可行解. 又是exgcd板子题. #include<cstdio> #include<cctype> #include<iostream> using namespace std…
思路:最短路+dp 1.先跑一遍最短路,计算出没有干草垛最少要多少时间 2.dp求出有干草垛至少需要多少时间,由于dp有后效性,所以用SPFA辅助转移,dp方程和求最短路一模一样,只是先将有干草垛的拉入队列转移,仅此而已. 代码非常简单,可以说是两遍一模一样的SPFA: #include<bits/stdc++.h> #define maxn 1000001 #define INF 1926081700 using namespace std; long long cnt,cost[maxn]…
1.题目 POJ-1837 2.题目大意 一个天平上有一些钩子,现在有一些砝码.给出每个钩子到原点(姑且这么叫吧)的距离(-15 ~ 15,负数代表在左边,正数相反)以及砝码的重量(1 ~ 20),求出把所有的砝码挂上天平并且让天平保持平衡的方案数. 3.分析 显然,暴力枚举必然会TLE.那么,看到方案总数四个数就想到了数论和DP. 在这道题里,可以看出要用DP. 设\(f_{i,j}\)为:把前 \(i\) 个砝码全部放到天平,倾斜度为 \(j\) 的方案总数. 规定正数为向右偏,负数为向左偏…
C. Balance 题目链接 http://codeforces.com/contest/17/problem/C 题面 Nick likes strings very much, he likes to rotate them, sort them, rearrange characters within a string... Once he wrote a random string of characters a, b, c on a piece of paper and began…
The Balance Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7212    Accepted Submission(s): 2978 Problem Description Now you are asked to measure a dose of medicine with a balance and a number…
题目连接:hdu_5616_Jam's balance 题意: 给你一些砝码,和一些要被称出的重量,如果这些砝码能称出来输出YES,否则输出NO 题解:我们想想,这题求组合方式,我们这里可以直接用母函数艹过去,这里我写的枚举子集的方式,其实就是母函数的形式 #include<cstdio> #define F(i,a,b) for(int i=a;i<=b;i++) ?-a:a;} ],dp[][]; int main(){ int t,n,m,sum,x; scanf("%d…
HDU 5616 Jam's balance(Jam的天平) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)   Problem Description - 题目描述 Jim has a balance and N weights. (1≤N≤20) The balance can only tell whether things on different side are t…
文章目录 A题 B题 C题 D题 E题 F题 传送门 A题 传送门 题意简述:给你一个mmm个数的数列,现在规定把一个数列的1,2,...,k1,2,...,k1,2,...,k分成第一组,把k+1,k+2,...,2kk+1,k+2,...,2kk+1,k+2,...,2k分成第二组,-,这样把前n∗kn*kn∗k个数分成nnn组,现在给你sss个数,你可以删去至多m−n∗km-n*km−n∗k个数使得新数列按照上述方式分组可以分出来至少一个组满足sss个数都在里面出现(如果sss个数中aaa…
codeforces 17C Balance 题意 给定一个串,字符集{'a', 'b', 'c'},操作是:选定相邻的两个字符,把其中一个变成另一个.可以做0次或者多次,问最后可以生成多少种,使得任意一种字符和其他字符的个数相差都不超过1. 题解 一个生成串压缩之后必定都是初始串的子序列,那么只要能枚举所有子序列,其他的很好搞定. 对于枚举的每个子序列,如果它是由初始串最早能生成的产生,那么肯定不会重. 基于这一点,f(i, a, b, c)表示当前由初始串1~i生成子序列,三个字符分别的个数…
目录 SICP第三章题解 ex3-17 ex3-18 ex3-19 队列 ex3-21 ex3-22 ex3-24 ex3-25 3.4 并发:时间是一个本质问题 ex3-38 3.4.2 控制并发的机制 ex3-39 ex3-41 ex3-42 串行化.序列化 ex3-44 串行化的实现 ex3-47 死锁 3.5 流 ex3-50 序列加速器 SICP第三章题解 标签(空格分隔): SICP ex3-17 统计一个表结构中的序对个数 (define (count-pairs x) (coun…