关闭

[agc008d]K-th K

前言简单构造,一开始看错题瞎写了一发。题目大意给了一个长度为n的序列x。 请构造一个长度为n*n的序列a,只包含1~n这n个元素,每个元素出现n次,且对于元素i,a的第xi个位置是元素i,且前xi个位置恰好有i个i。构造显然可以正反各贪心一遍,不懂就看程序,正确性显然。 瞎填以后还可以n^3验证。#include #include #define fo(i,...
阅读(39) 评论(0)

[agc009d]Uninity

前言我居然一开始觉得点分治最优秀。题目大意类似点分治过程,只不过分治中心任意选择。 求点分树最小深度。做法首先直接点分治深度不超过log,所以答案上界是log。 假设我们给每个点一个标号表示它在点分树的深度。 那么我们发现,对于两个标号同为k的点,它们的路径上一定存在一个点的标号大于k。 我们定义一个数k对于子树x是良好的,要满足x的标号为k或x子树中存在一点y标号为k且y到x路径上没有标号...
阅读(93) 评论(0)

[agc009b]Tournament

前言简单题。题目大意若干轮比赛,每个人在某一轮可以参赛,和另外一个人pk,输的人淘汰。 最后1是冠军,已知其余每个人输给了谁,请问最少设置多少轮比赛?做法你显然可以根据每个人输给了谁建一颗树,然后处理f[x]表示x淘汰所有输给他的人所需要的最小轮数。 转移很简单,根据儿子的f排序,然后详见代码(不会说)。#include #include #define f...
阅读(40) 评论(0)

[agc010e]Rearranging

前言想到了相对顺序和连图。 想到了多个合并。 似乎没想到按照大小连出拓扑图,导致不知道怎么样才是最小不可操作的。题目大意一个长度为n的序列。 先手可以任意打乱,然后后手可以执行若干次以下操作:交换两个相邻且互质的数。 先手希望字典序最小,后手希望字典序最大,最后序列会变成啥样?做法容易发现对于不互质的一对数,相对位置永远不变。 我们让不互质的数之间连一条边,这样形成了图。 我们不妨从小到...
阅读(52) 评论(0)

[agc010c]Cleaning

前言这是一个与经典性质有关的题。题意一颗点权的树。 每次操作你可以选择两个不同的叶子(度数为1的点),满足其间路径任意点点权不为0,然后把这些点点权-1。 是否能通过任意次操作使得所有点点权为0?做法首先判掉n=2那么一定可以找到度数>1的做根。 我们假如把操作这样描述: 一颗点权边权树,初始边权均为0。 每次操作选择两个不同的叶子,将路径上边边权+1。 最后对于每个叶子,其相连所有边边...
阅读(49) 评论(0)

[agc019f]Yes or No

前言一道数形结合的题目。 发现本质则十分简单(考虑分数相加则麻烦无比)。题意n+m个询问,有n个询问的答案是Yes,其余m个是No。 你依次回答这些询问,每个询问给出Yes或No,给出后告诉你答对了没有。 求最优策略下你期望答对的询问个数。解法不妨令n>=m。 最优策略,选择剩余多的,一样多乱猜一个。 然后画一条y=x的直线。 你假设从一个(i,i)走到(0,0)中途不到对角线。 那么...
阅读(62) 评论(0)

[agc019d]Shift and Flip

前言这是一个简单题但是我细节一开始没想清楚?题目大意两个01字符串a和b,你可以把a左旋、右旋。 还有一种翻转操作,如果bi=1那么你可以把ai取反。 问a变成b最少操作次数。做法先判断无解,当b中有1时一定有解,全0时如果a不是全0就会GG。 然后看看怎么算答案。 先对每个位置预处理至少左移/右移多少次才能让它对应一个b中有1的位置,分别记为L和R。 我们可以枚举最后的对应位置i。 然...
阅读(63) 评论(0)

[agc019c]Fountain Walk

前言这是一道比较简单的题。 但是我没想好答案增大的情况,所以我一开始觉得细节讨论有点麻烦。。题目大意不想说,看网站做法先通过一系列翻转交换等满足x1<=x2,y1<=y2。 我们注意经过温泉有减少答案(走1/4圆) 和增加答案(走1/2圆)两种。 我们不希望增加答案,希望尽量减少答案。 由于减少答案很少,矩形边长很大,因此我们不能为了走温泉绕弯路,只能向右向上走。 然后对这个矩形内的点按...
阅读(67) 评论(0)

