我是SB,快来骂我
  • 板块灌水区
  • 楼主Elgo87
  • 当前回复15
  • 已保存回复15
  • 发布时间2021/10/25 20:21
  • 上次更新2023/11/4 02:16:04
查看原帖
我是SB,快来骂我
393864
Elgo87楼主2021/10/25 20:21

PJ T2

考场代码:

#include<bits/stdc++.h>
using namespace std;

inline int read()
{
	int nev=1,num=0;
	char ch=getchar();
	while(!isdigit(ch))
	{
		if(ch=='-')
			nev=-1;
		ch=getchar();
	}
	while(isdigit(ch))
	{
		num=(num<<1)+(num<<3)+(ch^48);
		ch=getchar();
	}
	return num*nev;
}

int arr[8005],idx[8005],last[8005];
//原数组,原数组第i个元素在last的位置 

int n,q;
 
int main()
{
 	freopen("sort.in","r",stdin);
 	freopen("sort.out","w",stdout);
	
	cin>>n>>q;
	for(int i=1; i<=n; i++)
		arr[i]=read();
	
	for(int i=1; i<=n; i++)
	{
		last[i]=arr[i];
		idx[i]=i;
	}
		
	
	for(int i=1; i<=n; i++)
		for(int j=i; j>=2; j--)
			if(last[j]<last[j-1])
			{
				swap(last[j],last[j-1]);
				swap(idx[j],idx[j-1]);
			}
				
	
	for(int k=1; k<=q; k++)
	{
		int op=read();
		if(op==1)
		{
			int x=read(),y=read();
			arr[x]=y;
			for(int i=1; i<=n; i++)
			{
				last[i]=arr[i];
				idx[i]=i;
			}
				
			
			for(int i=1; i<=n; i++)
				for(int j=i; j>=2; j--)
					if(last[j]<last[j-1])
					{
						swap(last[j],last[j-1]);
						swap(idx[j],idx[j-1]);
					}
			
					
		}
		else
		{
			int x=read();
			for(int i=1; i<=n; i++)
				if(idx[i]==x)
				{
					cout<<i<<'\n';
					break;
				}
		}
	}

	return 0;
}
/*
3 4
3 2 1
2 3
1 3 2
2 2 
2 3
*/

我是shab,都想到用这种方法做了为啥不加个结构体然后插排变 sort。。。

sort 72分,这玩意 52分。。。

快骂我,我竟然用了ccf提供的代码,我是shab

验证码dnmd祭

2021/10/25 20:21
加载中...