首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
「NOI2014」购票
】的更多相关文章
「NOI2014」购票 解题报告
「NOI2014」购票 写完了后发现写的做法是假的...然后居然过了,然后就懒得管正解了. 发现需要维护凸包,动态加点,询问区间,强制在线 可以二进制分组搞,然后你发现在树上需要资瓷撤回,然后暴力撤回(雾 然后就被卡了 卡法,在\(2^k-1\)位置搞一朵菊花 先留坑,以后要是会了一些神奇的姿势就来搞 这题叉积会爆ll,坑 Code: #include <cstdio> #include <cctype> #include <vector> #include <a…
「NOI2014」购票
「NOI2014」购票 解题思路 先列出 \(dp\) 式子并稍微转化一下 \[ dp[u] =\min(dp[v]+(dis[u]-dis[v]) \times p[u] + q[u])) \ \ \ \ (dis[v]-lim[u] \leq dis[u]) \\ dp[u]=\min(dp[v]+dis[v]\times p[u]) + p[u]\times dis[u]+q[u] \\ \] 假设有 \(dis(v2)< dis(v1)\) 且 \(p(u)\) 在 \(v2\) 的取值…
LOJ#2249 Luogu P2305「NOI2014」购票
几乎肝了半个下午和整个晚上 斜率优化的模型好多啊... 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 2249: 洛谷 P2305: 「NOI2014」购票
题目传送门:LOJ #2249. 题意简述: 有一棵以 \(1\) 号节点为根节点的带边权的树. 除了 \(1\) 号节点的所有节点上都有人需要坐车到达 \(1\) 号节点. 除了 \(1\) 号节点,每个节点都有 \(5\) 个参数 \(f_u,s_u,p_u,q_u,l_u\). \(f_u\) 表示 \(u\) 号点的父亲,\(s_u\) 表示 \(u\) 号点与父亲之间的边的权值,\(p,q,l\) 为车票参数. 定义两个节点 \(u\) 和 \(v\) 之间的距离 \(dis_{u,v…
LOJ 2249: 洛谷 P2305: bzoj 3672: 「NOI2014」购票
题目传送门:LOJ #2249. 题意简述: 有一棵以 \(1\) 号节点为根节点的带边权的树. 除了 \(1\) 号节点的所有节点上都有人需要坐车到达 \(1\) 号节点. 除了 \(1\) 号节点,每个节点都有 \(5\) 个参数 \(f_u,s_u,p_u,q_u,l_u\). \(f_u\) 表示 \(u\) 号点的父亲,\(s_u\) 表示 \(u\) 号点与父亲之间的边的权值,\(p,q,l\) 为车票参数. 定义两个节点 \(u\) 和 \(v\) 之间的距离 \(dis_{u,v…
【LOJ】#2244. 「NOI2014」起床困难综合症
题解 写水题放松一下心情 二进制有个很好的性质是每一位是独立的,我们按位贪心,先看这一位能不能填1,然后看看如果这一位填0那么运算后最后这一位是不是1,是的话就退出,然后看看这一位如果填1最后是1这一位就填1,否则就退出 一次性把所有位填0,所有位填1,然后算两遍,复杂度\(O(n + \log m)\) 代码 #include <bits/stdc++.h> //#define ivorysi #define enter putchar('\n') #define space putchar…
「NOI2014」魔法森林
题目链接 戳我 \(Solution\) 两个变量,emm...不好搞啊. 于是我们可以按照\(A\)排序.然后动态加边,因为\(A\)是越来越大,所以不需要管他,只要使得\(1\)~\(n\)的路径中\(B\)最大值最小.这用LCT维护生成树就好了,模板题.每次加边后满足\(1\)~\(n\)有路径的时候将 此时最大的\(B\)+当前\(A\),去\(min\),最后输出即可 \(Code\) #include<bits/stdc++.h> #define rg register #defi…
LOJ#2244. 「NOI2014」起床困难综合症
$n \leq 1e5$个位运算操作,$m \le 2^{30}$,问$0-m$中谁进行完所有操作值最大,输出这个最大值. cfA题难度?当送分题就不管了 and相当于几个位取0,or相当于几个位取1,有几个位是可以确定的:xor相当于翻转,确定的0变1,确定的1变0,不确定的就记一下哪几位被xor了.最后从高到低按位决定这一位要不要填1,如果这一位没确定并且没被异或或者被异或了偶数次就填个1下去,否则不填. //#include<iostream> #include<cstring&g…
「NOI2014」动物园
link : https://loj.ac/problem/2246 水水KMP #include<bits/stdc++.h> #define ll long long #define maxn 1000005 using namespace std; const int ha=1000000007; char s[maxn]; int f[maxn],g[maxn]; int n,T; int main(){ scanf("%d",&T); while(T--)…
LG2375/LOJ2246 「NOI2014」动物园 KMP改造
问题描述 LG2375 LOJ2246 题解 看了题解,需要回看,需要继续通过本题深入理解KMP. 为了将 \(\mathrm{KMP}\) 和只插入了一个模式串的\(\mathrm{AC}\)自动机有机统一,称通常意义下的 \(\mathrm{KMP}\) 的 \(\mathrm{next}\) 数组为 \(\mathrm{fail}\) . 通过对 \(\mathrm{num}\) 数组的观察,发现, \(\mathrm{num}\) 数组就是对于每一个前缀,求其公共不重叠前后缀的个数. 由…