首页 > TAG信息列表 > AHOI2018

洛谷 P4426 - [HNOI/AHOI2018]毒瘤(虚树+dp)

题面传送门 神仙虚树题。 首先考虑最 trival 的情况:\(m=n-1\),也就是一棵树的情况。这个我相信刚学树形 \(dp\) 的都能够秒掉罢(确信)。直接设 \(dp_{i,0/1}\) 在表示 \(i\) 的子树内选择,\(i\) 选/不选的方案数。转移就 \(dp_{u,0}=\prod\limits_{v\in son_u}(dp_{v,0}+dp_{v,1}),dp_

[AHOI2018初中组]球球的排列

IX.[AHOI2018初中组]球球的排列 论DP的百种用法之一 因为DP必须有一种全面的状态,但是这道题……似乎排列等等问题都不是DP擅长处理的地方。 首先分析性质。我们发现,这种不能放在一起的关系具有传递性。因为如果\(xy=a^2,xz=b^2\),那么\(yz=\dfrac{(xy)(yz)}{x^2}=\dfrac{a^2b^2}{x^

洛谷 P4437 [HNOI/AHOI2018]排列(贪心+堆,思维题)

题面传送门 开始 WA ycx 的遗产(bushi 首先可以将题目转化为图论模型:\(\forall i\) 连边 \(a_i\to i\),然后求图的一个拓扑序 \(b_1,b_2,\dots b_n\) 使得 \(\sum\limits_{i=1}^niw_{b_i}\) 最小。显然如果原图出现环就 \(-1\) 了。否则原图一定是一棵森林。 然后我就在那儿想各种乱

【洛谷4425】[HNOI2018&AHOI2018] 转盘(线段树维护单调栈)

点此看题面 有\(n\)个物品摆成一个环,第\(i\)个物品会在第\(T_i\)个时刻出现。 初始你可以选中一个物品,每个时刻你可以继续选择当前物品,或是选择后一个物品。如果你当前选中的物品出现了,这个物品就会被标记。 问最少需要多久才能标记所有物品。 \(q\)次修改,每次单点修改\(T_i\),你

【洛谷4424】[HNOI_AHOI2018]寻宝游戏(我也不知道括号里该写啥)

题目 洛谷 4424 分析 感觉思路比较神仙。 对于按位与和按位或两种运算,显然每一位是独立的,可以分开考虑。 对于某一位,「与 \(0\)」会将这一位变成 \(0\),「或 \(1\)」会将这一位变成 \(1\) ,「与 \(1\)」和「或 \(0\)」不会改变这一位的值。前两种操作会改变这一位的值,而后两种不会。

【[HNOI/AHOI2018]毒瘤】

思路非常精妙的一道虚树题 简单题意:给一张图,求这张图上的独立集数量 对于一棵树的情况,可以设\(dp_{u,0/1}\)表示节点\(u\)选/不选的方案数 显然有: \[dp_{u,0}=\prod (dp_{v,1}+dp_{v,0})\] \[dp_{u,1}=\prod dp_{v,0}\] 接下来考虑非树边 正常\(dp\)的话那么转移应该是\(O(n)\)的

[HNOI/AHOI2018]转盘 题解

题目链接 题意: 给你一个\(n\)元环,你可以在0时刻从任意一个位置出发,每一秒可以选择往后或者留在原地 每个点有个参数\(T_i\),当你走到\(i\)的时间\(t>=T_i\)时你就可以把i标记 问你把整个环上的点都标记最小需要多长时间,带修改\(T_i\),强制在线 好难的题。 首先,有等待操作不太好弄。

[HNOI/AHOI2018]毒瘤

[Luogu4426] [LOJ2496] 题解 #include<cstdio> #include<cstring> #define debug(...) fprintf(stderr,__VA_ARGS__) #define Debug(x) cout<<#x<<"="<<x<<endl using namespace std; typedef long long LL; const int INF=1e9+7

[HNOI/AHOI2018]排列

[Luogu4437] 如果\(a[i]=j\)则序列\(p[]\)中\(j\)必须排在\(i\)前面,如果\(j\)不在范围内则不管,求一个式子\(\sum_{i=1}^n iw_{p[i]}\)的最大值 考虑建出一个图,连边\(k=a_j\to j\)方向表示顺序,这样\([1,n]\)每个点的入度都会是\(1\) 如果有环那么就无解,否则这个图就是一棵以\(0

【题解】Luogu P4436 [HNOI/AHOI2018]游戏

原题传送门 \(n^2\)过百万在HNOI/AHOI2018中真的成功了qwqwq 先将没门分格的地方连起来,枚举每一个块,看向左向右最多能走多远,最坏复杂度\(O(n^2)\),但出题人竟然没卡(建议JSOI的出题人好好学学) #include <bits/stdc++.h> #define N 1000005 #define getchar nc using namespace std; i