关闭
当前搜索:

[agc005d]~K Perm Counting

前言简单的容斥DP题。题目大意有多少排列对于每个位置i都满足|ai−i|!=k|a_i-i|!=k容斥当然是经典容斥问题了。 假如钦定某些位置不满足条件,其可以往前或后连。 发现只有模k相同的互相有影响。 不妨先做一个状压dp,f[i,j,s]表示有i个点,有j个点有出度(也就是j个不满足条件),其中i有没有入度,i+1有没有入度。 转移简单。 初始状态是f[1],注意第1个不能往前连。...
阅读(201) 评论(0)

[agc005c]Tree Restoring

前言简单题,数据范围可能是吓人的。题目大意给你每个点到最远点的距离,求是否存在这样的一颗树。简单一个性质是每个点的最远点一定是直径的端点。 然后我们找出直径长度,要求能构造出这条直径(每种距离都有2个点,当然直径中心只需要1个)。 然后其余点都可以直接接在直径上,因此到最远点的距离不能少于直径长度的一半。 满足就能构造。#include #include...
阅读(199) 评论(0)

[agc004f]Namori

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

[agc004e]Salvage Robots

前言本题的关键是想到让出口和矩形动,而不是机器人动,只要记录出口的位移矩形,便可以知道哪个区域的机器人已经飞出去了。题目大意一个网格图,有若干机器人,还有一个出口。 操作一系列指令让机器人上下左右,走出矩形就死,进入出口则得救。 最多救多少机器人?DP不妨认为矩形和出口会动。 我们设f[u,d,l,r]表示出口移动的上下左右,然后转移也很容易。 第一维可以省略,若如此做记得最后再执行往上的转...
阅读(228) 评论(0)

[agc004d]Teleporter

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

[agc004c]AND Grid

前言构造题,我又不是很会…… 太蠢了。题目大意给你一个网格图,有一些格子涂了紫色。 请你构造出两个网格图,其中一个都涂了红色,且四联通,另一个都涂了蓝色,且四联通。 要求紫色的位置必须红和蓝,其余都不能同时涂红和蓝。 保证边界没有紫色。做法不看边界奇数都涂红,偶数都涂蓝。 然后对于红图第一列涂红,蓝图最后一列涂蓝。 一定满足条件。#include #include<alg...
阅读(160) 评论(0)

[agc003f]Fraction of Fractal

做法注意到上下左右都联通答案是1,都不连通答案是黑格数的次幂。 判掉后发现只有一边联通很好做,矩阵乘法上就行了。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; typedef long long ll; const int mo=1000000007; cha...
阅读(172) 评论(0)

[agc003e]Sequential operations on Sequence

前言利用了经典性质的题。题目大意有一个数字串S,初始长度为n,是1 2 3 4 …… n。 有m次操作,每次操作给你一个正整数a[i],你先把S无穷重复,然后把前a[i]截取出来成为新的S。 求m次操作后,每个数字在S中出现的次数。做法考虑这样一个过程,solve(x,l)表示在第x次操作后的S的前l位,我们希望获取每个数在这里面的出现次数(这个函数返回一个数组)。 不妨设S[i]表示第i次操...
阅读(251) 评论(0)

[agc003d]Anticube

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

[agc002f]Leftmost Ball

前言小清新计数题。题意n种颜色每种颜色有k个球(这n种颜色不含白色),排成一行,把每种颜色第一个球涂成白色。 问颜色序列方案数。DP要求任意后缀0的个数不比颜色种类数多。 不妨设dp表示f[i,j]已经用了i种颜色,放了i-j个0。 每次可以在最前面放0。 也可以新加一种颜色,为了不计重最前面的要是这种新颜色。 最后还要乘上颜色的阶乘。#include #include<a...
阅读(177) 评论(0)

[agc002e]Candy Piles

前言这次我做博弈题开始根据特殊态猜测必胜态,失败了。 这个模型转换还是有点厉害的。题目大意很多堆石子,两人游戏。 每次可以取走数量最多的那堆石子的全部石子,或取走每堆各一个石子。模型转换我们把一堆石子想象成一个石子个数*1的矩形。 把矩形从高到低排列变成一个图形。 我们每次可以删除最低下一行或最左边一列。 假设有一个点初始在(1,1),它在(x,y)表示[1,x)的列被删了,[1,y)的行...
阅读(104) 评论(0)

Astar百度之星2017转圈记

DAY 0坐飞机+坐车真累。 欢迎晚宴非常尬。 百度事情非常多。 拍mv是不是凉了?DAY 1如何30min从起点到起点。 坐车dfs到目的地。 强行比预计晚2h开始了比赛。 题目是贪吃蛇大作战。 第一阶段我主要在搞懂给我发的那些示例代码。 枚举类型是啥,不会啊。 咋编译啊。 我vector是不是不会用了,咋CE啊。 测试赛第一轮交了示例代码,往右走撞墙。 然后一开始的策略很...
阅读(506) 评论(0)

[agc002d]Stamp Rally

前言简单套路题。题目大意一副连通图,每次询问从两个点x和y出发走出两条路径,希望至少经过一次的点数量等于z,经过的边最大编号最小是多少。简单题假如可以暴力,你可以按编号从小到大加入边,如果x和y不在一个联通块,能经过的点等于两个所在联通块大小的和,否则等于所在联通块大小,找到第一次大于等于z的位置。 不枚举也可以二分。 那不如整体二分吧,并查集采用按秩合并,好处是容易撤销。#include<cs...
阅读(166) 评论(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,...
阅读(152) 评论(0)

[agc009e]Eternal Average

前言需要发现性质的dp。 重点在于发现性质。题意请构造若干k叉树,使得每颗均有n+m个叶子,有n个叶子点权为0,m个叶子点权为1,对于非叶子点权为儿子点权的平均数。 问最多构造多少k叉树,使得任意两颗根节点点权不同?DP令n个叶子的深度为x1~xn,同理m个叶子的深度为y1~ym。 发现根节点的点权是∑mi=1k−yi\sum_{i=1}^mk^{-y_i}。 如果所有叶子点权都为1,那么根...
阅读(292) 评论(0)
819条 共55页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:358579次
    • 积分:11970
    • 等级:
    • 排名:第1490名
    • 原创:815篇
    • 转载:4篇
    • 译文:0篇
    • 评论:211条
    最新评论
    文章分类