离散化
ACkingdom
这个人很懒,什么都没有留下
展开
-
2020牛客暑期多校训练营(第八场)I.Interesting Computer Game(并查集)
题目链接思路:将题目转化为求连通子图的顶点数之和,若无环贡献为顶点数,否则为顶点数减1。(数字过大需要用到离散化优化)代码:#include<bits/stdc++.h>#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=2e5+10;const int M=2e4+5;const double eps=1e-8;const int mo原创 2020-08-04 01:25:40 · 230 阅读 · 0 评论 -
2020牛客暑期多校训练营(第六场)K.K-Bag(思维,离散化)
题目链接思路:首先判断每一位置之后有多少个不重复的数字,然后再枚举所有可能的第一个断点的位置,遍历判断从这个断点开始之后的每一个断点是否可以成为一个排列,因为k=1e9,所以我们要用到离散化。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);const int N=1e5+原创 2020-07-28 21:22:18 · 300 阅读 · 0 评论 -
洛谷-P1908 逆序对(线段树区间求和+离散化)
题目链接题意:逆序对就是序列中 ai>aj且i<j的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目,注意序列中可能有重复数字。思路:用一个flag数组标记哪些数字已经放入数组中,用线段树求flag的前缀和,求放入的数字前已经放入了多少个比他小的数字。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_st原创 2020-06-08 21:17:44 · 315 阅读 · 0 评论 -
洛谷-P1908 逆序对(树状数组,离散化)
题目链接题意:求大小为n的数组中有多少个逆序对。思路:因为n<=1e5,但是a[n]<=1e9,而且这道题和每一个a[i]的具体数值并没有任何关系,所以我们要用到离散化思想,将a[n]中的数字排序后重新赋值。之后就是正常的树状数组求逆序对方法。代码:#include<bits/stdc++.h>using namespace std;#define int long long#define IOS ios::sync_with_stdio(false);cin.ti原创 2020-06-03 20:33:46 · 226 阅读 · 0 评论