[agc018d]Tree and Hamilton Path

前言做过类似的idea题。题目大意给你一棵树,然后你需要找到一个n的排列[,使得 ∑n−1i=1dis(pi,pi+1)\sum_{i=1}^{n-1}dis(p_i,p_{i+1}) 最大,输出答案即可。做法假设p1=s,pn=t。 我们提取重心作为根。 设sum为深度和。 答案为2∗sum−dep[s]−dep[t]−∑n−1i=1dep[lca(pi,pi+1)]2*sum-dep[...
阅读(76) 评论(0)

[agc016e]Poor Turkeys

前言感觉不是很难。 虽然一开始想着是废掉的缩点。 仔细想想又没有这样实现的道理。题意n个人。 有m个按时间的暗杀行动。 第i次请杀手杀ai和bi,如果都活着杀手按照心情杀一个,都死了就不杀,只活一个杀死活的那个。 问m次暗杀过后有多少对人可能都存活?题解考虑按时间倒着来。 如果你想要x存活,每当遇到与x有关的,又会出现新的应该存活的。 我们称为存活集合。 每次一个两端均不在存活集合的...
阅读(460) 评论(0)

[agc016c]+/- Rectangle

前言对着样例构造乱搞过了QAQ题意构造一个n*m的矩阵,每个元素在-1e9~1e9间,每一个大小为h*w的子矩阵和是负数,而整个矩阵的和是正数。构造如果n是h的倍数且m是w的倍数,那么整个矩阵恰好分成若干个h*w的子矩阵,既然每个都是负数,和怎么可能是正数? 然后我们可以设一个d(d是常数比4000小就行然后尽量大比如2000),对于一个(ih,jw),我们填上-(hw-1)d-1,其余位置填上d...
阅读(57) 评论(0)

[agc014d]Black and White Tree

前言看到这种题直觉是树的最大匹配,如果是比赛直接打毫无疑问。 然后证明了一下也不是很难的样子。 主要是见过类似套路吧。题意两个人轮流给树上节点染色。 先手涂白色,后手涂黑色。 如果最后树上存在一个白色点,与其相连的没有黑点,先手胜,否则后手胜。 请你判断先手必胜还是后手必胜。博弈我们先给出结论:后手要赢,这颗树要有完美匹配。 首先充分性显然,有完美匹配,先手涂什么成白色,你把匹配点涂黑,...
阅读(108) 评论(2)

[agc012e]Camel and Oases

前言很容易的就发现了只有log次跳跃。 然后状压DP。 似乎就是个简单题吧(怎么比12c还简单)题意一排点,两点间有距离。 初始你有一个行走值v,如果相邻两点距离不超过v你可以自由在这两点行走。 当v大于0时,你可以选择某一时刻突然飞到任意点,这样做后v会减半(下取整)。 问从每个位置初始出发能否到达所有位置。DP预处理left[i,j]表示在i行走值已经减半j次能往左走到哪,同理有rig...
阅读(73) 评论(0)

[agc012d]Colorful Balls

前言做这题时感觉肯定是有一堆球允许重排的,要求找到每种颜色这些球的个数,其余球大概都是固定的,应该不复杂。 大概思路也确实就是这样。不过需要仔细讨论。 有一个很重要的性质当然是a和b如果都能和c对换,a和b也是可以对换的。题意n个球,每个都有颜色和重量。 对于两个同颜色的球,如果重量和在x以内可以交换位置。 对于两个不同颜色的球,如果重量和在y以内可以交换位置。 问颜色序列的方案数。做法一...
阅读(59) 评论(0)

[LibreOJ β Round #4]子集

题目大意给你一个集合,请选出一个子集,使得两两元素的gcd或分别+1后的gcd至少一个不等于1,最大化子集的大小。最大团看起来是个最大团模型,裸上random_shuffle+greedy可过。#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace s...
阅读(94) 评论(0)
62条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:251932次
    • 积分:10104
    • 等级:
    • 排名:第1813名
    • 原创:743篇
    • 转载:4篇
    • 译文:0篇
    • 评论:189条
    最新评论
    文章分类