题目 描述 题目大意 有一个010101序列,可以改变状态,每个状态改变都有固定的代价. 接下来有些人想要将一些位置改成特定的状态,如果按照他们要求做了就可以得到一些钱, 否则得不到,有时还要陪钱. 问最后的钱最多是多少. 思考历程 看到这题的第一眼就觉得是一道神题. 只能想到最恐怖的暴力算法-- 这题肯定不可以DP,那么就想想贪心和网络流. 觉得这题做法一定是贪心,因为有10410^4104这么大,肯定不是网络流啊! 到最后还是没有想出来. 正解 正解早就被我否定了!(真香) 这题的正解就是网…
题目 描述 题目大意 有111到2n2n2n牌,一开始分别给两个人,每人nnn张. 轮流出牌,给出对手出牌的顺序,若自己的牌更大,就记一分. 在中间的某个时刻可以改变游戏规则. 问最大的分数. 思考历程 显然,一定是把大的放分界点左边,把小的放右边. 那可以枚举分界点,两边分别计算就可以了.时间复杂度为O(n2)O(n^2)O(n2),朴素的暴力算法. 接下来我就想有没有什么数据结构可以在枚举分界点的时候维护左右两边的答案. 想不出-- 换种简单的思路. 当分界点从左向右移动的时候,左边的答案会…
题目描述 在比特镇一共有n 个街区,编号依次为1 到n,它们之间通过若干条单向道路连接. 比特镇的交通系统极具特色,除了m 条单向道路之外,每个街区还有一个编码vali,不同街区可能拥有相同的编码.如果val_i and val_j = val_j,即val_i 在二进制下与val_j 做与运算等于val_j,那么也会存在一条额外的从i 出发到j 的单向道路. Byteasar 现在位于1 号街区,他想知道通过这些道路到达每一个街区最少需要多少时间.因为比特镇的交通十分发达,你可以认为通过每条道…
题目描述 宅邸迅速的燃烧着,必须带贝蒂走出禁书库!凭着感觉,又一次直接找到禁书库的门. "你,是那个人嘛?"400年了,当初圣域建立结界时没有进入圣域,被伤了心的人工精灵贝蒂,与强欲魔女签订契约,守护宅邸的禁书库,直至"那个人"的到来,那个人会解开贝蒂的心结. "我不是那个什么人,但我会成为你唯一的人.我会给你幸福!" 精灵与人签订契约,从此相依为命.这便是,永恒的契约. 宅邸里,罗兹瓦尔的房间图书柜后,有一条链接宅邸和圣域的秘密通道,其中有一个…
https://gmoj.net/senior/#main/show/5051 Solution 首先注意到每个点有且只有一条出边,也就是说这是一个环套树(森林). 那么我们可以贪心. 首先这个森林里入度为零的点一定要跟root连边,因为没有任何其他的点可以到入度为零的点,然后就可以通过这些点更新其他的点.这个可以用拓扑来完成. 我们设dis数组表示每个点到root的距离,在拓扑中,如果我们遇见了一个dis>k且入度为零的点,那么就将它和root连边. 这样子树就处理完了,那么我们来考虑环. 不…
题目大意: 判断一个序列是否是另外一个序列删除若干个数字之后得到的. 正文: 我们可以定义两个指针,分别指向长序列和短序列. 拿样例来举例: 如果指针指的数相同,两个指针都往右跳: 如果不同,则指向长序列的指针往右跳: 以此类推. 超时,得分 \(\texttt{30}\) 分. 考虑将长序列每一个出现过的数的位置存起来,然后用二分找合适的位置.可以用 \(vector\) 来存,再用一个变量 \(last\) 记录短序列每一个数字在长序列出现的位置,二分时就可以找大于上一个数的 \(last\…
本文摘自: http://adamcavendish.is-programmer.com/posts/38190.htm 引言 众所周知,C++11 的新特性中有一个非常重要的特性,那就是 rvalue reference,右值引用. 引入它的一个非常重要的原因是因为在 C++ 中,常常右值,通俗地讲"在等号右边的"临时变量或者临时对象,我们是无法得到它的修改权限的. 由于类的构造和析构机制,往往产生的临时变量或临时对象的拷贝构造及析构,会带来不少的时间.资源消耗. 也同样由于这样的限…
9.1 辣鸡 可以把答案分成 每个矩形内部连线 和 矩形之间的连线 两部分 前半部分即为\(2(w-1)(h-1)\),后半部分可以模拟求(就是讨论四种相邻的情况) 如果\(n^2\)选择暴力模拟是有\(35pts\)的 发现按横坐标排序后,如果有一矩形与当前矩形横向不相邻,则之后矩形都是没有贡献的 所以枚举时比较横坐标视情况跳出 因为会产生贡献的矩形对并不多(不超过\(4e5\),具体还会小),所以这样优化以后可以通过 9.2 模板 暴力跳祖先的话是有\(30pts\)的,经过一番纯玄学特判可…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3780 Time Limit: 2 Seconds      Memory Limit: 65536 KB Leo has a grid with N × N cells. He wants to paint each cell with a specific color (either black or white). Leo has a magical bru…
题目描述 Description Input Output Sample Input 见下载 Sample Output 见下载 Data Constraint 题解 lj题卡线段树 求出每个右端点往左第一个跳到的点,可以变成一棵树 如果r1r2(r1<r2)中间没有把两个点分开的弦,那么就是r1的深度 用一个单调栈可以求出往左跳到的点(每次把若干小区间合并),但是有可能一条弦跳到的位置会被向后的一条弦切断 所以再用一个单调栈求出每个右端点向左第一个跨过它的左端点,如果再维护过程中出现了交叉的情…