首页 > TAG信息列表 > AHOI

[AHOI 2022] 排列

本题涉及了关于线性筛、质因数分解、置换、分析数据范围特性等多种技巧,是一道难得的好题,为出题人点赞! 题目链接:LOJ 、 luogu Hint 1 可以把每个 \(p_i\) 看成从 \(i\) 连向 \(p_i\) 的一条有向边,这样整个图会由若干个互不相交的简单环构成(所有点的入度出度均为 \(1\) )。 可以通过

「AHOI / HNOI2017」影魔

「AHOI / HNOI2017」影魔 cdq 分治写法。 首先利用单调栈求出 \(L_i,R_i\) 分别表示在 \(i\) 左边第一个 \(K\) 值大于 \(K_i\),右边第一个 \(K\) 值大于 \(K_i\) 的位置。 如 \(L_i\) 不存在设为 0,如 \(R_i\) 不存在设为 \(n+1\)。 然后我们考虑提供 \(p1\) 攻击力的情况: 容易发现

[ AHOI 2017 / HNOI 2017 ] 大佬

题目 Luogu LOJ Acwing 思路 代码 #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> using namespace std; const int N = 110, M = 10000010, mod = 3587201; int n, m, mc, f[N][N]; int a[N], w[N], c[N]; struct PI

[ AHOI 2017 / HNOI 2017 ] 队长快跑

题目 Luogu LOJ Acwing 思路 代码 #include <iostream> #include <algorithm> #include <cmath> using namespace std; const int N = 1e6 + 10; struct PDD { double x, y; } S, T; PDD operator-(PDD a, PDD b) { return (PDD){ a.x - b.x, a.y - b.y }; }

AHOI 2021 游记

Day -inf ~ Day -1 天天垫底,还发烧了,挂水挂到 Day -2 ,左手手背上三个针眼排成一排,手腕肿了一大块淤青…… Day 0 坐高铁去了,晚上发现今天是 2021 年第 99 天,就顺手拍了个照官宣了一波。 Day 1 还好,晚上还买了纪念品。 Day 2 考出来就哭了,难受死了。我妈接到我就把我塞到队长家车里

听课笔记 2021-3-4

「AHOI / HNOI2018」排列 「AHOI / HNOI2018」游戏 「HNOI2019」鱼 「HNOI2015」亚瑟王 第一个题是建图+打怪兽(经典合并式贪心) 第二个题是先找到什么时候左边不能走到右边的性质(估计可以尝试找规律找出来这个性质) 第三个题是奇怪的计算几何 第四个题是 先咕着

LOJ2494. 「AHOI / HNOI2018」寻宝游戏

给出\(n+1\)个长度为\(m\)的二进制数组成的序列(规定\(a_0=0\),其它读入),每个询问给出一个二进制数。你需要求出在这个序列中每个相邻位置之间添加符号\(\and\)或\(\or\)(规定运算从左往右进行),使得运算结果为询问的二进制数的方案数。 \(n,q\le 1000,m\le 5000\) 没有看到运算顺序所

#2018. 「AHOI / HNOI2017」单旋(平衡树模拟+set+线段树)

https://loj.ac/problem/2018 题解: 先考虑只有加点怎么做?设要加的点是第\(x\)大,\(x-1\)的右儿子和\(x+1\)的左儿子一定恰好有一个是空的,加到那里即可。 再模拟一下把最小值\(x\)给splay到根的过程,发现\(x\)到根的链几乎没有变,变得是:把\(x\)的右儿子接到\(x\)的父亲,把原来的根

LOJ #2021. 「AHOI / HNOI2017」大佬 BFS+Hash+动态规划

嘴巴上把这道题切了,但是写代码的时候好多细节都需要注意.   1. 大概可以猜到能表示出的数字比多,但是这一步要用 BFS+hash 才行,因为用 DP 求解的话会有好多无用状态.  2. 做动态规划的时候如果对与状态有限制条件的话比较好写的方法是由合法状态去转移下一步,而不是枚举当前状态

* ! AHOI/HNOI2018转盘

线段树维护单调栈 又是一道非常棒的思维题!!! SOL: 问题转化(倒着思考) t时刻在某点,每次可以向后走一步或留在原地,然后t减1 每个点在\(T_i\)消失,求最小的\(t\)使得所有点都可以在消失前被访问 于是惊奇地发现留在原地一定不优,会一直往前走 破环为链(2倍),对于\(i\in[n,2n)\)走到j的时间

