关于dp那些事】的更多相关文章

拿到一道题,先写出状态转移方程,再优化时间复杂度 状态优化: 对于状态可累加 \(e.g.dp[i+j]=dp[i]+dp[j]+i+j\) 的,用倍增优化 决策优化: \(e.g.dp[i][j]=\max(dp[i-1][j-233]+(j-233)^2,dp[i-1][j-232]+(j-232)^2,...,dp[i-1][j]+j^2)\) 单调队列优化 \(e.g.dp[i]=\max(dp[1]+i,dp[2]+2i,...,dp[i-1]+(i-1)i)\) 斜率优化 交叉小于包…
意甲冠军: 要求 小于或等于n号码 (0<=n <= 1e18)尾数的数的阶乘0数为偶数 思考:当然不是暴力,因此,从数论.尾数0数为偶数,然后,它将使N阶乘5电源是偶数.(二指数肯定少5指数),乞讨N.阶乘5该指数是N/5+ N/25+N/125. . .. 以530为例.尝试着将转化为5进制  即为 4110.那么5的指数 就是 411+41+4 (5进制)easy发现要使这个数是偶数.就是要使5进制奇数位的个数为偶数.依据刚才那个加法,能够看出,最后结果的5进制的末位就是411+41+4…
我转载地方的连接:http://zhangkun716717-126-com.iteye.com/blog/1772696  当笔记记录一下 dip: device independent pixels(设备独立像素).不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖像素.  与密度无关的像素,这是一个基于屏幕物理密度的抽象单位.密度可以理解为每英寸包含的像素个数(单位是dpi),1dp实际上相当于密度为160dpi的屏上的一个点(…
考场上,整整看了半个小时以上的题目!!! 化简题意: 给定一个全0矩阵,一些坐标点(x,y)为1,当三个点可以构成一个直角三角形时(直角边长为整数)拓展为一个矩形,之后从(0,0)出发,求最多的占用行数或占用列数 反正就是很麻烦的题就对了... 考场历程: 1.没看懂题,就去看下一题了 2.第三题可做性极差(tpsort+dp或网络流) 3.n^2拓展完了新点,发现样例就是个弟弟!(拓展完变成全1矩阵) 4.最小最大,想着二分来着,但是秒pass 5.想强行建边,跑最短路 6.dp根本想不出来.…
P1291 [SHOI2002]百事世界杯之旅 声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 题目描述 "--在 \(2002\) 年 \(6\) 月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶快行动!" 你关上电视,心想:假设有 \(n\) 个不同的球星名字,每个名字出现的概率相同,平均需…
题目:https://www.luogu.org/problemnew/show/P1291 水水的经典期望DP: 输出有毒.(其实也很简单啦) 代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef long long ll; ll n,fz[],fm[],s1,s2,ans,w,w2; //double f[35]; ll gcd(ll x,ll…
题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶快行动!” 你关上电视,心想:假设有n个不同的球星名字,每个名字出现的概率相同,平均需要买几瓶饮料才能凑齐所有的名字呢? 输入输出格式 输入格式: 整数n(2≤n≤33),表示不同球星名字的个数. 输出格式: 输出凑齐所有的名字平均需要买的饮料瓶数.如果是一个整数,则直接输出,否则应该直接按照分数格…
传送门 解题思路 期望$dp$.因为这个是期望步数,所以要倒着推.那么这道题就变得一脸可做了,设$f[i]$表示还有$i$张牌没有收集的期望,那么考虑再抽一张,有$(n-i)/n$的概率抽到抽过的牌,有$i/n$的概率抽到没有抽过的牌.那么转移方程就是: $f[i]=f[i]*\dfrac{(n-i)}{n}+f[i-1]*\dfrac {i}{n}+1 $.但这样是没法继续写的,因为方程两边有同一个未知数,所以移项可得 $f[i]=f[i-1]+\dfrac{n}{i}$. 输出的格式真的6,…
1.最少硬币问题大体题意: 有n种硬币,面值分别是v1,v2......vn,数量无限,输入一个非负整数s,选用硬币使其和为s,要求输出最少的硬币组合. 我们可以这样分析: 定义一个名为Min[s]的数组来表示是金额s所对应的最少硬币的组合,所以对我们来说,只要是在程序中查到Min[i]的大小就可以知道最少的硬币组合是多少了. 以面值为{1,5,10,25,50}为例子来讲一下,方便以后备赛. 假如我们输入的s是100,当全用1coin的时候,如图:(画的很拙劣,抱歉) 那么第一个格子里指的就是…
传送门 期望题. 其实跟dpdpdp关系并不大. 考虑f[i]f[i]f[i]表示已经凑出了iii个需要的次数. 显然有:f[i]=ni∗f[i]+nn−i∗f[i+1]+1f[i]=\frac {n} {i}*f[i]+\frac {n} {n-i}*f[i+1]+1f[i]=in​∗f[i]+n−in​∗f[i+1]+1 那么就有f[i]=f[i+1]+nn−if[i]=f[i+1]+\frac {n} {n-i}f[i]=f[i+1]+n−in​ 所以ans=f[0]=∑i=1nnians…