- 咸鱼梦想家的鸡架泡饭
一个 O(n) 的不用排序的做法,求调
- @ 2025-9-26 17:44:02
样例全过,30 分求调
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[1000005];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int ans=0;
for(int i=1;i<=n;i++){
if(a[i]>a[m]) ans++;//评分更高
else if(i<=m && a[i]==a[m]) ans++;//评分相等且顺序靠前
}
cout<<ans;
return 0;
}
2 条评论
-
zjy LV 6 @ 2025-9-26 19:39:21哪几个点错了,我看一下数据
-
@ 2025-9-26 19:33:12我也不知道,可能是要排序 附上题解代码
#include<bits/stdc++.h> #define ll long long using namespace std; ll n,m; struct node{ ll a,b; }arr[5000010]; bool cmp(node A,node B){ if(A.a!=B.a){ return A.a>B.a; } return A.b>B.b; } int main() { ios_base::sync_with_stdio(0); cin.tie(0),cout.tie(0); cin>>n>>m; for(ll i=1; i<=n; i++) { cin>>arr[i].a; arr[i].b=i; } sort(arr+1,arr+1+n,cmp); for(ll i=1;i<=n;i++){ if(arr[i].b==m){ cout<<i; return 0; } } }
- 1
信息
- ID
- 6
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 17
- 已通过
- 3
- 上传者