思维
吹梦到西周啊啊啊
纵有千古,横有八荒;前途似海,来日方长。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
牛客小白月赛29-I修改(最小生成树)
I-修改题意:有一个混乱的序列(可以理解为忽略具体的值,求通解),第iii种操作可以使lil_ili ~ rir_iri加减任意值,费用为wiw_iwi,求使得数列全为0的最小花费。题解:用差分数组表示这个序列,为了求通解,考虑最坏情况,即每一位都不为0每一次操作在lil_ili处+k+k+k,在ri+1r_i+1ri+1处−k-k−k最后的目标是使这个差分数组变为全0,非0的都要转移到n+1n+1n+1可以联想到最小生成树,从lil_ili向ri+1r_i+1ri+1建边,求最小原创 2020-11-19 20:45:21 · 260 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场)G.Greater and Greater(思维+构造)
G-Greater and Greater题意:给定两个数组A和B,在A中找到一个子数组C使得Ci>=BiC_{i}>=B_{i}Ci>=Bi ∀i∈[1,m]\forall i \in[1,m]∀i∈[1,m],这样的子数组存在几个题解对A和B数组降序排列,并存下它们原本的位置id设bitset<>res,对于每一个BiB_{i}Bi,res为1的位置PjP_{j}Pj表示Aj>=BiA_{j}>=B_{i}Aj>=Bi,那么Pj−Bi.原创 2020-07-15 22:48:20 · 432 阅读 · 0 评论 -
CF1335D. Game With Array(数论+思维?)
Game With Array要使子序列和不为k和n-k,最简单的就是取k=1,判断一下s/n>=2就行,这样序列可以为n-1个2和s-2*(n-1)组成Code:#include <bits/stdc++.h>using namespace std;#define ll long long#define pii pair<int, int>#define mem(a, b) memset(a, b, sizeof(a));#define lowbit(x) (原创 2020-06-03 23:00:41 · 258 阅读 · 0 评论 -
1279C. Stack of Presents
Stack of Presents维护最深深度即可比如先拿一个第5层的,这时最深深度就是5,接下来如果拿第4层的就可以认为它刚刚已经被移到了最上面,如果要拿第7层的,就需要把上面的移出,然后更新深度Code:#include <bits/stdc++.h>using namespace std;#define ll long long#define pii pair<int, int>#define mem(a, b) memset(a, b, sizeof(a));原创 2020-06-02 17:35:08 · 231 阅读 · 0 评论 -
CF 23B Party(思维)
题目传送我这渣渣英语和语文,读题太艰难了。。。。。因为要留下更多的人,也就是走更少的人。1.一个都不走是不可能的。2.牺牲1个,每个人跟别人都是朋友,都有(n-1)个朋友,都要离开。3.牺牲2个,1、2号互相之间不是朋友,与其他人都是朋友,1、2号有(n-2)个朋友,其他人都有(n-1)个朋友,1、2号离开后,剩下的人都有(n-3)个朋友,都可以留下。4.只有1或2个人时,无论怎样都留...原创 2020-03-16 10:52:23 · 210 阅读 · 1 评论
分享