AFO

CF1216X

由于rating限制,和慎老师用小号打了一场div 3

从A到F都没啥思维含量。。感觉最难想的就是C了??


CF1216C

考完以后想hack一下这道题,然后发现满屏都是分类讨论

我大概是写不动 orz

有一个想法就是求出第一个黑块和白块的交S1,第二个黑块和白块的S2,两个交的交S3,然后如果 S1+S2-S3=白块面积 白块就被完全覆盖了

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define LL long long 
using namespace std;
 
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;
 
int main()
{
	scanf("%d%d%d%d",&a,&b,&c,&d);
	scanf("%d%d%d%d",&e,&f,&g,&h);
	scanf("%d%d%d%d",&i,&j,&k,&l);
	m=max(a,e), n=max(b,f), o=min(c,g), p=min(d,h);
	q=max(a,i), r=max(b,j), s=min(c,k), t=min(d,l);
	u=max(m,q), v=max(n,r), w=min(o,s), x=min(p,t);
	LL s1=0,s2=0,s3=0,s4=0;
	if(o>m && p>n) s1=((LL)o-m)*(p-n);
	if(s>q && t>r) s2=((LL)s-q)*(t-r);
	if(w>u && x>v) s3=((LL)w-u)*(x-v);
	if(s1+s2-s3==((LL)c-a)*(d-b)) printf("NO");
	else printf("YES");
}

虽然它有30个变量(==)应该还是比大讨论好一点吧

posted @ 2019-09-22 08:37  ZUTTER☮  阅读(114)  评论(0编辑  收藏  举报