关闭

NOI2017搞基记

一篇很长的流水账,写的长也就是因为考得好吧,去年写NOI游记的时候,就想着快点写完就好了-_-。以后大概会再写一篇比较矫情的回顾一下竞赛的历程的吧,虽然我这种狗逼划水语文课代表的水平,大概激励人心的效果肯定赶不上hzwer的吧...
阅读(434) 评论(3)

BZOJ4922 Karp-de-Chant Number

这题真是tmd……让我想起了做bohater时候的绝望 还好最后A了 注意到每个括号序列相当于必须在当前前缀和>=x的情况下才能选,选完之后前缀和会+y 那么就是bohater原题了,按那道题的顺序排序一下,然后DP即可,f[i][j]表示只用前i个串前缀和为0的最长长度 答案为f[n][0] #include #include #include #include #include #i...
阅读(186) 评论(0)

BZOJ4917 Hash Killer IV

好久没更博了,最近没怎么刷BZ,去育才前后做的题也都没补 这题的话,注意到每个操作都是可逆的 比如t=t+(t 而t=t^(t>>11)的话,t的最高的11位不会变,更低的位每个异或上高11位的数即可 #include #include #include #include #include #include #include #include #include #include #incl...
阅读(135) 评论(0)

BZOJ3864 Hero meet devil

上午考试的时候AK了,看代码还挺短的,于是学习了一下DP套DP,感觉挺傻逼的 考虑求LCS那个DP,我们发现对于固定的i和任意的j,f[i][j]最多只能和f[i-1][j]有关,不可能和f[i-2][j]或者更往前的DP值有关 并且f[i][j]要么和f[i][j-1]相等,要么等于f[i][j-1]+1 那么我们可以状压这个是否比前一个大1,然后g[i][j]表示长度为i,跑LCS的DP...
阅读(234) 评论(0)

BZOJ4903 [Ctsc2017]吉夫特

我为什么这么傻逼? 推一推组合数模2的性质就知道是后面的数二进制表示必须是前面的数的自己 直接枚举子集即可 复杂的3^(log n) 考场上我竟然认为这个复杂度是3^n的 傻逼啊傻逼 操了-_- #include #include #include #include #include #include #include #include #include #include #in...
阅读(191) 评论(1)

BZOJ4900 [CTSC2017]密钥

正式考试傻逼题做不上系列…… 把整个串复制一遍贴后边,求前缀和,然后枚举起始点 只要维护现在前缀和大于0的点有多少个即可 拿个数组就能维护了 我是傻逼啊傻几把比 #include #include #include #include #include #include #include #include #include #include #include #include #inclu...
阅读(168) 评论(0)

BZOJ4897 [Thu Summer Camp2016]成绩单

挺厉害的题 考虑区间DP,f[i][j]表示把[i,j]都拿光的最小代价 f[i][j]怎么算呢?我们考虑最后一次发成绩单 最后一次发成绩单发的一定是原序列的一个子序列,那么我们用g[i][j][k][l]表示以一个起始点>=i,最后一个元素是j,最小值为k,最大值为l的子序列为最后一次操作的代价 那么g[i][j][k][l]+f[j+1][u-1]就可以转移到g[i][u][min(k...
阅读(159) 评论(0)

BZOJ1344 [Baltic2007]Connected Points连点

一眼矩乘DP 我们发现最后一列一定有两个点可以向后伸展,剩下那个点要么已经被占用了要么还没被占用,也就是说一共有六种状态,瞎jb矩乘一下即可 #include #include #include #include #include #include #include #include #include #include #include #include #include #include u...
阅读(90) 评论(0)

BZOJ1334 [Baltic2008]Elect

傻逼题,按大小排序,然后直接背包即可,转移的时候保证不从>s/2的地方转移就行 #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MAXN...
阅读(103) 评论(0)

BZOJ4896 [Thu Summer Camp2016]补退选

傻逼题啊…居然没想出来 因为是个字典树所以sigma 字符串长度是有限制的,也就是说sigma 每次修改之后受到影响的点的个数也是有限制的,那就暴力搞就行了 具体来讲,每个点开个vector,直接维护子树里黑点个数第一次边得大于i的时间即可 PoPoQQQ大爷告诉我们,数据范围就是狗屁 #include #include #include #include #include #includ...
阅读(155) 评论(0)

BZOJ4899 记忆的轮廓

我们知道只要误入歧途你就再也不能回到正轨了,只能走到错误叶子然后读档 那么我们先求出g[i]代表在i误入歧途之后期望要走多远才会读档 然后求出dis[i][j]代表在i存档之后从i走到j中间不存档期望要走多少步 这个n^2随便求 那么我们可以DP,f[i][j]表示从起点走到i,并在i存档,当前一共已经存档j次的最优期望步数 直接转移显然是n^2p的 我们发现题目限制了每个点的度数>=...
阅读(193) 评论(0)

BZOJ4886 [Lydsy2017年5月月赛]叠塔游戏

可以发现我们不用管什么权值递增,只要保证横着放的长度互不相同就可以 把权值看成点,一个矩形就是在长和宽之间连一条边 那么我们就要给每条边定一个向,保证每个点出度最多为1,一条有向边的权值就等于其指向的点的权值,最大化边权和 因为题目保证了有解,所以每个连通块要么是树,要么是环套树 因为如果一个连通块里有两个环的话那么至少有一个点出度为二 证明就是如果所有点出度都 我们把边对答案的贡献转...
阅读(227) 评论(0)

BZOJ4843 [Neerc2016]Expect to Wait

答案等于sigma 每个时间在等待的人数 那么我们现在认为等待的人数可以是负数,为负就代表剩了这么多书 那么答案就是sigma 每个在等待的人数是正数的时间的等待人数 假设初始书量为0,我们计算每个时刻的等待人数 增加初始书量就相当于给每个时刻等待人数都减少一个值 求前缀和一类的东西之后把所有询问排序扫一遍即可 #include #include #include #include #...
阅读(181) 评论(0)

BZOJ4849 [Neerc2016]Mole Tunnels

考虑如果给定一个K算答案怎么算,我们可以费用流,每个树边建流量INF费用1,每个点向T连流量c[x]费用0,对于前k个鼹鼠,S向每个鼹鼠出现的位置连一个流量1费用0的边,然后跑最小费用最大流即可求出最小代价 那么如果是对于每个K都要求的话,我们可以考虑令S连向第i个鼹鼠出现位置的边费用为(m-i+1)*INF,这样的话第i次曾广一定会走第i个鼹鼠出现的位置,那么増广i次之后得到的就是前i个鼹鼠的...
阅读(137) 评论(0)

BZOJ4883 [Lydsy2017年5月月赛]棋盘上的守卫

把行和列看成点,那么(x,y)这个各种就代表在第x行和第j列之间连一条权值为w(x,y)的边 每一行和每一列都要被一个守卫覆盖,那么就相当于对于每个点(每一行和每一列),我们要在他所相连的边中选择一条没有被选择过的边,并把这条边变成有向边,从自己出发,指向另一端。比如是从第x行指向第y列,那么就意味着在(x,y)防止一个行守卫,反之亦然 那么我们发现所有我们选出来的边一定组成一个环套树森林 ...
阅读(93) 评论(0)
401条 共27页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:161317次
    • 积分:5580
    • 等级:
    • 排名:第4716名
    • 原创:400篇
    • 转载:0篇
    • 译文:1篇
    • 评论:82条
    最新评论