随笔分类 -  贪心

摘要:Jennie 反悔贪心 显然要把逃生能力弱的先送出去,也就是排个序。 这时候剩下的怎么办,万一有一些手长腿短的怎么办 先假设所有小矮人站成一排,然后一个个逃。 逃无可逃时候,看看把已经逃出去的中腿最长的拉下来会不会答案更优。 #include<cstdio> #include<iostream> # 阅读全文
posted @ 2021-11-05 12:42 Simex 阅读(45) 评论(0) 推荐(0) 编辑
摘要:Lisa 显然的贪心思路就是用田忌最大的和齐王最大的进行比较,如果不能,就从小到大找到第一个没有贡献的马,用它换掉最大的 马,重复以上操作 什么叫没贡献的马,最弱的马和最弱的马进行比较,如果田忌的最弱的赢不了,他就是没贡献的 为什么不能简简单单的去最垃圾的马去换 这样可能造成不必要的浪费,既然他能做 阅读全文
posted @ 2021-11-03 14:33 Simex 阅读(41) 评论(0) 推荐(0) 编辑
摘要:Lisa 贪,就硬贪 显然当权值最大的那个点可以选了之后,必须立马选它答案才会最有 既然这个点必须立即选的话,那么何不把它和父亲合并起来,取个平均值 然后这颗新树上重复这个操作 就可以得到一个染色的顺序 #include<iostream> #include<cstdio> #include<cma 阅读全文
posted @ 2021-10-31 23:07 Simex 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Lisa 对于这样的贪心题,很容易想到按照某个顺序排个序,比如说最小的spfa值递减 因为这样的话,对于每一瓶防晒霜,要不前面的牛能用,要不只有前面的牛能用 这样为了给后面省出尽可能多的防晒霜,不如把能用的最大的给前面的牛 也确实如此 #include<iostream> #include<cstd 阅读全文
posted @ 2021-10-31 23:03 Simex 阅读(41) 评论(0) 推荐(0) 编辑
摘要:Lisa 显然的贪心思路就是尽可能的不浪费, 那么就首先从前往后扫,把能拿且不浪费的大的都拿到 然后从小往大,在第一次没取到过的情况下争取放一个就可以大于c 然后记录一下这个情况,加快运算速度 #include<iostream> #include<cstdio> #include<algorith 阅读全文
posted @ 2021-10-04 23:29 Simex 阅读(56) 评论(0) 推荐(0) 编辑
摘要:Lisa 有非常显然的一点是这个题可以二分 也可以不。 我们可以首先用普通牌凑出尽可能多的幅,然后对于缺的情况缺一张用joker添就行了,缺两张或更多就用joker去完整的一副里换出所需要的东西 二分的话思想也差不多 二分了mid的时候,最多可以用mid张joker, 然后结合上面的思想,缺了的用j 阅读全文
posted @ 2021-10-04 23:14 Simex 阅读(39) 评论(0) 推荐(0) 编辑
摘要:Jennie 很有意思 首先贪心的对每一个a中字符匹配B中出现的第一个对应未匹配字符,这样的话就有了顺序 然后每一次的操作是交换相邻的字符,很像某种求逆序对方式对不对 然后这个题就是求逆序对 #include<iostream> #include<cstdio> #include<algorithm 阅读全文
posted @ 2021-10-03 13:02 Simex 阅读(39) 评论(0) 推荐(0) 编辑
摘要:Jennie 根据异或的性质,,如果A到B的路径和A到C的路径的异或和都是零 那么B到C的也都是零 所以说嘛,我们只要考虑从一个叶子节点外走就可以了 如果这一个叶子节点到其他叶子节点的路径都是偶数,,那么全设为1就是一种很好的方案 如果有奇数的路径,那么再搞出两个数,比如说2和3,就能构造出来了 那 阅读全文
posted @ 2021-10-03 12:55 Simex 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Lisa 这一道题绝对恶意评分了 0-9,那么不如全求一遍 对于每一个数字的话,显然先改差为 1 的,然后2 并且把大数改小是优先的 而且把大数该小从前往后,小数改大从后往前 这样我们先记录一下每个数字有多少个 就好办了 #include<iostream> #include<cstdio> #in 阅读全文
posted @ 2021-10-02 13:22 Simex 阅读(27) 评论(0) 推荐(0) 编辑
摘要:Rose 很有趣的题目一道 显然的贪心就是按照时间顺序做,先最耗时短的,零点前的都零点交,零点后的都做完就交 正确性怎样保证呢 我们按照这个耗时进行排名后,假如交换两个任务的话 如果这两个任务都再零点前,没有影响, 如果后一个任务跨零点了,那么交换以后,后面的任务的罚时不会变,但前面的任务有可能也要 阅读全文
posted @ 2021-10-02 11:30 Simex 阅读(24) 评论(0) 推荐(0) 编辑
摘要:Lisa 贪心,贪心 首先考虑能打就打,我方最牛逼的能干过对方最牛逼的就干他 我们最垃圾的能干过对方最垃圾的就上去干他 如果都不行的话,那就派我方最垃圾的干翻敌方最垃圾的 我方最差情况就是敌方最好情况 #include<iostream> #include<cstdio> #include<algo 阅读全文
posted @ 2021-10-01 18:13 Simex 阅读(33) 评论(0) 推荐(0) 编辑
摘要:Lisa 首先强行选择一个点 然后计算它左边最多长区间,右边也是 就可以了 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int a[600001]; in 阅读全文
posted @ 2021-09-26 16:21 Simex 阅读(68) 评论(0) 推荐(0) 编辑
摘要:Jisoo 首先呢,可以知道,每个数都要去它右边第一个空位置 然后对于ai,aj,假如bi,bj是空位的话,那么无论ai,aj谁去哪里,总距离不变 那么显然让每一个数去它右边的第一空是最有的(拉开距离差距) 然后按照距离分配b #include<iostream> #incl 阅读全文
posted @ 2021-09-14 23:01 Simex 阅读(86) 评论(0) 推荐(0) 编辑
摘要:Jennie 一个贪心 首先应该贪心的处理掉所有的bi>0的东西,但是对于bi<0的怎么办呢 假设这里有t1,b1,t2,b2,并且只能先干1的话,那么有 \[ \left\{ \begin{aligned} T+b_1>t_2 \\ T+b_2<t_1 \end{align 阅读全文
posted @ 2021-09-05 19:08 Simex 阅读(65) 评论(0) 推荐(0) 编辑
摘要:这是个什么玩意 简单一想,就知道可以从左往右数 把相同的数字“摞”到一块 如果当前格比左边小的话,那么显然从小组到大组分就可以了 如果反之,更显然需要出现只有一个人的组 用优先队列实现这个东西就可以了. #include<iostream> #include<cstdio> #include<alg 阅读全文
posted @ 2021-09-05 11:38 Simex 阅读(77) 评论(0) 推荐(0) 编辑
摘要:Aimee 很简单的题目 记得long long 一个小小的分类讨论 #include<iostream> #include<cstdio> #include<algorithm> #define int long long using namespace std; int n,m,k,p; sig 阅读全文
posted @ 2020-12-04 22:07 Simex 阅读(63) 评论(0) 推荐(0) 编辑
摘要:Aimee 很水的题目 完全对不起他的颜色 按照顺序排一下,然后能放就放,防不了,就把最大的拿出来再说 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<queue> #define 阅读全文
posted @ 2020-11-05 21:26 Simex 阅读(92) 评论(0) 推荐(0) 编辑
摘要:Aimee 很水的题目 很简单的反悔贪心,能干就干,干不了就把最小的扔掉 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<queue> #define int long long u 阅读全文
posted @ 2020-11-05 21:08 Simex 阅读(62) 评论(0) 推荐(0) 编辑
摘要:❤Aimee❤ 很有意思的题目 虽然说被我写的特别长 要做的事情就是先找到最大的点,然后找到与这个点相连的点中最大的那个 之后显然被选择的点只能在这两个中左右横跳。 有意思的是,这个写法并不需要特判n==1 #include<iostream> #include<cstdio> #include<c 阅读全文
posted @ 2020-10-31 22:34 Simex 阅读(186) 评论(0) 推荐(0) 编辑
摘要:Aimee 很简单的树上dp 一维就够了 #include<iostream> #include<cstdio> #include<cstring> using namespace std; int n; int x,y; int zn[160001]; struct e{ int to; int 阅读全文
posted @ 2020-10-31 18:57 Simex 阅读(79) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示