1 solutions
-
3
B3694 数列离散化
别以为它看上去繁琐,很简单就能搞定! 代码如下(原本过程不懂的去看ppt)
#include<bits/stdc++.h> using namespace std; int a[114514],b[114514]; //a原数组,b备份 int main(){ int T; cin>>T; while(T--){ memset(a,0,sizeof(a)); memset(b,0,sizeof(b));//清0 int n; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; b[i]=a[i]; }//输入2数组 sort(b,b+n);//对b数组排序 int l=unique(b,b+n)-b;//去重 for(int i=0;i<n;i++) cout<<lower_bound(b,b+l,a[i])-b+1<<" ";//二分查找 cout<<endl; } return 0; }
其实,很多东西有库函数,我们直接调用就行了 点赞!!!
- 1
Information
- ID
- 1072
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 6
- Tags
- (None)
- # Submissions
- 20
- Accepted
- 10
- Uploaded By