题目链接:https://www.luogu.org/problemnew/show/P4711 要细心模拟 #include <cstdio> #include <algorithm> #include <cmath> #include <cstring> #include <iostream> using namespace std; char s[10001]; int k; double nans1, nans2, fans, ffans…
P4711 「化学」相对分子质量 给你一个字符串让你输出相对分子质量(弱智字符串模拟) 我比赛tm调了两个半小时啊QAQ 希望以后能增加代码力吧,纪念挂代码 Code #include<iostream> #include<cstdio> #include<queue> #include<cstring> #include<algorithm> #include<climits> #include<cstring> #in…
[题目传送门:] [戳] (https://www.luogu.org/problemnew/show/P4711) [算法分析:] 关于一个分子拆分后的产物,一共有三种情况: 原子 原子团 水合物 关于原子的获取可以使用get_ele()函数,由于不是一位的元素就是两位的元素,只要看看这个大写字母的下一位是不是小写字母就行 返回获取的元素的string 关于系数的获取--使用函数get_num()--与快读的写法很接近,当没有系数的时候(处理后系数还是初始值没有被更新),系数是1 如何获取原子…
好久没写数据结构了 来补一发 果然写的时候思路极其混乱.... LOJ #2116 Luogu P3241 题意 $ Q$次询问,求树上点的颜色在$ [L,R]$中的所有点到询问点的距离 强制在线 询问次数,树上点数约$ 2·10^5$ $ Solution$ 首先有 $ dist(x,y)=deep(x)+deep(y)-2·deep(lca(x,y))$ 显然这个等式的前两项很容易用前缀和什么的维护 只考虑第三项的话相当于是有边权并且强制在线的「LNOI2014」LCA 用同样的套路将$ d…
好像也没那么难写 LOJ #2547 Luogu P4517 题意 在一棵点仙人掌中等概率选择一个点集 求选出点集的斯坦纳树大小的期望 定义点仙人掌为不存在一个点在多个简单环中的连通图 斯坦纳树为在原图中连通给定点集的一棵生成树 点数不超过$ 200$ $ Solution$ 直接计算不太方便 我们转而考虑每条边的贡献 如果这条边不在环上则一定是割边 若这条边两边都有点被选择就会被计算贡献 如果这条边在环上比较复杂 对于一个环,我们选择的边的数量一定是环大小-最长没选中点的路径的长度 定义选中某…
几乎肝了半个下午和整个晚上 斜率优化的模型好多啊... LOJ #2249 Luogu P2305 题意 给定一棵树,第$ i$个点如果离某个祖先$ x$的距离不超过$ L_i$,可以花费$ P_i·dist(i,x)+Q_i$的代价跳到点$ x$, 求每个点走到根的最小代价 点数不超过$ 2·10^5$ $ Solution$ 用$dis_x$表示$ x$到根的距离 首先考虑一条链的情况 尝试斜率优化 容易推出两个点$j,k$,若$ dis_k>dis_j且k比j优$当且仅当$ \frac{d…
好像网上没人....和我推出....同一个式子啊..... LOJ #2527 Luogu P4491 题意 $ n$个格子中每个格子可以涂$ m$种颜色中的一种 若有$ k$种颜色恰好涂了$ s$格则产生$ w_k$的价值 求所有涂色方案的价值和 $ solution$ 按常规套路先容斥 设 $f_x$表示恰好有$ x$种颜色涂了恰好$s$格的方案数, $ g_x$表示至少有$ x$种颜色涂了恰好$ s$格的方案数 有 $ ans=\sum\limits_{i=0}^mw_if_i$ $ f_…
我博弈基础好差.. Luogu P2490 题意 有一个长度为$ n$的棋盘,黑白相间的放$ k$个棋子,保证$ k$是偶数且最左边为白子 每次小$ A$可以移动不超过$ d$个白子,然后小$ B$可以移动不超过$ d$个黑子 双方不能把棋子越过其他棋子 求有多少种初始方案使得小$ A$先手必胜 注意白子只能往右黑子只能往左 $NimK游戏$ 对于一个局面,我们可以把每对相邻的(白,黑)对看成一堆石子,数量即为这两个棋子之间的距离 问题等价于每次可以在不超过$ d$堆中取石子求是否必胜 考虑普通…
第二篇题解! 可能是退役之前的最后一篇题解了 (好像总共都只写了两篇) 不说了,讲题: 题面 题意: 有T个数据 有一颗树(保证所有的的节点都是相连的),有n个节点,每个节点都有相应的权值与序号,现在你要进行M次操作,操作是: 找到权值最大的节点(如果有权值相同且又是最大的节点,则选择序号较小的节点),与节点直接相连的节点权值+1(本身不增加权值) 最后输出权值最大的节点(有相同的则输出序号较小的节点). 数据范围: 对于 100% 的数据,1≤N≤2×10^6, 1≤M≤10^18, 1≤A…
为什么我连分块都想不到啊... 题意 定义一个矩阵$f$满足 $ f(a,b)=f(b,a)$ $ b·f(a,a+b)=(a+b)·f(a,b)$ 初始$ f(a,b)=ab$ 有$ m$次修改,每次会将$ f(x,y)$改成$ c$,并修改这个矩阵使得仍然满足以上两条 保证修改后矩阵中每个数均为正整数 你需要在每次修改后求出$ \sum\limits_{i=1}^k\sum\limits_{j=1}^kf(i,j)$ 数据范围满足$ m \leq 10000$,涉及到的矩形范围不超过$4·1…