题解atcoder agc 004

题解 CF486D Valid Sets

题目链接 相当牛逼。 这种找数量的题型,确定树形 \(dp\) 没跑了。 首先思考常规树形 \(dp\),不难想到设 \(f_{u,a,b}\) 表示以 \(u\) 为根节点的子树内(包括点 \(u\)),最大值是 \(a\),最小值是 \(b\) 的连通子图数量,转移很容易,但是这样时间空间复杂度 ......
题解 Valid 486D Sets 486

原创题题解

实时更新。 众所周知的,原创题就是即原神又创人的题。 当然有的题不会放,等考了在放。 波特 问题描述 流水线上有 \(n\) 个波特,每个波特有一个工作效能 \(a_i\) 。对于每一个波特,当它遇到一个工件时,它会对其进行加工,耗费 \(1\) 个单位时间,然后把它传递给它前面中工作效能最大的波特 ......
题解

NOI2021 庆典题解

又是一道锻炼代码能力的题目。 首先遇到这种求经过多少个节点的题可以先缩点,然后我们考虑那个特殊限制怎么用。 如果对于两个强联通分量 \(x\) 能到 \(z\),\(y\) 能到 \(z\),则 \(x,y\) 之间一定有一个限制,假设这个限制是 \(x\) 能到 \(y\),那么我们可以只记录 \ ......
题解 庆典 2021 NOI

[AGC003D] Anticube题解

首先对每个数分解只因数,然后把只因数的指数对3取模,把 \(s\) 划分成多个等价类。对于每一个等价类,有唯一对应的另一个等价类不能同时选,取最多的即可。 分解只因数用 polard's rho 算法,时间复杂度 \(O(nw^{0.25})\) code: #include<bits/stdc++ ......
题解 Anticube 003D AGC 003

[AGC002D] Stamp Rally 题解

