随笔分类 -  贪心

摘要:Aimee 很简单的小dfs 额 其实是套着dfs壳的贪心 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n,dis; int pl[100001]; int ans; void df 阅读全文
posted @ 2020-10-30 21:10 Simex 阅读(110) 评论(0) 推荐(0)
摘要:Aimee 很水的题目 只要把P1144改一下 需要注意的是这个题有重边,求方案数的话一定要去重!! 这就涉及到很有趣的问题。 要想成为顶尖高手 就要做到滴水不漏 --橙汁哥 从这个题我才知道我写的堆优化Dijkstra复杂度有问题 TLE起飞 #include<iostream> #include 阅读全文
posted @ 2020-10-27 23:40 Simex 阅读(76) 评论(0) 推荐(0)
摘要:Miku 能够把自己的复杂的想法实现出来当然好 但是即使是一个复杂的,自以为正确的错误想法?? (被卡了半年有感) #include<iostream> #include<cstdio> using namespace std; int simex[30010]; int bo; int at[4] 阅读全文
posted @ 2020-10-23 23:30 Simex 阅读(137) 评论(0) 推荐(0)
摘要:Miku 很简单的线性dp 或者说不用dp 有两维,随便按照一维降序排个序,就成了个固定顺序的一维问题了。 直接$O(n^2)$贪心划分不下降子序列或者说运用dilworth定理,求最长上升子序列 贪心更快诶,可能是因为continue的多? dp #include<iostream> #inclu 阅读全文
posted @ 2020-10-22 23:27 Simex 阅读(127) 评论(0) 推荐(0)
摘要:Miku 一道非常简单的dp,除非像我一样看错题 以为是所有猪全杀 然后写了个贪心,然后滚蛋 不过显然可以证明的是,优先取体重下降的快的猪,然后贪心 #include<iostream> #include<cstdio> #include<algorithm> using namespace std 阅读全文
posted @ 2020-10-05 15:26 Simex 阅读(110) 评论(0) 推荐(0)
摘要:Miku 一个很好证明的贪心,从左往右,依次删掉比右边的数大的数,如果还需要删,就从后往前删 注意,这个题要考虑前导零 #include<iostream> #include<stack> using namespace std; string n;int k; bool vis[260]; sta 阅读全文
posted @ 2020-10-05 13:31 Simex 阅读(114) 评论(0) 推荐(0)
摘要:Miku 贪心,只有点权的时候显然好做,但是还有边权怎么办呢 假设这里有一条边,边权为2v,然后两个点的点权为a,b,我们把边权分成两部分,然后平摊到两个点上,那么 边权变成了a+V,B+V 假如一人选了一个选了 那么a+V-(b+v) 和a-b一样。 同理,假如两个都归了一个人,那么a+V+b+v 阅读全文
posted @ 2020-10-04 14:23 Simex 阅读(183) 评论(0) 推荐(0)
摘要:这个合并果子版的题和哈夫曼树极为相似 Miku #include<iostream> #include<cstdio> #include<algorithm> #include<queue> using namespace std; priority_queue <long long> q; lon 阅读全文
posted @ 2020-10-02 23:16 Simex 阅读(111) 评论(0) 推荐(0)
摘要:链接:Miku 这里是O(\(n^2\))的做法 首先可以证明,对于每一条直径,求出的偏心距是一样的 怎么证明?显然(我不会) 怎样求树的直径?简单。 贪心:在一条直径上,显然选择的路径越长越好 实现:首先求出树上所有点之间的距离(\(n^2\))一直dfs就行 然后找出直径及直径经过的点 最后在直 阅读全文
posted @ 2020-09-19 20:30 Simex 阅读(117) 评论(0) 推荐(0)
摘要:链接:[Miku](https://www.luogu.com.cn/problem/P1016)' 贪心,对于每一个点,优先跑到能到的点中第一个价格较原点低的,否则加满油跑到价格最低的一个 #include<iostream> #include<cstdio> #include<algorithm 阅读全文
posted @ 2020-09-04 19:50 Simex 阅读(116) 评论(0) 推荐(0)
摘要:Miku 一眼就看出来是个二分答案 二分最大边的权值 然后显然这种题是不需要考虑花了多少钱的,那么对于每一个mid 就先把所有范围内1级边全键了,然后再把剩下的二级边全键了,看一下能不能跑出来一个生成树 就行了 //二分解决最大的最小 #include<iostream> #include<algo 阅读全文
posted @ 2020-08-11 09:23 Simex 阅读(132) 评论(0) 推荐(0)
摘要:Miku so crazy 因为把stack的类型写成bool 把自己搞自闭了 思路,显然如果一个点是(,那么不会有贡献,只要压入队列,答案继承父亲就行了 如果是),如果能匹配,就判断(的父亲是什么,如果是),那么显然把根节点到)的父亲的序列中与刚匹配的()相接的部分加上刚匹配的()也是合法的 不考 阅读全文
posted @ 2020-08-07 22:55 Simex 阅读(97) 评论(0) 推荐(0)
摘要:Miku 贪心 按照时间从前往后尽可能的修 如果能修就修,修不了的话 我们可以选择撤掉一个以前修的腾出时间来,但是,腾出两个显然更蠢 那么,显然无论腾不腾,截止到此建筑,能修的数量最多一定() 由此观之,应该把已修的最大的取出来,然后进行比较,放进小的,扔掉大的,来为后面腾时间 #include<i 阅读全文
posted @ 2020-08-02 19:33 Simex 阅读(81) 评论(0) 推荐(0)
摘要:Miku 解提示思路一定要清醒,想好了再干。 别直接下笔,有思路吗,没思路写什么 --scz 被这个题卡了1h 我还是太弱了 #太弱了 思路本身好想,从后往前扫,能搞就干,先玩最大,同时间扔一块 \(\color{red}{但是我写了啥}\) #include<iostream> #include< 阅读全文
posted @ 2020-08-01 22:31 Simex 阅读(144) 评论(2) 推荐(0)
摘要:MIku 规律:\(w_1+s_1<w_2+s_2\) #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n; struct c{ long long w; long long s; }c 阅读全文
posted @ 2020-08-01 11:51 Simex 阅读(167) 评论(0) 推荐(0)
摘要:链接:Miku 本题的关键就在于隐藏的单调性 开三个队列,分别放没切的,切出来的大的,切出来的小的。 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> const int m 阅读全文
posted @ 2020-07-22 16:00 Simex 阅读(145) 评论(0) 推荐(0)
摘要:链接:Miku、多组数据(蓝题和紫题的区别就是多组数据) 非常显然的贪心思路就是能放就放,放满了然后把下一次使用间隔最久的拿走、 但是这样会有一个问题,如果它已经进去了怎么办, 直接continue会wa掉,因为即使已经有了,我们还是应该更新一下下一个的值(易证) 那么该怎么办呢 if(pl[p[i 阅读全文
posted @ 2020-07-21 21:59 Simex 阅读(138) 评论(0) 推荐(0)
摘要:链接:Miku 链表存图,但是要注意创造出来个0和n+1号坑,这会方便我们后续处理的 贪心的部分就是选择最高的,然后把两边的去掉 等等,我反悔了咋办,我觉得选两边的更好!(这里有一个问题,要不都选,要不都不选,这是可以证明的) 那么我们就把两边和中间拼成一颗巨树,他的价值是两边之和-中间的(这样再选 阅读全文
posted @ 2020-07-21 18:23 Simex 阅读(153) 评论(0) 推荐(0)
摘要:链接:Miku 这道题和线段树有什么关系 很简单的贪心,如果一堆牌比左边的大,那么肯定是要加上他的差的 反正,顺手出掉就可以了 #include<iostream> using namespace std; long long ans; long long last; int n; long lon 阅读全文
posted @ 2020-02-24 15:55 Simex 阅读(156) 评论(0) 推荐(0)
摘要:链接:Miku 这是一道水贪心,很容易想到做法就是把最贵的两个放在一块,让后当成一个重新放回队列 #include<iostream> #include<algorithm> #include<cstdio> #include<queue> using namespace std; priority 阅读全文
posted @ 2020-01-18 21:50 Simex 阅读(128) 评论(0) 推荐(0)