摘要: 很好的一道期望题,暑假时学长讲的,不过当时用的是 WerKeyTom_FTD 给的第二种解法,现在用的是 skyh 学长的决策单调性(分治写法) 首先不难得到期望转移式 我们令 \(a_{i,j}\) 表示存档点在 \(i\) 点 走到 \(j\) 点的期望步数 \(g_{i}\) 表示从该错误节点 阅读全文
posted @ 2021-11-19 08:04 zJx-Lm 阅读(72) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-10-11 20:47 zJx-Lm 阅读(8) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-09-20 21:45 zJx-Lm 阅读(9) 评论(0) 推荐(1) 编辑
该文被密码保护。 阅读全文
posted @ 2021-09-05 18:59 zJx-Lm 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 常规 1.基本输入输出: 一般用cin型输入输出即可,主要包括一下几种类型: int a; double a; float a; //一般需要用浮点数的变量直接用double就行 cin>>a; cout<<a; :(特殊的题目要求我们保留几位小数) printf("%.3lf",a); //注:里 阅读全文
posted @ 2024-06-01 15:45 zJx-Lm 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 模拟4 : 1. Code #include <iostream> #include <iomanip> using namespace std; double averageAtomicWeight(int O, int C, int N, int S, int H) { /********Pro 阅读全文
posted @ 2024-05-30 23:56 zJx-Lm 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 其实如果真的要删的话,前缀最小值是负值的前缀最小值位置之前产生负贡献的位置都是要删的,后缀同理 我们令 \(pre_i\) 表示前缀, \(suf_i\) 表示后缀 仅考虑前缀的话贡献就是 \(-min\{pre_i\}\) 此时后缀的值会改变,即:\(suf_i'=suf_i-min\{pre_i 阅读全文
posted @ 2021-11-17 17:26 zJx-Lm 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 很新颖的一道题 首先容易发现如果一个数 \(g\) 在答案集合中,那么 \([0,g,2g,3g...]\) 均都在答案集合中 那我们就可以根据 \(m_k\) 来先缩小一下答案 \(g\) 的范围 即:\(g\ | \gcd(m_k,n)\) 其次根据其他的 \(m_i\) ,我们又可以再得到一些 阅读全文
posted @ 2021-11-17 17:06 zJx-Lm 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 可以暴力 \(dp\) ,但每次转移时我们发现有许多转移是多余的 考虑 \(dp\) 的重复利用 首先如果把起点设在 \(l\) 位置肯定是不行的 其实不难发现,从上面某一点走到下面某一点的反方案与正方案基本相同 所以我们可以构造一个中途转移点,当新添加一行时,直接更新新的 \(dp\) 值 当 \ 阅读全文
posted @ 2021-11-16 21:09 zJx-Lm 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 考虑 \(n\) 很小,我们可以通过记录二分图的匹配状态进行转移 主要讲一下这道题的精髓 注意到我们只关心一条边是否在完美匹配中出现 我们可以把 \(t=1\) \(t=2\) 的情况拆成 \(t=0\) 的情况 \(t=1\) : 设两条边分别为 \(a,b\) ,我们在开始时把他们当成 \(t= 阅读全文
posted @ 2021-11-15 11:15 zJx-Lm 阅读(51) 评论(0) 推荐(0) 编辑
摘要: struct BigInt { lls a[maxn]; int len; BigInt() : len(0) { memset(a,0,sizeof(a)); } BigInt(int x) : len(1) { memset(a,0,sizeof(a)); a[1]=x; } inline vo 阅读全文
posted @ 2021-11-15 08:17 zJx-Lm 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 很新颖的题 首先观察到 \(m\) 很小,考虑从其入手 如果我们把 \(m\) 个边看做双向边,把连在一起的点看为联通块 那么一个联通块内的点的个数是和 \(m\) 同级的 我们可以对于每个联通块做一遍全源最短路 对于一个联通块内的点对 \((i,j)\) 分情况考虑: 首先如果 \((i,j)\) 阅读全文
posted @ 2021-11-10 20:09 zJx-Lm 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 第一次考场见重构树 我们按点从小到大依次插入 不太好描述,先上码: for(re int i=2;i<=n;i++) { for(re int j=0;j<vec[i].size();j++) { int to=vec[i][j]; if(to<i) { add(i,find(to)); fa[fi 阅读全文
posted @ 2021-11-10 19:52 zJx-Lm 阅读(68) 评论(0) 推荐(1) 编辑