题面 "传送门" Sol 每个导弹有时间,高度,速度 求时间递增,高度,速度不降的最长的序列 然后还要求最长序列的方案以及每个导弹在最长序列中的方案 这个就是偏序问题辣,正反两遍求出每个导弹为结尾开头的序列最长长度 判断是否在最长序列就二者相加判断 然后记录下方案,用$double$,$long\ ...
分类:
其他好文 时间:
2018-04-04 16:13:27
阅读次数:
128
http://www.lydsy.com/JudgeOnline/problem.php?id=2244 每枚导弹成功拦截的概率 = 包含它的最长上升子序列个数/最长上升子序列总个数 pre_len [i] 表示以i结尾的最长不下降子序列的长度 pre_sum[i] 表示对应长度下的方案数 suf_ ...
分类:
其他好文 时间:
2018-03-19 23:33:52
阅读次数:
248
[bzoj][1] [luogu][2] sol 某一枚导弹被拦截的概率等于这一枚导弹被拦截的方案数,也就是这枚导弹参与构成最长不上升子序列的方案数,除以最长不上升子序列的总方案数。总方案数会爆long long,但是可以用double存(雾) 从前往后做一遍最长不上升子序列,再从后往前做一遍最长不 ...
分类:
其他好文 时间:
2018-03-14 19:38:34
阅读次数:
188
传送门 我tmd的连三维偏序都不会写了。。 我tmd已经是个废宸了。。 似乎decdq分治的bug永远是我的痛。。 三维偏序,三维倒过来再跑一遍,看一个点前后加起来是否等于答案。 算方案用了线段树,跑得贼慢。优秀的人都会用树状数组,不会。 //Achen #include<algorithm> #i ...
分类:
其他好文 时间:
2018-02-01 10:39:09
阅读次数:
173
2244: [SDOI2011]拦截导弹 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度、并且能够拦截任意速度的导弹,但是以后每一发炮弹都不能高于前一发的高度,其拦截的导弹的飞行速度也不能大于前一发。某 ...
分类:
其他好文 时间:
2017-12-17 20:41:46
阅读次数:
144
我是萌萌的传送门 这题其实没那么难,只是我做法麻烦所以调起来相当费事儿……这人没救了 第一问显然是裸的三维偏序,分治随便搞搞就行了。考虑第二问,答案其实就是包括它的子序列数除以总方案数,那么定义$g[i]$为以i结尾的子序列数量,$h[i]$为以i开头的子序列数量,包括它的子序列数就是$g[i]h[ ...
分类:
其他好文 时间:
2017-02-19 20:12:37
阅读次数:
259
题意:最长不上升子序列,但有两个关键字.求:1.最长不上升子序列的长度 2.随机在最长不上升子序列中选取一个,问某个位置被选中的概率. 调到快怀疑人生最后发现把printf(“%.8f”,0)改成printf(“%.8f”,0.0”)就能过了……论学好输入输出的必要性…. 记f[0][i]表示以位置 ...
分类:
其他好文 时间:
2017-02-19 18:29:04
阅读次数:
168
http://www.lydsy.com/JudgeOnline/problem.php?id=2244第$i$个导弹看成一个三元组$(i,h_i,v_i)$其实就是最长上升子序列的问题。我们分别求以第$i$个导弹为结尾的最长上升子序列的长度和个数,以及以第$i$个导弹为开头的最长上升子序列的长度和...
分类:
其他好文 时间:
2015-10-06 22:11:26
阅读次数:
396
题目大意:给定一个序列,每个元素是一个二元组,等概率选择一LIS,求LIS长度以及每个元素被选中的概率
第一问CDQ分治裸上
第二问用每个元素所在的LIS个数/总LIS个数就是答案
每个元素所在的LIS自己必选,然后统计前面的方案数和后面的方案数
以前面的方案数为例,令f[x]为以x结尾的LIS长度,那么有DP方程:
g[i]=Σg[j] (f[j]+1=f[i],j
将所有元素按f值...
分类:
编程语言 时间:
2015-04-09 20:01:41
阅读次数:
152