LINK:XOR

一个不常见的容斥套路题。

以往是只求三角形面积的交 现在需要求被奇数次覆盖的区域的面积。

打住 求三角形面积的交我也不会写 不过这道题的三角形非常特殊 等腰直角 且直角点都在左下方 这就有很多的性质了。

容易发现最后交出的三角形为等腰直角三角形。

考虑如何求若干个三角形交出的面积 不太会证明 题解区的一个神仙给出了一个式子。

设 \(c_i=x_i+y_i+z_i\)最终交出的三角形的直角边边长为 \(MAX(0,min(c_i)-max(x_i)-max(y_i))\)

数据范围这么小 显然可以子集容斥 不过对于枚举到的三角形 需要配上一定的容斥系数满足 偶消奇不消。

对于一个集合s来说 容斥系数为\(2^{|S|-1}(-1)^{|S|-1}\)

怎么说 这是 对于这种容斥的常用套路(系数。

证明:\(\sum_{k=1}^nC(n,k)2^{k-1}(-1)^{k-1}=[![2|n]]\)

\(\sum_{k=1}^nC(n,k)(-2)^{k-1}=\frac{\sum_{k=1}^nC(n,k)(-2)^{k}}{-2}=\frac{-1+\sum_{k=0}^nC(n,k)(-2)^{k}}{-2}\)

二项式定理合并起来 可得\(\frac{1-(-2+1)^n}{2}=\frac{1-(-1)^n}{2}=[![2|n]]\)

const int MAXN=12;
int n;
struct wy
{
int x,y,r,w;
}t[MAXN];
db ans;
inline void dfs(int v,int sz,int z,int x,int y,int op)
{
if(v==n+1)
{
if(!sz)return;
ans=ans+(1ll<<sz-1)*op*((z-x-y)<0?0:(ll)(z-x-y)*(z-x-y));
return;
}
dfs(v+1,sz+1,min(z,t[v].w),max(x,t[v].x),max(y,t[v].y),-op);
dfs(v+1,sz,z,x,y,op);
}
int main()
{
freopen("1.in","r",stdin);
get(n);
rep(1,n,i)
{
int x,y,z;
get(x);get(y);get(z);
t[i]=(wy){x,y,z};
t[i].w=x+y+z;
}
dfs(1,0,INF,0,0,-1);
printf("%.1lf",ans/2);
return 0;
}

luogu P4515 [COCI2009-2010#6] XOR 容斥的更多相关文章

  1. Luogu P4707 重返现世 (拓展Min-Max容斥、DP)

    题目链接 https://www.luogu.org/problem/P4707 题解 最近被神仙题八连爆了-- 首先Min-Max容斥肯定都能想到,问题是这题要用一个扩展版的--Kth Min-Ma ...

  2. [luogu 3175] [HAOI2015]按位或(min-max容斥+高维前缀和)

    [luogu 3175] [HAOI2015]按位或 题面 刚开始你有一个数字0,每一秒钟你会随机选择一个[0,2^n-1]的数字,与你手上的数字进行按位或运算.问期望多少秒后,你手上的数字变成2^n ...

  3. 【Luogu】P2567幸运数字(容斥爆搜)

    题目链接 先预处理出幸运数,把成倍数关系的剔掉,然后用容斥原理搜索一下. 这里的容斥很像小学学的那个“班上有n个同学,有a个同学喜欢数学,b个同学喜欢语文……”那样. #include<cstd ...

  4. bzoj 2005 & 洛谷 P1447 [ Noi 2010 ] 能量采集 —— 容斥 / 莫比乌斯反演

    题目:bzoj 2005 https://www.lydsy.com/JudgeOnline/problem.php?id=2005   洛谷 P1447 https://www.luogu.org/ ...

  5. luogu 5505 [JSOI2011]分特产 广义容斥

    共有 $m$ 种物品,每个物品 $a[i]$ 个,分给 $n$ 个人,每个人至少要拿到一件,求方案数. 令 $f[i]$ 表示钦定 $i$ 个没分到特产,其余 $(n-i)$ 个人随便选的方案数,$g ...

  6. luogu P4515 [COCI2009-2010#6] XOR

    luogu P4515 [COCI2009-2010#6] XOR 描述 坐标系下有若干个等腰直角三角形,且每个等腰直角三角形的直角顶点都在左下方,两腰与坐标轴平行.被奇数个三角形覆盖的面 积部分为灰 ...

  7. [Luogu P1450] [HAOI2008]硬币购物 背包DP+容斥

    题面 传送门:https://www.luogu.org/problemnew/show/P1450 Solution 这是一道很有意思的在背包里面做容斥的题目. 首先,我们可以很轻松地想到暴力做背包 ...

  8. Luogu P2567 [SCOI2010]幸运数字 容斥+脑子

    双倍经验:BZOJ 2393 Cirno的完美算数教室 做法:先把$[1,r]$中所有的幸运数字筛出来,然后用这些幸运数字来筛$[l,r]$中的近似幸运号码: 剪枝:当一个幸运数字$a[i]$是另一个 ...

  9. 【BZOJ4596】【Luogu P4336】 [SHOI2016]黑暗前的幻想乡 矩阵树定理,容斥

    同样是矩阵树定理的裸题.但是要解决它需要能够想到容斥才可以. \(20\)以内的数据范围一定要试试容斥的想法. #include <bits/stdc++.h> using namespa ...

随机推荐

  1. CSS3 transform详解,关于如何使用transform

    transform是css3的新特性之一.有了它可以box module变的更真实,这篇文章将全面介绍关于transform的使用. transform的作用 transform可以让元素应用 2D ...

  2. 【线型DP】CF1012C Hills 小山坡

    来了来了. 题目: 给你n个数,你一次操作可以把某一个数-1(可以减为负数),你的目标是使任意的k个数严格小于它旁边的两个数(第一个数只用严格小于第二个数,第n个数只用严格小于第n-1个数),问最少需 ...

  3. 洛谷CF1292A NEKO's Maze Game,还是思维。。。

    题目直接找链接 题意: 有一个2*n大的平面,有的格子不能走,有的格子可以走,最初状态所有格子都可以走,有q个操作,每个操作都把某个格子变化一下:能走变不能走,不能走变能走,输出每次操作之后能否从1, ...

  4. List集合的遍历方式

    遍历List集合的三种方法 List list = new ArrayList(); list.add("aaa"); list.add("bbb"); lis ...

  5. 12.Clear Flags属性与天空盒

    选中Hierarchy面板的摄像机,然后在右侧Inspector面板的Clear Flags属性可以找到有如下选项, SkyBox:天空盒(默认效果,让场景看着有一个天空) Solid Color:固 ...

  6. HDFS概述及其优缺点

    HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统.H ...

  7. Java工具类之:包装类

    Java工具类--包装类 我们都知道,JDK 其实给我们提供了很多很多 Java 开发者已经写好的现成的类,他们其实都可以理解成工具类,比如我们常见的集合类,日期相关的类,数学相关的类等等,有了这些工 ...

  8. 二、python 中五种常用的数据类型

    一.字符串 单引号定义: str1 = 'hello' 双引号定义: str1 = "hello" 三引号定义:""" 人生苦短, 我用python! ...

  9. python PEP8开发规范

    为了使得代码更美观,方便阅读,建议遵循下PEP8规范 每行长度最大不要超过79. 换行可以使用反斜杠,换行点要在操作符的后面敲回车. 类个top-level函数定义之间空两行:类中的方法定义之间空一行 ...

  10. Ethical Hacking - GAINING ACCESS(1)

    Gaining Access Introduction Everything is a computer Two main approaches (1)Server Side Do not requi ...