* ! AHOI/HNOI2018寻宝游戏

x&0=0,x|1=1 我们把\(\&\to0,|\to1\),把操作用01串代替 于是转化为比大小的题目 桶排然后记录每个串的值方便求答案 时间复杂度\(O(nm)\) #include<bits/stdc++.h> using namespace std; inline int read(){ int x=0,f=1;char c=getchar(); while(!isdigit(c)){if(c=='-')f=-1

! AHOI/HNOI2018排列

第\(i\)个数要放在第\(a_i\)个数的后面 有环无解 原思路: 连边,拓扑排序,只是每次弹出时弹\(w_i\)最大的 但这是错误的贪心思路,因为可能较小的后面都是很大的数 SOL: 还是连边,发现形成了一棵以0为根的树 当前权值最小的点\(i\) 若无父亲\(a_i=0\),则直接选 若有父亲,一定是选了父亲

AHOI/HNOI2017大佬

SOL: 首先可以发现保证自己不死和怼大佬是可以分开的 一个\(n^2DP\)算出最多可以用来怼大佬的天数,问题就转化为用\(n\)天怼大佬是否成功 先求出所有可能的讽刺值及其天数,惊人发现竟存的下!看来要多尝试才好 这样攻击一次和零次的都可以轻易判断 攻击两次(讽刺值\(f1,f2\)天数\(d1,d

BZOJ.5288.[AHOI/HNOI2018]游戏(思路 拓扑)

BZOJ LOJ 洛谷 考虑如何预处理每个点能到的区间\([l,r]\)。 对于\(i,i+1\)的一扇门,如果钥匙在\(i\)的右边,连边\(i\to i+1\),表示从\(i\)出发到不了\(i+1\);否则连边\(i+1\to i\)。没有门的话就缩成一个点。 如果存在边\(i\to j\),那么\(j\)的区间包含\(i\),而\(i\)肯定不包含\(j\)。从

BZOJ.5290.[AHOI/HNOI2018]道路(树形DP)

BZOJ LOJ 洛谷 老年退役选手,都写不出普及提高DP= = 在儿子那统计贡献,不是在父亲那统计啊!!!(这样的话不写这个提高DP写记忆化都能过= =) 然后就令\(f[x][a][b]\)表示在\(x\)节点上面有\(a\)条不修的公路\(b\)条不修的铁路的最小花费,在叶节点处统计贡献,转移的时候枚举不修哪个即可。 对

BZOJ.5287.[AHOI HNOI2018]毒瘤(虚树 树形DP)

BZOJ LOJ 洛谷 设\(f[i][0/1]\)表示到第\(i\)个点,不选/选这个点的方案数。对于一棵树,有:\[f[x][0]=\prod_{v\in son[x]}(f[v][0]+f[v][1])\\f[x][1]=\prod_{v\in son[x]}f[v][0]\] 对于非树边的限制,可以再加一维非树边端点的状态(选没选),能得\(55\)分。 对于一条非树边\((u,v)\),要么

loj#2509. 「AHOI / HNOI2018」排列(思维题 set)

题意 题目链接 Sol 神仙题Orz 首先不难看出如果我们从\(a_i\)向\(i\)连一条边,我们会得到以\(0\)为根的树(因为每个点一定都有一个入度,出现环说明无解),同时在进行排列的时候需要保证父亲节点一定在孩子节点之前出现 接下来考虑直接贪心。对于某些权值很小的点,我们需要让其尽早出现,同

「BZOJ 1831」「AHOI 2008」逆序对「贪心」

题意 给定一个长度为\(n\),值域为\([1,k]\),某些位置不确定的数组,求最小的逆序对。\(n\leq 10^4, k \leq 100\) 题解 这题有人用前缀和优化\(dp\)过了,但是这里还是讲一种逐一填的做法 首先证明:填进去的数一定是单调不减的,换句话说不构成逆序对。证明很简单,因为假设两个填进去的数构成

BZOJ 3876 [AHOI/JSOI2014]支线剧情 (最小费用可行流)

题面:洛谷传送门 BZOJ传送门 题目大意:给你一张有向无环图,边有边权,让我们用任意条从1号点开始的路径覆盖这张图,需要保证覆盖完成后图内所有边都被覆盖至少一次,求覆盖路径总长度的最小值 最小费用可行流板子题..   有源汇最小费用可行流 给定一张有源汇网络流图,必须保证图中每条边的