求助一道著名水题
  • 板块学术版
  • 楼主liaoyichen
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/8/8 21:20
  • 上次更新2023/11/4 11:29:36
查看原帖
求助一道著名水题
486675
liaoyichen楼主2021/8/8 21:20

原题右转——https://www.luogu.com.cn/problem/P1650

我是直接贪心,结果10分——评测状态

Code

#include<bits/stdc++.h>
using namespace std;
const int N=2005;
int n,a[N],b[N],ans=0,t1=1,t2,q1=1,q2;
//t1 田忌最快的马的序号 
//t2 田忌最慢的马的序号
//q1 齐王最快的马的序号
//q2 齐王最慢的马的序号
int cmp(int a,int b)
{	return a>b;
}
int main()
{	cin>>n;
	t2=q2=n;
	for(int i=1;i<=n;i++)
	{	cin>>a[i];
	}
	for(int j=1;j<=n;j++)
	{	cin>>b[j];
	}
	sort(a+1,a+n+1,cmp);
	sort(b+1,b+n+1,cmp);
	for(int i=1;i<=n;i++)
	{	if(a[t1]>b[q1])//田忌最快的比齐王最快的快 ,直接干 
		{	t1++;
			q1++;
			ans++;
		}
		else if(a[t1]<b[q1])//田忌最快的比齐王最快的慢 ,拿最慢的换掉 
		{	t2--;
			q1++;
			ans--;
		}
		else
		{	if(a[t2]>b[q2])//田忌最慢的比齐王最慢的快 ,直接干 
			{	t2--;
				q2--;
				ans++;
			}
			else if(a[t2]<b[q2])//田忌最慢的比齐王最慢的慢 ,把齐王最快的换掉 
			{	t2--;
				q1++;
				ans--;
			}
			else//否则平局 
			{	t2--;
				q2--;
			}
		}
	}
	cout<<ans*200;
	return 0;
}
2021/8/8 21:20
加载中...