整体二分板题 首先瑞平翻译。 考虑整体二分,用分治函数 solve(l,r,L,R) 解决答案在 \([L,R]\) 之间的边。每次我们加入所有 \([1,MID]\) 之间的边,查询这时的询问是否满足要求,进行整体二分即可。 由于多次加入边比较麻烦,我们用可撤销并查集维护。 时间复杂度 \(O(n ......
题解 Stamp Rally 002D AGC

[AGC001E] BBQ Hard 题解

一道十分有趣的题。 一眼推式子,发现自己不会。 看了题解,发现是有趣思维题。但是由于我的朋友学习了有趣的思维题做法,因此我决定学习更有趣的生成函数做法!!! 考虑把原式拆开, \[\frac{1}{2}\times \left( \sum_{i=1}^{n}\sum_{j=1}^{n} \binom ......
题解 001E Hard AGC 001

[AGC001D] Arrays and Palindrome 题解

非常有意思的思维题。 首先我先瑞平一下翻译,我根本没看懂,还是去看英文题面看懂的。 首先可以发现整个字符串被拆成了若干个奇回文串与偶回文串。现考虑如何判是否合法。可以发现一个回文串就是要求部分位置匹配。我们对这些匹配的位置建边,如果得到的图是联通的,那么就只能填入 \(1\) 种字符,否则就可以填入 ......
题解 Palindrome Arrays 001D AGC

P5934 [清华集训2012]最小生成树 题解

考虑 kruskal 算法的过程。 先将边按边权排序,考虑当加入 \((u,v)\) 时只有 \((u,v)\) 不联通才可能使得其出现在最小生成树中,所以对于所有的边权小于 \(L\) 的边,我们希望去除尽可能少的边使得 \((u,v)\) 不联通。这显然是一个网络流模型。对于每一条边 \((x, ......
题解 P5934 5934 2012

#9134. 翻转硬币 题解

首先考虑一些简单的情况,比如 \(m=1\)。 容易发现操作 1 和操作 2 的顺序不会影响结果,于是可以钦定所有操作 1 在操作 2 之前。并且可以发现,进行完所有 1 后 2 的次数即为 \((\text{连续段个数}-1)\)。 然后考虑将 \(m>1\) 的情况。显然最后序列上每 \(m\) ......
题解 硬币 9134

【AGC】云托管状态一直是“上线中”的问题

​【关键字】 AGC、云托管、网址域名 【问题描述】 有开发者反馈开通了云托管服务,然后进行了相关域名设定,等待激活,无法活动,状态一直是‘上线中’。 ​​ ​ 开通托管已经一天了一直卡着,状态一直是“上线中”。并且表示,域名是有备案的。 ​​ 【解决方案】 一、一般情况下,后台正在处理30分钟即可 ......
状态 问题 AGC

[CF1098E] Fedya the Potter 题解

[CF1098E] Fedya the Potter 题解 前言 一道类欧好题。 题解 这道题让求 \(c\) 数组的中位数,那么有一个比较套路的方法就是二分答案 \(mid\) 然后计算 \(b\) 数组中区间和小于 \(mid\) 的区间个数进行 \(check\)。但是 \(b\) 数组总共有 ......
题解 Potter 1098E Fedya 1098

CF882E1+CF1882E2 Two Permutations 题解-构造题

CF882E1+CF1882E2 Two Permutations 题解-构造题 哇,人类智慧,太智慧了。。。 此题作为20231010联考的 T3。 感觉赛时根本没有去往这方面想。 CF1882E1 CF1882E2 E1 是简单版,就是没有要求操作数最小化。 E1-Easy Version 方法 ......
题解 Permutations CF 1882 882

[ABC245G] Foreign Friends 题解

[ABC245G] Foreign Friends 题解 想法 考虑所有颜色相同的弱化版。 这种情况下,只需要把所有特殊点都推入队列之后跑多源 Dijkstra 即可。 思路 正解与上述做法大致相同。 如果有颜色限制,那么可以考虑这个神仙思路: 把所有特殊点的颜色用二进制表示,对于每一位,这一位是 ......
题解 Foreign Friends 245G ABC

[USACO17JAN] Promotion Counting P 题解

[USACO17JAN] Promotion Counting P 题解 前言 好久没写题解了,今天趁我心情好赶紧水一篇。 思路 首先拿到这题,关键词检索:子树,比 \(p_i\) 大的,树状数组!现在考虑如何去掉其他子树的贡献……emm,我直接在算贡献的时候去掉其他子树的贡献不就好了! 当然,暴力 ......
题解 Promotion Counting USACO JAN

[USACO08FEB]meteor Shower S题解(bfs)

题目描述 贝茜听说一场特别的流星雨即将到来:这些流星会撞向地球,并摧毁它们所撞击的任何东西。她为自己的安全感到焦虑,发誓要找到一个安全的地方(一个永远不会被流星摧毁的地方)。 如果将牧场放入一个直角坐标系中,贝茜现在的位置是原点,并且,贝茜不能踏上一块被流星砸过的土地。 根据预报,一共有 \(M\) ......
题解 Shower meteor USACO FEB

P1457 [USACO2.1] 城堡 The Castle 题解

分析 感觉没有蓝题难度 一道 bfs 题目,相较于大部分 bfs 题,它较为复杂,但分析一下还是很好水过的。 建立墙时,可以用三维数组,\(wall_{~i, ~j, ~pos}\) 表示 第 \(i\) 行第 \(j\) 列 \(pos\) 方向有墙。 观察发现,\(8 = 2^3,4 = 2^2 ......
题解 城堡 Castle USACO2 P1457

Shuffle 题解

Shuffle 题目大意 给定一个长度为 \(n\) 的 01 序列 \(a\),你可以进行至多一次以下操作: 选定 \(a\) 的一个连续段,满足连续段内恰好有 \(k\) 个 \(1\),将该连续段任意排列。 问能产生多少种不同的 01 序列。 思路分析 (这题 \(n\) 完全可以开到 \(1 ......
题解 Shuffle

【多校联考NOIP#2】比赛复盘 && 题解

A. 黑白染色 这类题没有做过,第一次做,很有新意。 染色的时候,如果一个点的出边中有2个同色点,那么就有一条路中有三个同色点,是不合法的。 不妨先把所有点染成一个颜色,然后再选点染成另一个颜色。 使用一个队列,先把所有的点入队。 每次取出队头 \(u\) ,如果发现他不合法: 1.自己颜色取反 2 ......
题解 amp NOIP

【题解 P3586】 LOG

[POI2015] LOG 题目描述 维护一个长度为 \(n\) 的序列,一开始都是 \(0\),支持以下两种操作: U k a 将序列中第 \(k\) 个数修改为 \(a\)。 Z c s 在这个序列上,每次选出 \(c\) 个正数,并将它们都减去 \(1\),询问能否进行 \(s\) 次操作。 ......
题解 P3586 3586 LOG

题解 AcWing 359.创世纪

题目描述 给你一个 \(n\) 个点 \(n\) 条边的有向图,若选了当前节点,那么当前节点的儿子节点至少有一个不能选。求最多能选多少个点。 具体思路 显然是一棵基环树,因此考虑基环树 dp。 我们先不管环的条件,先考虑朴素的树形 dp。 设 \(f_{x,0}\) 表示 \(x\) 节点不选,最多 ......
题解 创世纪 AcWing 359

【NewStarCTF 2023】题解week1

easy_RE 先exeinfo 没有壳,直接上ida 看到有关键信息,但没有显示完,按f5反编译一下 拼接一下输入,注意字符串的部分字母由近似数字代替,提交 KE 运行一下,看到是KE,想着可能是壳的意思?exeinfo看一下 upx壳,尝试upx脱壳 呃呃 权限好像不对 尝试了一下用管理员权限打 ......
题解 NewStarCTF week1 2023 week

Atcoder Grand Contest 016 E - Poor Turkeys

先思考这样一个问题:对于一只火鸡 \(i\),我们应该如何判断它最后是否能活下来。如果我们正着判断,我们其实并没有足够的证据表明每一次操作我们应该保留哪只火鸡,也就没法判断最终的答案。但是如果我们倒着考虑,我们发现,如果最后一次操作的两个火鸡都不是 \(i\),那么这次操作选啥对答案没有影响,而如果 ......
Atcoder Contest Turkeys Grand Poor

题解 DIFERENC - DIFERENCIJA

题目描述 给出一个长度为 \(n\) 的序列 \(a_i\),求出下列式子的值: \[\sum_{i=1}^n \sum_{j=i}^n (\max \limits_{i \le k \le j} a_k-\min \limits_{i \le k \le j}a_k) \]即定义一个子序列的权值为 ......
题解 DIFERENCIJA DIFERENC

题解: CF768D Jon and Orbs

题解: CF768D Jon and Orbs 一句话体面:有k种不同的物品,每天等概率任取一种(不一定是新的种类)。q组询问,每组给出一个p,问取完这k件物品的概率不小于\(\frac{p}{2000}\)的最小天数 不用说,肯定是概率DP了 1.定义 :\(f_{i,j}\) 表示前\(i\)天 ......
题解 768D Orbs 768 Jon

CF1842G Tenzing and Random Operations 题解

题意 给定一个长度为 \(n\) 的正整数序列 \(a\),对该序列进行 \(m\) 次操作,定义每次操作如下: 从 \(\left[1, n\right]\) 中等概率选取一个 \(i\),对于 \(j \in \left[i, n\right]\),执行操作 \(a_j \leftarrow a ......
题解 Operations Tenzing Random 1842G

p4801题解

解题思路: 确实是一道很好的贪心,但由于加上了水这个影响因素,使题目复杂度上升了不少。(考虑的东西多了嘛) 输个入。 对饼干温度无脑排序。 求最小值。 求最大值(用双指针做,后面会讲)。 解题过程: 先输入(这个步骤就不用我讲了) int a[1000005]; long long n,ws; lo ......
题解 p4801 4801

[AGC013D] Piling Up 题解

Piling Up 一个很好的思路就是设 \(f[i][j]\) 表示当前进行了 \(i\) 步,并且盒子中剩下了 \(j\) 个白球的方案数,然后直接 DP 即可。 但是这样是有问题的,它没有考虑到重复计算的问题。 我们不妨令 \(+\) 符号表示取出黑球,\(-\)符号表示取出白球。 则一种方式 ......
题解 Piling 013D AGC 013

CF906C Party 题解

Party DP 是门艺术。 \(n\leq 22\) 一眼状压。但是怎么状压就比较困难,因为同一个 \(f[x]\) 可以代表成千上万种含义。 这里我们采用,设 \(f[x]\) 表示当 \(x\) 集合中所有的点都处于同一个团内的最小代价。 则我们有 \(f[x \operatorname{or ......
题解 Party 906C 906 CF

CF1423N BubbleSquare Tokens 题解

BubbleSquare Tokens 神仙构造题。 首先,我们令所有点初始都没有放币,所有边上都放了一个币。则此时每个点的权值即为它的度数。 然后,我们考虑从小到大计算每个点的权值。对于每个点 \(i\),我们枚举它所有相邻且编号比它小的点,假如该点上没有币,就把币从连接两点的边上移到另一端的点上 ......
题解 BubbleSquare Tokens 1423N 1423

CF888F Connecting Vertices 题解

Connecting Vertices 这个奇怪的限制(两条边不能有交点)让我们想到什么? 对于任何一种方案,不存在 \(x_0<x_1<y_0<y_1\),其中连边 \((x_0,y_0),(x_1,y_1)\)。 也就是说,对于任何一段区间 \([i,j]\),如果里面所有点全都连通: 要么 \ ......
题解 Connecting Vertices 888F 888