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. ie浏览器不支持多行隐藏显示省略号

    平时在写页面过程中,相信大家都遇到过文本显示多行后用省略号代替的问题,来看看代码: p{ display: -webkit-box; overflow: hidden; text-overflow: ...

  2. Mysql中Union和OR性能对比

    博客已搬家,更多内容查看https://liangyongrui.github.io/ Mysql中Union和OR性能对比 在leetcode上看到一篇文章,整理一下 参考:https://leet ...

  3. 常用js代码片段(一)

    1.如果数组所有元素都满足函数条件,则返回true.调用时,如果省略第二个参数,则默认传递布尔值. const all= (arr, fn=Boolean) => arr.every(fn); ...

  4. day45 数据库基础

    目录 一.存储引擎 二.数据类型 1 整形 2 浮点型 3 字符类型 3.1 类型 3.2 举例验证区别 3.3 对比优缺点 4 日期类型 5 枚举和集合类型 一.存储引擎 不同的存储引擎对应着不同的 ...

  5. bzoj3622已经没有什么好害怕的了

    bzoj3622已经没有什么好害怕的了 题意: 给n个数Ai,n个数Bi,将Ai中的数与Bi中的数配对,求配对Ai比Bi大的比Bi比Ai大的恰好有k组的方案数.n,k≤2000 题解: 蒟蒻太弱了只能 ...

  6. Python 如何生成 200 个激活码

    请用 Python 如何生成 200 个激活码. 激活码的格式为asqE-9xRK-lqWU-QkMT 要求1: 使用随机生成时,生成数字概率为1/5,大写字母和小写字母概率各为2/5 要求2: 这2 ...

  7. 给咱的WP站点搬家

    前言 WordPress 作为全球最流行的博客系统,使用简单,功能丰富,用它来建站的用户非常多.对于站长们来说,网站搬家也是少不了的,有时我们需要更换主机空间,把网站从一个服务器迁移到另一个服务器上, ...

  8. 生态 | Apache Hudi集成Alluxio实践

    原文链接:https://mp.weixin.qq.com/s/sT2-KK23tvPY2oziEH11Kw 1. 什么是Alluxio Alluxio为数据驱动型应用和存储系统构建了桥梁, 将数据从 ...

  9. 原来python还可以这样处理文件

    首先我为大家介绍一下python语言吧! Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言 ...

  10. jsp课堂笔记3

    Http协议是一种无状态协议,一个用户向服务器发出请求(request),然后服务器返回响应(response),在服务端不保留链接相关信息.session对象可以使服务器记住当前用户   reque ...