NOIP 模拟 $28\; \rm 客星璀璨之夜$
题解 \(by\;zj\varphi\)
概率与期望,考虑 \(\rm dp\)
设 \(dp_{i,j}\) 为消除 \(i~j\) 这一段行星的期望,转移:
枚举 \(k\) 为当前状态下第一个撞击的行星,分向左,向右。
\]
\]
\(\rm E_{i,j}\) 表示 \(\rm i->j\) 的期望位置,转移与 \(\rm dp\) 类似。
这样就可以 \(\mathcal O\rm (n^3)\),加个前缀和即可优化成 \(\mathcal O\rm(n^2)\)
Code
#include<bits/stdc++.h>
#define ri register signed
#define p(i) ++i
using namespace std;
namespace IO{
char buf[1<<21],*p1=buf,*p2=buf,OPUT[100];
#define gc() p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?(-1):*p1++;
template<typename T>inline void read(T &x) {
ri f=1;x=0;register char ch=gc();
while(!isdigit(ch)) {if (ch=='-') f=0;ch=gc();}
while(isdigit(ch)) {x=(x<<1)+(x<<3)+(ch^48);ch=gc();}
x=f?x:-x;
}
template<typename T>inline void print(T x,char t) {
if (x<0) putchar('-'),x=-x;
if (!x) return putchar('0'),(void)putchar(t);
ri cnt(0);
while(x) OPUT[p(cnt)]=x%10,x/=10;
for (ri i(cnt);i;--i) putchar(OPUT[i]^48);
return (void)putchar(t);
}
}
using IO::read;using IO::print;
namespace nanfeng{
#define int long long
#define FI FILE *IN
#define FO FILE *OUT
template<typename T>inline T cmax(T x,T y) {return x>y?x:y;}
template<typename T>inline T cmin(T x,T y) {return x>y?y:x;}
static const int N=3e3+7,MOD=998244353;
int dp[N][N],suf[N][N],pre[N][N],ex[N][N],a1[N][N],a2[N][N],inv[N],pa[N],n;
inline int main() {
//FI=freopen("nanfeng.in","r",stdin);
//FO=freopen("nanfeng.out","w",stdout);
read(n);
inv[1]=1;
ri al=(n<<1)+1;
for (ri i(2);i<=al;p(i)) inv[i]=(MOD-MOD/i)*inv[MOD%i]%MOD;
for (ri i(1),pla;i<=n;p(i)) {
read(ex[i][i-1]),read(pla);
pa[i]=(pa[i-1]+pla)%MOD;
}
read(ex[n+1][n]);
for (ri i(n);i;--i)
for (ri j(i);j<=n;p(j)) {
pre[i][j]=(pre[i][j-1]+ex[i][j-1])%MOD;
suf[j][i]=(suf[j][i+1]+ex[i+1][j])%MOD;
ex[i][j]=(pre[i][j]+suf[j][i])*inv[j-i+1]%MOD*inv[2]%MOD;
dp[i][j]=(dp[i][j]+2*(a1[i][j-1]+a2[j][i+1])%MOD)%MOD;
dp[i][j]=(dp[i][j]+pa[j]-pa[i-1]-pre[i][j])%MOD;
dp[i][j]=(dp[i][j]-pa[j]+pa[i-1]+suf[j][i])%MOD;
dp[i][j]=dp[i][j]*inv[j-i+1]%MOD*inv[2]%MOD;
a1[i][j]=(a1[i][j-1]+dp[i][j])%MOD;
a2[j][i]=(a2[j][i+1]+dp[i][j])%MOD;
}
print((dp[1][n]+MOD)%MOD,'\n');
return 0;
}
#undef int
}
int main() {return nanfeng::main();}
NOIP 模拟 $28\; \rm 客星璀璨之夜$的更多相关文章
- NOIP 模拟 $28\; \rm 割海成路之日$
题解 \(by\;zj\varphi\) 用两个集合分别表示 \(1\) 边联通块,\(1,2\) 边联通块 . \(\rm son_x\) 表示当前节点通过 \(3\) 类边能到的 \(2\) 联通 ...
- NOIP 模拟 $28\; \rm 遗忘之祭仪$
题解 \(by\;zj\varphi\) 直接贪心模拟即可,对于每个点,如果它未被覆盖,直接在这覆盖一次. 每个黑点只会被扫一次,所以总复杂度为 \(\mathcal O\rm (nm)\) Code ...
- Solution -「LOCAL」客星璀璨之夜
\(\mathcal{Description}\) OurOJ. 给定坐标轴上的 \(2n+1\) 个坐标 \(x_1,x_2,\cdots,x_{2n+1}\),其中偶数下标的位置是一个小球 ...
- HDU6848改编题(弱化)——客星璀璨之夜(stars)
「 客星璀璨之夜 」(stars) " 虽然不清楚是不是那两人的力量 在那个风暴肆虐的夜晚,的确有一瞬 真的在那一瞬间,在云破天开的时候 透过空隙中看到的璀璨星空,不知为何倒映眼中不能忘怀 ...
- NOIP模拟 1
NOIP模拟1,到现在时间已经比较长了.. 那天是6.14,今天7.18了 //然鹅我看着最前边缺失的模拟1,还是终于忍不住把它补上,为了保持顺序2345重新发布了一遍.. # 用 户 名 ...
- 2021.5.22 noip模拟1
这场考试考得很烂 连暴力都没打好 只拿了25分,,,,,,,,好好总结 T1序列 A. 序列 题目描述 HZ每周一都要举行升旗仪式,国旗班会站成一整列整齐的向前行进. 郭神作为摄像师想要选取其中一段照 ...
- NOIP模拟3
期望得分:30+90+100=220 实际得分:30+0+10=40 T1智障错误:n*m是n行m列,硬是做成了m行n列 T2智障错误:读入三个数写了两个%d T3智障错误:数值相同不代表是同一个数 ...
- 7.22 NOIP模拟7
又是炸掉的一次考试 T1.方程的解 本次考试最容易骗分的一道题,但是由于T2花的时间太多,我竟然连a+b=c都没判..暴力掉了40分. 首先a+b=c,只有一组解. 然后是a=1,b=1,答案是c-1 ...
- 20190725 NOIP模拟8
今天起来就是虚的一批,然后7.15开始考试,整个前半个小时异常的困,然后一看题,T1一眼就看出了是KMP,但是完了,自己KMP的打法忘的一干二净,然后开始打T2,T2肝了一个tarjan点双就扔上去了 ...
随机推荐
- 流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)转
常用的流媒体协议主要有HTTP渐进下载和基于RTSP/RTP的实时流媒体协议两类.在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时多媒体数据. 1 实时传输 ...
- Springboot中Rest风格请求映射如何开启并使用
问题引入 因为前端页面只能请求两种方式:GET请求和POST请求,所以就需要后台对其进行处理 解决办法:通过springmvc中提供的HiddenHttpMethodFilter过滤器来实现 而由于我 ...
- C语言:最大公约数和最小公倍数
#include <stdio.h> int main() { int a,b,c,m,t; printf("请输入两个数:\n"); scanf("%d%d ...
- C语言:字符型数据(常量)
字符型数据就是字符. 字符型数据的表示 字符型数据是用单引号括起来的一个字符.例如:'a'.'b'.'='.'+'.'?'都是合法字符型数据.在C语言中,字符型数据有以下特点: 字符型数据只能用单引号 ...
- 【动画消消乐】HTML+CSS 自定义加载动画:清新折叠方块效果 063(附源码及原理详解)
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专 ...
- React组件三大属性之state
React组件三大属性之state 组件被称为"状态机", 页面的显示是根据组件的state属性的数据来显示 理解1) state是组件对象最重要的属性, 值是对象(可以包含多个数 ...
- SpringMvc接受请求参数的几种情况演示
说明: 通常get请求获取的参数是在url后面,而post请求获取的是请求体当中的参数.因此两者在请求方式上会有所不同. 1.直接将接受的参数写在controller对应方法的形参当中(适用于get提 ...
- Pytest单元测试框架之setup/teardown模块示例操作
"""模块级(setup_module/teardown_module)开始于模块始末,全局的函数级(setup_function/teardown_function)只 ...
- Redis中一个String类型引发的惨案
曾经看到这么一个案例,有一个团队需要开发一个图片存储系统,要求这个系统能快速记录图片ID和图片存储对象ID,同时还需要能够根据图片的ID快速找到图片存储对象ID.我们假设用10位数来表示 ...
- C++:数据类型
/** * C++ 数据类型 : https://www.runoob.com/cplusplus/cpp-data-types.html * * 布尔: bool * 字符: char 1 个字节 ...