nbut G,C題

2058 ワード

orzは来月に死ぬ.
そして離散神馬の忘れたことを表す.一画神馬の奇数度の点は<=2個しかないですね
そしてmap
もう1つは、mapがキータイプを定義しなければならない<オペレータであり、このオペレータは正しく動作し、実際にはmapの下部に赤と黒のツリーが実装されていることです.二叉樹の特徴により再構築<(マンゴー感謝==)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
using namespace std;
typedef struct node{
	int x,y;
	bool operator<(const node &b)const
	{
		if(x==b.x)
			return y<b.y;
		else
			return x<b.x;
	}
}node;
int main()
{
	int N;
	map<node,int>a;
	node tmp,tmp1;
	int i,j,k;
	while(~scanf("%d",&N))
	{
		a.clear ();
		for(i=0;i<N;i++)
		{
			scanf("%d%d%d%d",&tmp.x,&tmp.y,&tmp1.x,&tmp1.y);
			a[tmp]++;
			a[tmp1]++;
		}
		int num=0;
		for(map<node,int>::iterator iter=a.begin();iter!=a.end();iter++)
		{

			if(iter->second%2!=0) num++;
		}
		if(num>2) printf("NO
"); else printf("YES
"); } return 0; }

それからc題で、k兄は私に線形カバーだと言って、死月牛は下の標識の操作を言います-,-.
まずk兄のコードを貼りましょう...Orz
#include <iostream>
#include <algorithm>
#include <string>
#include <set>
//#include <map>
#include <queue>
#include <iomanip>
#include <list>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
//#include <ctime>
using namespace std;
#define M 500005
#define N 5000005

struct Region{
	int a, b;
}reg[M];

int seg[N];

int main()
{
	int n, i, m, maxs;
	while (~scanf ("%d", &n))
	{
		maxs = 0;
		for (i = 0; i < n; i++)
		{
			scanf ("%d%d", ®[i].a, ®[i].b);
			if (maxs < reg[i].b) maxs = reg[i].b;
		}
		memset (seg, 0, sizeof(seg));
		for (i = 0; i < n; i++)
		{
			seg[reg[i].a]++;
			seg[reg[i].b+1]--;
		}
		for (i = 1; i <= maxs; i++)
			seg[i] += seg[i-1];
		scanf ("%d", &m);
		while (m--)
		{
			scanf ("%d", &i);
			printf ("%d
", seg[i]); } } return 0; }