贪心
Cyhlnj
这个作者很懒,什么都没留下…
展开
-
[NOI2014]起床困难综合症
从高位往地位贪心即可# include <bits/stdc++.h> # define IL inline # define RG register # define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typedef long long ll; const int _(1e5 + 10);IL ll Read(){原创 2017-12-20 22:23:49 · 346 阅读 · 0 评论 -
BZOJ5289: [Hnoi2018]排列
传送门 第一步转化,令 q[p[i]]=iq[p[i]]=iq[p[i]]=i,那么题目变成: 有一些 q[a[i]]&lt;q[i]q[a[i]]&lt;q[i]q[a[i]]<q[i] 的限制,qqq 必须为排列,求 max(∑i=1nw[i]q[i])max(\sum_{i=1}^{n}w[i]q[i])max(∑i=1nw[i]q[i]) 这个东西是可以建图的,i→...原创 2019-02-20 17:53:22 · 231 阅读 · 0 评论 -
BZOJ5322: [JXOI2018]排序问题
传送门 不难看出期望就是 (n+m)!∏v=1max(cntv!)\frac{(n+m)!}{\prod_{v=1}^{max}(cnt_v!)}∏v=1max(cntv!)(n+m)!,cntvcnt_vcntv 表示 vvv 这个数出现的次数。 贪心就是直接把 mmm 个数字每次选择一个 cntcntcnt 最小的加入,使得最后 [l,r][l,r][l,r] 内每个数字出现的的次数尽...原创 2019-02-20 10:36:02 · 235 阅读 · 0 评论 -
LOJ#6035. 「雅礼集训 2017 Day4」洗衣服
传送门 先处理出每一件衣服最早什么时候洗完,堆+贪心即可 然后同样处理出每件衣服最早什么时候烘干 然后倒序相加取最大值 # include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn(1e5 + 5); int l, n, m, d[maxn], w[maxn]; ll ans,...原创 2019-01-25 16:34:08 · 317 阅读 · 0 评论 -
BZOJ4977: [[Lydsy1708月赛]跳伞求生
传送门 直接贪心 考虑到 nnn 个人的贡献都是 aia_iai,另外 mmm 个人的贡献都是 ci−bic_i-b_ici−bi 首先 ai&gt;bja_i&gt;b_jai>bj 的限制不好做,所以将 a,ba,ba,b 从小到大排序 枚举 aia_iai ,每次把小于 aia_iai 的 bbb 加入优先队列,只要从中间选一个最大的匹配,之后将 −ai-...原创 2019-01-18 12:36:32 · 296 阅读 · 0 评论 -
Bzoj3105:[CQOI2013]新Nim游戏
题面 传送门 Sol 也是拿出一些数,使剩下的异或起来不为000 而线性基内的数异或不出000 那么从大到小加到线性基内 然后中途为000了,就取走它 这样我们使最大的在线性基内,剩下的是小的,那么这样贪心是对的 然后怎么可能无解,随便剩下一个就是一种方案 # include <bits/stdc++.h> # define IL inline # define RG...原创 2018-03-27 17:33:08 · 164 阅读 · 0 评论 -
Luogu345: [POI2007]POW-The Flood
题意 见luogu Sol 贪心 从小到大枚举高度,把小于等于这一高度的相邻格子用并查集合并 那么这个集合内的所有格子都一定可以由这个集合内的一个最低点抽完水 那么合并之后(一定要在合并之后) 判断这一高度是否有城市,有则检查它所在的集合是否放了抽水机,没有就在这个集合中放一个 # include <bits/stdc++.h> # define RG regi...原创 2018-02-24 17:06:25 · 213 阅读 · 0 评论 -
Luogu3444:[POI2006]ORK-Ploughing
题意 见luogu Sol 贪心+枚举 如果知道最后一次是消除一行 那么一定消了nnn行 此时只要消的列最小就好了 枚举每列从上往下消到哪里,那么下面消的越小越好 那么就有了贪心策略: 先消左右的列,再消上面,再消下面 最后一次消列的情况是一样的 # include <bits/stdc++.h> # define RG register # define...原创 2018-02-24 17:00:18 · 232 阅读 · 0 评论 -
Luogu3613 睡觉困难综合征
luogu题面 这道题是NOI起床困难综合症改编而来的 思路是一样的 这道题我们考虑用LCT维护,每个节点维护两个值 一个为中序遍历这棵子树的ans0,ans1(分别表示0和INF(二进制下全为1)跑的答案) 另一个为中序遍历的反向遍历这棵子树的ans0,ans1 还要记得保存这个点的初始操作考虑合并,若知道的左边的f0,f1,右边的g0,g1,合并后的h0,h1 有原创 2017-12-30 09:01:05 · 298 阅读 · 0 评论 -
[SCOI2016]美味
按位从高往低贪心,枚举到第i位,只需要判断这2^i长度的区间是否有菜,用主席树就可以了# include <bits/stdc++.h> # define RG register # define IL inline # define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typedef long long ll; const原创 2017-12-30 14:41:31 · 271 阅读 · 0 评论 -
[Noi2014]随机数生成器
题面 传送门 Sol 这道题卡空间。。。 先模拟出T,大力贪心,每次选最小的走显然最优 那么选了(i,j)(i, j)它上面都只能选第jj列以前的,它下面都只能选第jj列以后的 每次选最小,更新每行能选的区间,判断即可 # include # define RG register # define IL inline # define Fill(a, b) memse原创 2018-01-21 22:31:03 · 355 阅读 · 0 评论 -
Atcoder:AGC004F Namori
传送门 先考虑树,树是一个二分图。 看到是二分图并且每次是对两边的同色的点反色可以想到转化:让奇数层的点为黑,偶数为白,变成每次可以交换两个点的颜色。 把黑看成 −1-1−1,白看成 111,那么求一个子树和,考虑每一条边的贡献可以得到 ans=∑i=1n∣sumi∣ans=\sum_{i=1}^{n} |sum_i|ans=∑i=1n∣sumi∣ 如果根的 sumsumsum 不为 000,...原创 2019-03-02 16:43:24 · 525 阅读 · 0 评论