关闭
当前搜索:

[agc014c]Closed Rooms

题目大意一个网格图,从一个起点出发。 有些格子上锁。 每一轮你都可以不断往一个已解锁的四相邻格子走,最多走k次,走完后你可以选择至多k个未解锁的格子,将它们解锁。 求最少多少轮,你能走到一个边界格子。做法发现走的次数和可以解锁的次数相等。 因此第一轮走完,以后都不会撞锁。 bfs求出第一轮能走到的格子,然后计算到边界最小轮数。#include #include<algori...
阅读(100) 评论(0)

[arc080f]Prime Flip

题目大意有无穷个硬币,初始有n个正面向上,其余均正面向下。 你每次可以选择一个奇质数p,并将连续p个硬币都翻转。 问最小操作次数使得所有硬币均正面向下。做法不妨考虑差分。差分后1的数量一定为偶数。 然后一次操作[l,r]会翻转两端l-1与r。 现在问题变成两两配对使得操作次数尽量少。 有三种情况: 1、|i-j|是奇质数,那么1步即可。 2、|i-j|是偶数,那么2步即可。(2可以5-...
阅读(169) 评论(0)

[arc080e]Young Maids

题目大意一个长度为偶数的排列p,每次取出相邻两个数并从p中删除,然后将这两个数按顺序加入q的开头(q初始为空)。 问能得到最小字典序的q。做法在堆中保存若干个区间(l,r),以及从中选出最小的和l奇偶性相同的位置u,以及在这个位置之后最小的和r奇偶性相同的位置v。记作(l,r,u,v)。 然后我们每次从堆中取出a[u]最小的(l,r,u,v),并将u、v加至开头,然后把区间分裂成(l,u-1)(...
阅读(241) 评论(0)

[agc006d]Median Pyramid Hard

前言一道见过的题。题目大意一个长度为奇数的排列,令b[i]=median(a[i],a[i+1],a[i+2])。 median表示中位数。 不断执行上述变化序列最终变成1个数,它是什么?做法二分后变成01序列,考虑最终什么时候会是0。 我们发现相邻两个是同一个数字,这两列都是柱子,即从下到上都一样。 case 1:正中间是0柱子。 case 2:两边最近的柱子都是0柱子。 case 3...
阅读(109) 评论(0)

[agc005e]Sugigma: The Showdown

前言要知道怎么判-1,接下来就好办许多了。题目大意一个有红边和蓝边的图,只保留红边或蓝边都是一颗树。 现在A和B初始都在一个点上,轮流进行,A先操作。 A每次可以不动或沿着相邻的红边走到另一节点。 B类似,但只能走蓝边。 A和B相遇游戏结束。 A要最大化游戏时间,B要最小化游戏时间,若A永远不会被B抓到输出-1。做法当A到达一条红树上的边(x,y)的端点时(这条边满足x和y在蓝树的距离大于...
阅读(243) 评论(0)

[agc004f]Namori

前言这题好牛逼啊。题目大意给你一颗全白的树或环套树。 你每次可以选择一条连接两个同色点的边,将两个端点反色。 问变成全黑的最小步数,要求判断无解。树的做法树是一个二分图,看起来很棒的样子。 我们不妨设深度为奇数(根的深度为1)的点是一个空位,而深度为偶数的点有一个硬币。 我们发现,一次操作相当于将一个硬币移到相邻的空位。 最终要求原本是空位的点都被硬币填满。 那么只有硬币数等于空位数才有...
阅读(159) 评论(0)

[agc004d]Teleporter

前言贪心题,我一开始想错了,最终算法其实很简单。题目大意n个点形成环套树,改变最少数量的点的出边,使得任意点出发走k步能走到1。 初始满足任意点能走到1。做法显然1一定要自环。 然后可以贪心了,自下往上做,满k要断出边。 详见代码。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using nam...
阅读(115) 评论(0)

[agc003d]Anticube

前言简单贪心,最难的部分居然是分解质因数。题目大意从一个10^10的数列里选出最多的数,使两两乘积不为立方数。做法把每个数最简表示,即每个质因数的指数都模3。 还要求出这个最简数的补数,也就是满足最简的与其乘积为立方数的数。 对于数列中一个数集团和它的补数集团,贪心的选择较大的那个。 如果一个数和其补数相等,则只能选1个。 重点是求最简数以及补数。 枚举1010310^{\frac{10}...
阅读(147) 评论(0)

[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,...
阅读(128) 评论(0)

[agc009d]Uninity

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

[agc009b]Tournament

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

[agc010e]Rearranging

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

[agc010c]Cleaning

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

[agc019f]Yes or No

前言一道数形结合的题目。 发现本质则十分简单(考虑分数相加则麻烦无比)。题意n+m个询问,有n个询问的答案是Yes,其余m个是No。 你依次回答这些询问,每个询问给出Yes或No,给出后告诉你答对了没有。 求最优策略下你期望答对的询问个数。解法不妨令n>=m。 最优策略,选择剩余多的,一样多乱猜一个。 然后画一条y=x的直线。 你假设从一个(i,i)走到(0,0)中途不到对角线。 那么...
阅读(142) 评论(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。 然...
阅读(243) 评论(0)
70条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:324660次
    • 积分:11599
    • 等级:
    • 排名:第1515名
    • 原创:814篇
    • 转载:4篇
    • 译文:0篇
    • 评论:201条
    最新评论
    文章分类