随笔分类 - 贪心
摘要:传送门 发现保持自信和做其他事情互不干扰,可以直接做一次 $dp$ 求出最多能空出几天来怼大佬 然后就变成给你若干天,是否能怼死大佬,考虑求出所有的 天数和输出的嘲讽值集合,因为天数不多,嘲讽值增长很快 所以直接 $BFS$ + $map$ 去重就行了 不怼大佬或者只怼一次的情况容易计算,现在问题是
阅读全文
摘要:传送门 显然考虑 $dp$ ,发现从右往左和从左往右是一样的,所以只考虑一边就行 发现对于切的左右端点,选择的 $s0$ 一定要为左右端点的贝壳大小,不然这个端点不产生贡献还不如分开来单个贡献 所以设 $f[i]$ 表示当前把 $1$ 到 $i$ 的都切了,产生的最大贡献,设 $c[i]$ 表示位置
阅读全文
摘要:传送门 首先可以把时间区间离散化 然后求出 $cnt[l][r]$ 表示完全在时间 $[l,r]$ 之内的活动数量 设 $f[i][j]$ 表示当前考虑到时间 $i$,第一个会场活动数量为 $j$ 时,另一个会场的最大活动数量 这个转移直接枚举上一个时间分界线 $k$, $f[i][j]=max(f
阅读全文
摘要:传送门 考虑如果能确定每个鞋子最终交换到的位置,那么答案容易算出 具体地,如果原位置为 $i$ 的鞋子要交换到 $pos[i]$ 那么最终答案就是 $pos$ 的逆序对数量 如果不懂可以先去写 NOIP2013火柴排队 我的题解也有关于这个的证明 考虑怎么确定最优的方案,容易想到每个鞋子都找离它最近
阅读全文
摘要:传送门 感觉题意不太清楚 可能我英语不行 每层只能有一头牛 考虑对于任意一个方案,其中某个相邻位置 $i,i+1$,如果把它们交换会产生的贡献 其他位置显然没有影响,这两个位置交换前为 $max(W-p[i+1],W+w[i+1]-p[i])$,交换后 $max(W-p[i],W+w[i]-p[i+
阅读全文
摘要:传送门 考虑任意一个运送顺序,对于第 $i$ 头牛和第 $j=i+1$ 头牛,把它们的顺序交换会如何 首先其他牛的代价仍然不变 改变的代价为 $2t[i]*v[j]-2t[j]*v[i]$,如果左边式子小于 $0$,我们就把这两头牛交换,一直交换最终代价就是最小的 所以直接按 $t[i]/v[i]$
阅读全文
摘要:传送门 考虑任意一个排队方案,对于其中某两个相邻位置 $i>0,j=i+1$,如果交换更优 那么有 $max(A/r[i],Al[i]/r[j])>max(A/r[j],Al[j]/r[i])$,其中 $A=\prod_{k=0}^{i-1}l[k]$,$l[0]$ 是国王左手的数 因为 $A/r[
阅读全文
摘要:传送门 显然有一个想法,把 $A,B$ 从小到大一一对应,这样距离最小,证明的话好像挺显然的 设 $A_i<A_{i+1}$ ,$B_{i}<B_{i+1}$,那么如果 $A_i$ 对应 $B_i$,$A_{i+1}$ 对应 $B_{i+1}$ 距离为 $(A_i-B_i)^2+(A_{i+1}-B
阅读全文
摘要:传送门 显然考虑 $dp$,发现时间只和当前位置和攻击次数有关,设 $F[i][j][k]$ 表示当前位置为 $i,j$ ,攻击了 $k$ 次得到的最大分数 初始 $f[1][1][k]$ 为位置 $1,1$ 能打到的前 $k$ 大位置的分数和 每次移动都会多一行或多一列目标可以选择,攻击时显然优先
阅读全文
摘要:传送门 一看就是田忌赛马搞搞贪心 考虑如何求最优方案 $1$.考虑当前队伍最强的人,如果他比敌方最强的强,那么有于他一定会得两分,所以直接找到敌方最强的得到两分就好,也可以为后面减少压力 $2$.考虑一下当前队伍中最菜的人,如果他比对方队伍中最菜的强,那么就让他们比,得到两分,因为敌方最菜的一定会白
阅读全文
摘要:传送门 这题看一眼就很不可做 考虑对于任意一个最终状态,对于一条边的贡献分成三种情况 如果此边连接的两点属于 $A$,那么对 $A$ 的贡献就是边权 $w$,即对答案的贡献为 $+w$ 如果两点都属于 $B$,对 $B$ 的贡献就是边权 $w$,对答案的贡献为 $-w$ 如果两点属于两人,那么对答案
阅读全文
摘要:A. Hotelier 题意:有十个位置初始为 $0$,三种操作,找到左边第一个空位,变成 $1$,找到右边第一个空位,变成 $1$,把某个位置变成 $0$ 直接模拟.. #include<iostream> #include<cstdio> #include<algorithm> #include
阅读全文
摘要:传送门 感觉正着做不太好搞,考虑倒过来搞 容易想到贪心,每一层都贪心地选最小的宽度,然后发现 $WA$ 了... 因为一开始多选一点有时可以让下一层宽度更小 然后有一个神奇的结论,最高的方案一定有一种是底层最窄的方案 证明: 考虑把所有块按顺序排成一排并分成几段,每一段都表示一层,假设如图是一种底层
阅读全文
摘要:传送门 从左到右扫一遍,考虑什么时候会和之前形成同一幢房子从而不用统计 显然是当前的高度和之前某个点高度相同,并且它们之间没有更矮的建筑 考虑用一个单调栈维护一个单调上升的房子轮廓,然后对于扫到的每一个高度,看看栈里有没有相同的高度就行了 但是我比较傻逼,没想到,所以用 $set$ 去维护单调栈就可
阅读全文
摘要:传送门 搜索,剪枝 首先可以二分答案迭代加深,假设要买 $p$ 台 那么肯定卖价格最小的 $p$ 台 再来个 $A*$ ,设搜到当前情况时,有 $waste$ 的钱一定要被浪费(其实就是某些学校剩下的钱连最便宜的都买不起) 设最便宜的 $p$ 台电脑总价值为 $sum$ ,所有学校的总钱数为 $S$
阅读全文
摘要:传送门 直接 $dfs$ 会 $T$ 飞,$BFS$ 又会爆空间 考虑迭代加深搜索,枚举走的最大步数, $dfs$ 时如果步数大于枚举的步数就返回 然后再加个估价函数 $diff$,表示当前状态与最终状态差的格子数,如果就算每一步都能减少一个不同且最后一步能减少两个不同都无法在限定步数内到达 那么就
阅读全文
摘要:A. Drinks Choosing 有 $n$ 个人,每个人各有一种最喜欢的饮料,但是买饮料的时候只能同一种的两个两个买(两个一对) 学校只打算卖 $\left \lceil \frac{n}{2} \right \rceil$ 对 这意味着有些学生喝不到最喜欢的饮料,求最多有多少学生能喝的最喜欢
阅读全文
摘要:A. DIY Wooden Ladder 题意:有一些不能切的木板,每个都有一个长度,要做一个梯子,求梯子的最大台阶数 做梯子的木板分为两种,两边的两条木板和中间的若干条台阶木板 台阶数为 $k$ 的梯子要求两边的木板长度大于等于 $k+1$ ,中间的木板数等于 $k$。 直接找到最大和次大的木板放
阅读全文
摘要:传送门 注意每一单位蔬菜的变质时间是固定的,不随销售发生变化 固定的...... 就是每一个单位的蔬菜在哪一天变质是早就定好了的 发现从第一天推到最后一天很不好搞 考虑反过来,从最后一天推到第一天,这样就相当于每天多一些蔬菜 不管现在怎么卖都不会影响下一天多的蔬菜,不会出现贵的留到后面卖的操作,因为
阅读全文
摘要:传送门 BZOJ 上有加强版的数据 :$n<=10^6$,传送门 题面有点长... 考虑先把树的直径求出来,然后瞎搞一下 考虑直径上的点对答案的贡献,显然两个端点的贡献是最大的,可以直接在直径上用一个双指针维护一下左右边界 $l,r$,每次 $r$ 向右走,然后 $l$ 跟着走,贪心地想,显然 $l
阅读全文