摘要: 首先一般化的将下水道和塌陷看成一个东西。注意到在从源点出发的所有需要使用某条下水道的最短路径中,该下水道只会被使用一次,该下水道第一个被访问的点相同,且只会在第一个访问的点使用该下水道。这个第一个访问的点显然就是正常dij过程中,该下水道第一个被取出的点。 于是在dij过程中,取出了某个点进行更新后 阅读全文
posted @ 2019-01-15 23:50 Gloid 阅读(675) 评论(0) 推荐(1) 编辑
摘要: 设f[i]为前i行的最小不协调度,转移枚举这一行从哪开始,显然有f[i]=min{f[j]+abs(s[i]-s[j]+i-j-1-m)p}。大胆猜想有决策单调性就好了。证明看起来很麻烦,从略。注意需要全程long double。 阅读全文
posted @ 2019-01-15 18:19 Gloid 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 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) 编辑