【codevs 1643】线段覆盖 3

数据大到nlogn没法做。。

然而我做1的时候用的就是贪心算法。。

所以无影响。。

并且到这个地步。。

基本上就是卡IO操作了(输入输出)

cin/cout会比较慢

关闭流同步后能快一倍

再快就只能用scanf/printf

或者手写读入函数(读入优化技巧

#include
using namespace std;
#define Rep(i,a,b) for(int i=(a);i<=(b);i++)
int n;
struct Seg{
	int l,r;
}e[1000010];
bool cmp(Seg x,Seg y)
{
	if(x.r==y.r)return x.l>y.l;
	else return x.r>n;
	Rep(i,1,n)
	{
		cin>>e[i].l>>e[i].r;
		if(e[i].l>e[i].r)swap(e[i].l,e[i].r);
	}
	sort(e+1,e+1+n,cmp);
	int tot = 0,last = -1;
	Rep(i,1,n)
	{
		if(e[i].l>=last)
		{
			last = e[i].r;
			tot ++;
		}		
	}
	cout<


你可能感兴趣的:(算法与数学)