上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 65 下一页
摘要: S(i,j)=Σ(-1)j-k(1/j!)·C(j,k)·ki=Σ(-1)j-k·ki/k!/(j-k)!。原式=ΣΣ(-1)j-k·ki·2j·j!/k!/(j-k)! (i,j=0~n)。可以发现i只在式中出现了一次且与j不相关,如果对每个k求出其剩余部分的答案,各自乘一下即可。而剩余部分显然是 阅读全文
posted @ 2019-01-15 16:00 Gloid 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 注意到n很小,显然的做法是枚举每行是否翻转,然后O(m)统计Σmin(popcount(ai),n-popcount(ai))即可。考虑将每列是否翻转写成一个二进制数,那么翻转相当于让该二进制数与每列异或。统计每列各种状态的出现次数,将其设为cnt[i],将min(popcount(i),n-pop 阅读全文
posted @ 2019-01-15 14:52 Gloid 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 按卖出时间排序后,设f[i]为买下第i台机器后的当前最大收益,则显然有f[i]=max{f[j]+gj*(di-dj-1)+rj-pi},且若此值<0,应设为-inf以表示无法购买第i台机器。 考虑优化,显然是一个斜率优化式子,设j转移优于k,则f[j]+gj(di-dj-1)+rj>f[k]+gk 阅读全文
posted @ 2019-01-15 01:53 Gloid 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 合法条件为所有划分出的子图均不存在欧拉回路或不连通,也即至少存在一个度数为奇数的点或不连通。显然可以对每个点集预处理是否合法,然后就不用管这个奇怪的条件了。 考虑状压dp。设f[S]为S集合所有划分方案的满意度之和,枚举子集转移,则有f[S]=Σg[S']*f[S^S']*(sum[S']/sum[ 阅读全文
posted @ 2019-01-14 22:30 Gloid 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 先只考虑求某个f(k)。考虑转换为计算每条边的贡献,也即该边被所选连通块包含的方案数。再考虑转换为计算每条边不被包含的方案数。这仅当所选点都在该边的同一侧。于是可得f(k)=C(n,k)+ΣC(n,k)-C(sizei,k)-C(n-sizei,k)。于是就可以O(n)求出某个f(k)了。 现在要求 阅读全文
posted @ 2019-01-14 18:49 Gloid 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 假设已经求出了在每个点的最优期望收益,显然最优策略是仅当移动一次后的期望收益>当前点收益时移动。对于初始点,其两边各存在一个最近的不满足上述条件的位置,因此从初始点开始随机游走,直到移动到这两个点之一时停止即为最优方案。 设当前点为i,左边的停止点为x,右边的停止点为y,考虑在x停止和在y停止的概率 阅读全文
posted @ 2019-01-14 16:32 Gloid 阅读(227) 评论(0) 推荐(0) 编辑
摘要: A:签到。 #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<algorithm> using namespace std; #define ll long 阅读全文
posted @ 2019-01-13 22:13 Gloid 阅读(319) 评论(0) 推荐(0) 编辑
摘要: A:签到。 #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<algorithm> using namespace std; #define ll long 阅读全文
posted @ 2019-01-13 01:37 Gloid 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 考虑先将平面图转化为对偶图。具体地,将无向边拆成两条有向边。每次考虑找到包围一个区域的所有边。对当前考虑的边,找到该边的反向边在该边终点的出边集中,按极角序排序的后继,这条后继边也是包围该区域的边。这样对偶图就建好了。 考虑怎么用对偶图解决原问题。将外围的无限域也作为对偶图中的一个点,以其为根随便找 阅读全文
posted @ 2019-01-13 01:27 Gloid 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 即询问凸包是否有交。这显然可以直接求半平面交,但是复杂度O(q(n+m)),且没有什么优化空间。 更直接地表示,即相当于询问是否存在点a∈A,b∈B,使得a+d=b。移项,得到d=b-a。可以发现等式右边是一个闵可夫斯基和。求闵可夫斯基和只需要分别求出两个凸包,然后每次考虑ai+1+bi和ai+bi 阅读全文
posted @ 2019-01-12 16:03 Gloid 阅读(308) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 65 下一页