求助,这样大概多少分
查看原帖
求助,这样大概多少分
222057
joy2010WonderMaker楼主2021/10/23 22:55
#include<bits/stdc++.h>
using namespace std;
int n,m,a[8005],op,x,v;
struct node{
	int id,x;
	bool operator<(const node p){
		if(x!=p.x)
			return x<p.x;
		else
			return id<p.id;
	}
}b[8005];
int main(){
	//freopen("sort.in","r",stdin);
	//freopen("sort.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%d",a+i);
	}
	for(int i=1;i<=m;i++){
		scanf("%d%d",&op,&x);
		if(op==1){
			scanf("%d",&v);
			a[x]=v;
		}else{
			for(int i=1;i<=n;i++){
				b[i].x=a[i],b[i].id=i;
			}
			sort(b+1,b+n+1);
			for(int i=1;i<=n;i++)
				if(b[i].id==x){
					printf("%d\n",i);
					break;
				}
		}
	}
	return 0;
}

T2

#include<bits/stdc++.h>
using namespace std;
int n,a[200005],cnt;
struct node{
	int id,x;
}b[200005];
bool vis[200005];
int main(){
	//freopen("fruit.in","r",stdin);
	//freopen("fruit.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%d",a+i);
	while(cnt<n){
		int sum=0,pos;
		for(int i=1;i<=n;i++)
			if(!vis[i])
				b[++sum].x=a[i],b[sum].id=i;
		pos=b[1].id;
		for(int i=1;i<=sum;i++){
			if(b[i].x!=b[i+1].x||i==sum){
				vis[pos]=true;
				cnt++;
				printf("%d ",pos);
				pos=b[i+1].id;
			}
		}
		printf("\n");
	}
	return 0;
}

T4

T2洛谷72,计蒜客52,T4洛谷70,计蒜客90

2021/10/23 22:55
加载中...