首页 > 其他分享 >666

666

时间:2022-09-29 17:44:33浏览次数:39  
标签:temp int 666 ll past data

666

#include<iostream>
#include<algorithm>
#include<cmath>
#define ll long long
using namespace std;
int n,x;
//数组中所有数都是非负整数 
//归纳总结:稳定排序与不稳定排序 
ll q,v;

struct neww{
	ll num;
	ll data;
}past[8010],a[8010];
int ffind(ll x)
{
	for(ll i=1;i<=n;i++)
		if(past[x].num==a[i].num)
			return i;
}
bool cmp(neww x,neww y)
{
	return x.data<y.data;
}
void csort()
{
	for(ll i=1;i<=n;i++)
		for(ll j=i;j>=2;j--)
			if(a[j].data<a[j-1].data)
				swap(a[j],a[j-1]);

}
void csort2()
{
	for(ll i=2;i<n;i++)
	{
		ll l=1,h=i-1;
		neww t=a[i];
		while(l<=h)
		{
			ll mid=(l+h)/2;
			if(t.data<a[mid].data) h=mid-1;
			if(t.data>=a[mid].data) h=mid+1;
		}
		ll  j;
		for(j=i-1;j>h;j--)
			a[j+1]=a[j];
		a[j+1]=t;
	}
 } 
int main()
{
	cin>>n>>q;
	for(ll i=1;i<=n;i++)
	{
		cin>>past[i].data;
		past[i].num=i;
		a[i]=past[i];
	}
	int temp;
	for(ll i=1;i<=q;i++)
	{
		cin>>temp;
		if(temp==1)
		{
			cin>>x>>v;
			a[x].data=v;
			past[x].data=v;//对未来有影响 
		}
		if(temp==2)
		{
			cin>>x;
			stable_sort(a+1,a+n+1,cmp);
			cout<<ffind(x)<<endl;
			for(ll i=1;i<=n;i++)
				a[i]=past[i];//对未来无影响 
		}
	 } 
	return 0; 
} 

标签:temp,int,666,ll,past,data
From: https://www.cnblogs.com/xdzxxintong/p/16742419.html

相关文章

  • NC16663 合并果子
    题目原题地址:合并果子题目编号:NC16663题目类型:队列、堆时间限制:C/C++1秒,其他语言2秒空间限制:C/C++131072K,其他语言262144K1.题目大意n堆果子,需要两两合并直至......