洛谷2870 最佳牛线,黄金--------贪心

原题地址

水题一个,直接贪心。当心有坑。

解题思路

设两个指针,分别指向队首和队尾,直接比较大小,取较小者放入队列b;

如果两个元素相等,就向中间靠(这时候要换两个变量,毕竟只能算是中间过程),直到找到对应不等的元素或者l>r(没有会TLE),哪一个小,就把对应的队首或队尾放进b里(注意放进去的还是原指针指向的元素!!!),continue。

#include
#include
#include
#include
using namespace std;
char a[30005],b[30005];
int main()
{
//	freopen("bclgood.in","r",stdin);
//	freopen("bclgood.out","w",stdout);
	int n;
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
	cin>>a[i];
	int t=1,w=n,cnt=0,l,r;
	while (t	cnt++;
		    		b[cnt]=a[t];
		  		t++;
			}
			else
			{
				cnt++;
				b[cnt]=a[w];
				w--;
			}
		}
	}
	if (cnt


你可能感兴趣的:(题解,贪心)