GDKOI 2021 Day2 TG 总结
又是爆炸的一天,炸多了本蒟蒻已经习以为常
但今天比昨天整整高了 40 分!!!!却还是没有 100
今天本蒟蒻本想模仿奆佬的打字速度,结果思路混乱让我无法开始
T1
不是吧怎么是期望 dp ,期望值怎么求来着?
赛后:设 \(F_i\) 为第 i 颗星时的期望,\(F_0 = \dfrac{1}{p_0}\)
可得 \((1-p_i)(F_i+F_{i-1})+1\) 移项 \(F_i=(F_{i-1}*(1-p_i)+1)*\dfrac{1}{p_i}\)
注意逆元
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1000005;
const LL mod=998244353;
int n;
LL x[N],y[N],f[N],ans,tmp;
inline LL Pow(LL x,LL y) {
register LL z=1;
for(;y;y>>=1,x=(x*x)%mod)
if(y&1)z=(z*x)%mod;
return z;
}
int main() {
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
scanf("%d",&n);
for(int i=0;i<n;i++)scanf("%lld%lld",&x[i],&y[i]);
f[0]=y[0]*Pow(x[0],mod-2)%mod;
// ! 1-p[i]
for(int i=1;i<n;i++) {
tmp=f[i-1]*(y[i]-x[i])%mod;
tmp=tmp*Pow(y[i],mod-2)%mod;
++tmp,tmp>=mod?tmp-=mod:1;
f[i]=tmp*y[i]%mod;
f[i]=f[i]*Pow(x[i],mod-2)%mod;
}
for(int i=0;i<n;i++)
ans+=f[i],ans>=mod?ans-=mod:1;
printf("%lld",ans);
}
T2
图论?暴力只有 \(20\ pts\) 预估 40 ,八成是搜索炸了
赛后:线段树
暴力方法
由于 \(i\) 一定能走到 \(i+1,i+2,,,n\) ,可以用线段树维护 \(i\in [i,n]\) 的最小值
然后用搜索一直查询到最优解,可以被链卡成 \(O(n^2)\)
#include<bits/stdc++.h>
using namespace std;
const int N=100005;
int n,T,x[N],mn[N<<2],ans,res;
inline void Up(int rt) { mn[rt]=min(mn[rt<<1],mn[rt<<1|1]); }
void Build(int l,int r,int rt) {
if(l==r) { mn[rt]=x[l]; return; }
register int mid=l+r>>1;
Build(l,mid,rt<<1),Build(mid+1,r,rt<<1|1),Up(rt);
}
void Change(int p,int vl,int l,int r,int rt) {
if(l==r) { mn[rt]=vl; return; }
register int mid=l+r>>1;
if(p<=mid)Change(p,vl,l,mid,rt<<1);
else Change(p,vl,mid+1,r,rt<<1|1); Up(rt);
}
void Query(int ql,int qr,int l,int r,int rt) {
if(ql<=l && r<=qr) {
res=min(res,mn[rt]); return;
} register int mid=l+r>>1;
if(ql<=mid)Query(ql,qr,l,mid,rt<<1);
if(qr>mid)Query(ql,qr,mid+1,r,rt<<1|1);
}
void Dfs(int u) {
res=2100000000,Query(u,n,1,n,1);
if(res==u || u==1)return;
ans=min(ans,res),Dfs(res);
}
int main() {
freopen("island.in","r",stdin);
freopen("island.out","w",stdout);
scanf("%d%d",&n,&T);
for(int i=1;i<=n;i++)scanf("%d",&x[i]);
Build(1,n,1);
for(int opt,x,y;T--;) {
scanf("%d%d",&opt,&x);
if(opt==1) {
scanf("%d",&y);
Change(x,y,1,n,1);
} else {
ans=x;
Dfs(x);
printf("%d\n",ans);
}
}
}
正解
暂时不会
T3
又是回文串?本蒟蒻刚想到 manacher 就不知怎么做了,直接\(O(n^2)\) DP走人
T4
直接上代码?不管,本蒟蒻直接复制 30 走人
GDKOI 2021 Day2 TG 总结的更多相关文章
- GDKOI 2021 Day1 TG 。。。
看着一群群比 LHF , HQX 还强的大佬涌进了机房,本蒟蒻表示慌得一批 T1 讲题人说最简单的签到题本蒟蒻表示... \(Update\) 用 ds , dt 两个变量记录点 i 连向 s 或 t ...
- GDKOI 2021 Day2 PJ 去世记
比赛时和昨天一样困,后面的大奆打代码的速度简直了 T1 用 2.4.6.8 来与 5 抵消掉末尾的 0 ,然后用周期问题的方法直接乘起来并取个位 #include<bits/stdc++.h&g ...
- GDKOI 2021 Day3 PJ 懵逼记
今天早了一点起来,初三的大奆都来做比赛了, 自然,自测的有许多 AK 虽然今天的题比昨天简单,但还是脑子还是十分迟钝,以至于贪心都想不出 真为明天的提高组而担忧 T1 斜率被卡 90 ,直接用勾股定理 ...
- GDKOI 2021 Day1 PJ 爆炸记
早上睡到 7:10 分才想起今天有 GDKOI ,赶紧去买了一个面包赶去机房 发现隔壁的大奆都过来了.比赛时由于昨晚一直没睡好,打了两个小时的哈欠 T1 :暴力模拟 根据 \(r\) 和 \(c\) ...
- 【游记】CSP 2021 J2
这次是第一次参加CSP的复赛,所以考的就很LJ. \(DAY-\infty\) 到 \(DAY-14\) 知道了自己苟过了初赛,像个SB一样. (我初赛66分,旁边那位63.5,cao着线过去的) \ ...
- bzoj1854: [Scoi2010]游戏(匈牙利) / GDKOI Day2 T2(最大流)
题目大意:有n(<=1000000)个装备,每个装备有两个属性值(<=10000),每个装备只能用一次,使用某一个值,攻击boss必须先使用属性为1的,再使用属性为2的,再使用属性为3的, ...
- 【转】TYVJ 1695 计算系数(NOIP2011 TG DAY2 1)
计算系数 题目描述 给定一个多项式(ax + by)k,请求出多项式展开后xn ym项的系数. [数据范围] 对于 30%的数据,有0≤k≤10: 对于 50%的数据,有a = 1,b = 1: 对于 ...
- UOJ 2021 NOI Day2 部分题解
获奖名单 题目传送门 Solution 不难看出,若我们单个 \(x\) 连 \((0,x),(x,0)\),两个连 \((x,y),(y,x)\) ,除去中间过对称轴的一个两个组,就是找很多个欧拉回 ...
- GDKOI 2016
GDKOI 2016 day 1 第一题 魔卡少女 题目描述:维护一个序列,能进行以下两个操作:1.将某一个位置的值改变.2.求区间的连续子串的异或值的和. solution 因为序列的数的值都小于\ ...
随机推荐
- vue换算单位px自动转换rem
cnpm i postcss-px2rem --save cnpm install px2rem-loader --save 2.配置px2rem build目录下vue-loader.conf.js ...
- 93. 复原 IP 地址
做题思路or感想 这种字符串切割的问题都可以用回溯法来解决 递归三部曲: 递归参数 因为要切割字符串,所以要用一个startIndex来控制子串的开头位置,即是会切割出一个范围是[startIndex ...
- TINY语言采用递归下降分析法编写语法分析程序
目录 自顶向下分析方法 TINY文法 消左提左.构造first follow 基本思想 python构造源码 运行结果 参考来源:聊聊编译原理(二) - 语法分析 自顶向下分析方法 自顶向下分析方法: ...
- I/O 引脚
我们以网卡举例 引脚,芯片,pcb板之间的关系非常紧密 1.引脚,又叫管脚,英文叫Pin. 就是从集成电路(芯片)内部电路引出与外围电路的接线,所有的引脚就构成了这块芯片的接口.引线末端的一段,通过软 ...
- 时间篇之centos7修复ntpq: read: Connection refused
关于ntp同步时间, 由于是解决问题,所以理论性内容不多. 关于UTC NTP要提供准确的时间,就必须有准确的时间来源,那可以用格林尼治时间吗?答案是否定的. 因为格林尼治时间是以地球自转为基础的时间 ...
- JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了
JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了 代码示例 转自 https://docs.oracle.com/javase/tutorial/jdbc/o ...
- 【LeetCode】76. 最小覆盖子串
76. 最小覆盖子串 知识点:字符串:滑动窗口 题目描述 给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ...
- AWS - Basic 1
之前由于公司 Training 考取了 AWS-SAP 的证书,更多理解的是概念和理论上的知识,并未实操.但对于学习一门技术来说,实践是加深理解和掌握该技术的必经之路,强调知行合一.所以最近打算重新熟 ...
- AcWing 【算法提高课】笔记02——搜索
搜索进阶 22.4.14 (PS:还有 字串变换 A*两题 生日蛋糕 回转游戏 没做) 感觉暂时用不上 BFS 1. Flood Fill 在线性时间复杂度内,找到某个点所在的连通块 思路 统计连通块 ...
- 【虚拟机】VMware-Ubuntu-安装与卸载
VMware-Ubuntu 一.Ubuntu虚拟机安装 1.安装Ubuntu镜像 下载Ubuntu镜像文件,下载地址:http://www.ubuntu.com,点击download 下一步,到如下页 ...