国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Codeforces Round #395 (Div. 2) D Timofey and rectangles(思維題)

2019-11-14 12:08:24
字體:
來源:轉載
供稿:網友

D. Timofey and rectanglestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

One of Timofey's birthday PResents is a colourbook in a shape of an infinite plane. On the plane n rectangles with sides parallel to coordinate axes are situated. All sides of the rectangles have odd length. Rectangles cannot intersect, but they can touch each other.

Help Timofey to color his rectangles in 4 different colors in such a way that every two rectangles touching each other by side would have different color, or determine that it is impossible.

Two rectangles intersect if their intersection has positive area. Two rectangles touch by sides if there is a pair of sides such that their intersection has non-zero length

The picture corresponds to the first example
Input

The first line contains single integer n (1?≤?n?≤?5·105) — the number of rectangles.

n lines follow. The i-th of these lines contains four integers x1, y1, x2 and y2 (?-?109?≤?x1?<?x2?≤?109, ?-?109?≤?y1?<?y2?≤?109), that means that points (x1,?y1) and (x2,?y2) are the coordinates of two opposite corners of the i-th rectangle.

It is guaranteed, that all sides of the rectangles have odd lengths and rectangles don't intersect each other.

Output

Print "NO" in the only line if it is impossible to color the rectangles in 4 different colors in such a way that every two rectangles touching each other by side would have different color.

Otherwise, print "YES" in the first line. Then print n lines, in the i-th of them print single integer ci (1?≤?ci?≤?4) — the color of i-th rectangle.

Exampleinput
80 0 5 32 -1 5 0-3 -4 2 -1-1 -1 2 0-3 0 0 55 2 10 37 -3 10 24 -2 7 -1output
YES12232241

解題思路:

因為矩形的邊為奇數長度 根據四色定理,染色一定會成功。

(1)我們只看左下角坐標,如果兩個數值都為奇數,那么右上角坐標一定兩個都為偶數,所以所有左下標坐標為奇數的不會相交,可賦值為1。

(2) 如果x軸為偶數,可能與1的情況左右相鄰賦值為2。

(3) 如果y軸為偶數,可能與1的情況左右相鄰,賦值為3。

(4) 其余賦值為4。

時間復雜度:O(n) 空間復雜度:O(n)

#include <iostream> #include <cstdio>#include <cstdlib>#include <cmath>#include <iomanip>#include <algorithm>#include <climits>#include <cstring>#include <string>#include <set>#include <map>#include <queue>#include <stack>#include <vector>#include <list>#define rep(i,m,n) for(int i=m;i<=n;i++)#define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)const int inf_int = 2e9;const long long inf_ll = 2e18;#define inf_add 0x3f3f3f3f#define mod 1000000007#define pb push_back#define mp make_pair#define fi first#define se second#define pi acos(-1.0)#define pii pair<int,int>#define Lson L, mid, rt<<1#define Rson mid+1, R, rt<<1|1const int maxn=5e2+10;using namespace std;typedef  long long ll;typedef  unsigned long long  ull; inline int read(){int ra,fh;char rx;rx=getchar(),ra=0,fh=1;while((rx<'0'||rx>'9')&&rx!='-')rx=getchar();if(rx=='-')fh=-1,rx=getchar();while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra*fh;}//#pragma comment(linker, "/STACK:102400000,102400000")ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);}ll qpow(ll p,ll q){ll f=1;while(q){if(q&1)f=f*p;p=p*p;q>>=1;}return f;}typedef  vector<int> vi;int dir[4][2]={{1,0},{0,-1},{-1,0},{0,1}};const int N = 1e5+5;int n;int main(){    int a,b,c,d;    cin >> n;    cout << "YES"<<endl;     while(n--)    {        cin >> a>> b>>c>>d;        if(a%2&&b%2)        {            cout << 1<<endl;        }        else if(a%2==0&&b%2)        {            cout << 2<<endl;        }        else if(a%2&&b%2==0)        {            cout << 3<<endl;        }        else        {            cout << 4<<endl;        }    }    return 0;   } 膜一發dls

#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <vector>#include <string>#include <map>#include <set>#include <cassert>using namespace std;#define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=n-1;i>=a;i--)#define pb push_back#define mp make_pair#define all(x) (x).begin(),(x).end()#define fi first#define se second#define SZ(x) ((int)(x).size())typedef vector<int> VI;typedef long long ll;typedef pair<int,int> PII;const ll mod=1000000007;ll powmod(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}// headint n,x,y;int main() {	scanf("%d",&n);	puts("YES");	rep(i,0,n) {		scanf("%d%d%*d%*d",&x,&y);		printf("%d/n",2*(x&1)+(y&1)+1);	}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴青县| 门头沟区| 西安市| 永定县| 都匀市| 浏阳市| 万山特区| 礼泉县| 岳池县| 东至县| 都匀市| 嘉荫县| 谢通门县| 开原市| 桃江县| 湘乡市| 万安县| 淮滨县| 宁明县| 黄龙县| 蒙自县| 喜德县| 同心县| 闻喜县| 皮山县| 吉木萨尔县| 雅江县| 武穴市| 陕西省| 江华| 江阴市| 横峰县| 崇仁县| 望江县| 重庆市| 惠东县| 当雄县| 浦城县| 定结县| 霍林郭勒市| 宁远县|