Luogu P2490「JSOI2016」黑白棋】的更多相关文章

我博弈基础好差.. Luogu P2490 题意 有一个长度为$ n$的棋盘,黑白相间的放$ k$个棋子,保证$ k$是偶数且最左边为白子 每次小$ A$可以移动不超过$ d$个白子,然后小$ B$可以移动不超过$ d$个黑子 双方不能把棋子越过其他棋子 求有多少种初始方案使得小$ A$先手必胜 注意白子只能往右黑子只能往左 $NimK游戏$ 对于一个局面,我们可以把每对相邻的(白,黑)对看成一堆石子,数量即为这两个棋子之间的距离 问题等价于每次可以在不超过$ d$堆中取石子求是否必胜 考虑普通…
题目链接 loj#2071. 「JSOI2016」最佳团体 题解 树形dp强行01分规 代码 #include<cstdio> #include<cstring> #include<algorithm> #define gc getchar() #define pc putchar inline int read() { int x = 0,f = 1; char c = gc; while(c < '0' || c > '9') c = gc; while…
目录 题目链接 题解 代码 题目链接 loj#2076. 「JSOI2016」炸弹攻击 题解 模拟退火 退火时,由于答案比较小,但是温度比较高 所以在算exp时最好把相差的点数乘以一个常数让选取更差的的概率降低 代码 #include<ctime> #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #define gc getchar() #define…
[LOJ 2082] 「JSOI2016」炸弹攻击 2 链接 链接 题解 枚举发射源,将发射源当做原点,对敌人和激光塔极角排序. 由于敌人纵坐标均为正,而其它点均为负,因此每两个角度差在 \(\pi\) 以内的激光塔内部的敌人的个数之和就是该发射源对答案的贡献. 用前缀和以及 \(Two Pointers\) 可以在 \(O(N)\) 的时间内统计一个发射源的贡献. 时间复杂度 \(O(N2LogN)\). 代码 #include <iostream> #include <cstdio&…
「JSOI2016」灯塔 传送门 我们先只计算照亮左边的灯塔的最低高度,计算右边的类同,然后只要取 \(\max\) 就好了. 那么稍微整理一下式子:\(p_i \ge h_j - h_i + \sqrt{i - j}\) 我们发现可以对 \(j\) 数论分块,然后每次查询块内最大的 \(h_j\) 即可. 区间最大值用 \(\text{ST}\) 表维护. 复杂度就是 \(O(n \log n + n\sqrt{n})\) #include <cstdio> #define rg regis…
好久没写数据结构了 来补一发 果然写的时候思路极其混乱.... 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_…
题目链接: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…