• CSP-S2 T4/P7078 贪吃蛇_set 70pts/100pts(O2)


    #include <bits/stdc++.h>
    using namespace std;
    const int mn=1e6+7;
    int c[mn];
    pair<int,int> m1,m2,m3;
    int main()
    {
    	/*freopen("snakes.in","r",stdin);
    	freopen("snakes.out","w",stdout);*/
    	int T;int n;
    	cin>>T;
    	for(int t=1;t<=T;++t)
    	{
    		set< pair<int,int> > a;
    		if(t==1)
    		{
    			scanf("%d",&n);
    			for(int i=1;i<=n;++i)
    			{
    				scanf("%d",&c[i]);
    				a.insert(make_pair(c[i],i));
    			}
    		}
    			
    		else
    		{
    			int m;
    			scanf("%d",&m);
    			for(int i=1;i<=m;++i)
    			{
    				int k,x;
    				scanf("%d%d",&k,&x);
    				c[k]=x;
    			}
    			for(int i=1;i<=n;++i)
    			  a.insert(make_pair(c[i],i));
    		}
    			
    		int cnt=a.size();
    		int ans=cnt;
    		bool flag=1;
    		for(int i=1;i<cnt-1;++i)
    		{
    			set< pair<int,int> >::iterator mi=a.begin();
    			set< pair<int,int> >::iterator mi2=mi;
    			++mi2;
    			set< pair<int,int> >::iterator mx=a.end();
    			--mx;
    			m1=*mi;m2=*mx;
    			m3=*mi2;
    			if((m2.first-m1.first<m3.first)||(m2.first-m1.first==m3.first&&m2.second<m3.second))
    			{
    				a.erase(mi);a.erase(mx);
    				a.insert(make_pair(m2.first-m1.first,m2.second));
    				flag=0;
    				break;
    			}
    			--ans;
    			a.erase(mi);a.erase(mx);
    			a.insert(make_pair(m2.first-m1.first,m2.second));
    		}
    		if(flag)
    		{
    			printf("1
    ");
    			continue;
    		}
    		cnt=a.size();
    		int k=0;
    		for(int i=1;i<cnt-1;++i)
    		{
    			set< pair<int,int> >::iterator mi=a.begin();
    			set< pair<int,int> >::iterator mi2=mi;
    			++mi2;
    			set< pair<int,int> >::iterator mx=a.end();
    			--mx;
    			m1=*mi;m2=*mx;m3=*mi2;
    			if((m2.first-m1.first>m3.first)||(m2.first-m1.first==m3.first&&m2.second>m3.second))
    			  break;
    			a.erase(mi);a.erase(mx);
    			a.insert(make_pair(m2.first-m1.first,m2.second));
    			++k;
    		}
    		printf("%d
    ",ans-k%2);
    	}
    	return 0;
    }
    
  • 相关阅读:
    UEditor中多图上传的bug
    Mysql 5.5 数据库命令大全
    Android学习书籍
    众方中继使用说明
    MyEclipse 2015优化技巧
    Android studio1.3.1 快捷键
    你有没有这样的猜疑?
    右键新建没有Word_Excel_PowerPoint的解决方法
    电脑清理桌面快捷图标小箭头
    Spring3.1+Hibernate3+Struts2的最新整合所需要的jar包
  • 原文地址:https://www.cnblogs.com/org0/p/13974735.html
Copyright © 2020-2023  润新知