http://codeforces.com/gym/102803/problem/D

题意:

给出一个(0,0,0)(a,b,c)的长方体,有一个Ax+By+Cz+D=0Ax+By+Cz+D=0Ax+By+Cz+D=0的平面,除了D以外的变量都已经给出,与棱交点的个数可能为(3,4,5,6),求D变化时各种答案的概率。

解析:

枚举长方体每条边,都会得到3个式子,例如:x=0,y=b,z∈[0,c]x=0,y=b,z\in[0,c]x=0,y=b,z∈[0,c],从而带入平面方程得出D的变化范围。

例如[l,r][l,r][l,r],说明D∈[l,r]D\in[l,r]D∈[l,r]时交这条边。然后拆成[l,1][r,−1][l,1][r,-1][l,1][r,−1]搞一下即可。

代码:

/**  Author : Jk_Chen*    Date : 2020-11-07-15.07.40*/
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define rep(i,a,b) for(int i=(int)(a);i<=(int)(b);i++)
#define per(i,a,b) for(int i=(int)(a);i>=(int)(b);i--)
#define mmm(a,b) memset(a,b,sizeof(a))
#define pb push_back
#define pill pair<int, int>
#define fi first
#define se second
#define debug(x) cerr<<#x<<" = "<<x<<'\n';
const LL mod=1e9+7;
const int maxn=1e5+9;
const int inf=0x3f3f3f3f;
LL rd(){ LL ans=0; char last=' ',ch=getchar();while(!(ch>='0' && ch<='9'))last=ch,ch=getchar();while(ch>='0' && ch<='9')ans=ans*10+ch-'0',ch=getchar();if(last=='-')ans=-ans; return ans;
}
#define rd rd()
/*_________________________________________________________begin*/LL p[2][3];
LL Pow(LL a,LL b,LL mod=mod){if(a>=mod)a%=mod;LL res=1;while(b>0){if(b&1)res=res*a%mod;a=a*a%mod;b>>=1;}return res;
}
/*_________________________________________________________Pow*/
vector<pill>v;
void f(int i,int s1,int s2){int j=0,k=0;while(j==i)j++;while(k==i||k==j)k++;LL dl=0,dr=p[0][i]*p[1][i];if(s1)dl+=p[0][j]*p[1][j],dr+=p[0][j]*p[1][j];if(s2)dl+=p[0][k]*p[1][k],dr+=p[0][k]*p[1][k];if(dl>dr)swap(dl,dr);v.pb({dl,1});v.pb({dr,-1});
}
int main(){int t=rd;while(t--){v.clear();rep(i,0,1)rep(j,0,2)p[i][j]=rd;rep(i,0,2)rep(j,0,1)rep(k,0,1)f(i,j,k);sort(v.begin(),v.end());LL cnt[10];LL all=0;mmm(cnt,0);int now=0;for(int i=0;i<v.size();){int j=i;while(j+1<v.size()&&v[i].fi==v[j+1].fi)j++;rep(_,i,j){now+=v[_].se;}if(j+1<v.size()){(cnt[now]+=v[j+1].fi-v[i].fi)%=mod;(all+=v[j+1].fi-v[i].fi)%=mod;}i=j+1;}all=Pow(all,mod-2);rep(i,3,6){printf("%lld%c",cnt[i]*all%mod," \n"[i==6]);}}return 0;
}/*_________________________________________________________end*/

D. Death by Thousand Cuts(立体几何)相关推荐

  1. The 15th Heilongjiang Provincial Collegiate Programming Contest题解 gym102803

    The 15th Heilongjiang Provincial Collegiate Programming Contest题解 gym102803 前言 题目 A. August B. Bills ...

  2. rest接口案例_REST和平:微服务与现实案例中的整体

    rest接口案例 by RDX 由RDX REST和平:微服务与现实案例中的整体 (REST in Peace: Microservices vs monoliths in real-life exa ...

  3. 写一个杀戮尖塔存档修改器

    软件及源码下载 1. 前言 之前杀戮尖塔打折了,然后 买了这个游戏,游戏很好玩,所以我简单研究了一下游戏.游戏是java写的,那么几乎可以看到他的完整源码了. 这个软件前前后后我差不多我写了一周了.所 ...

  4. DSGN:基于深度立体几何网络的3D目标检测(香港大学提出)

    主要思想与创新点 大多数最先进的三维目标检测器严重依赖激光雷达传感器.由于在三维场景中的预测不准确,基于图像的方法与基于激光雷达的方法在性能上仍有很大差距.本文提出了深度立体几何网络(DSGN)的方法 ...

  5. IDEA(IntelliJ IDEA)+常用快捷键(short cuts)

    IDEA(IntelliJ IDEA)+常用快捷键(short cuts) IntelliJ idea(以下简称idea) 是目前最好用的代码编辑器之一.掌握idea的快捷键是一项很重要的能力,虽然不 ...

  6. MT to Death,专访 ACL Fellow刘群,一个NLPer的极致表白

    导读:2022年1月6日,国际计算语言学学会ACL正式公布了2021年ACL Fellow名单,机器翻译专家.华为诺亚方舟实验室语音语义首席科学家刘群当选为全球八位新晋ACL Fellow之一. 我们 ...

  7. ad走线画直线_作为立体几何的热点,直线与平面的平行关系,到处都是考试的影子...

    在高考数学里,空间直线与平面的平行有关的知识内容和题型,一直是近几年高考命题的热点,成为立体几何重要的基础考点.如何巧妙快速的判定空间直线与平面平行位置关系,如何在平面内寻找一条直线,探索该直线与平面 ...

  8. freeglut中提供的几种立体几何对象绘制的android移植

    在freeglut_geometry.c中定义了几种常见图形的绘制,包括立方体, 球面, 圆锥体, 圆柱体, 圆环面, 十二面体, 八面体, 四面体, 二十面体, 菱形十二面体(斜十二面体)等几种立体 ...

  9. Reading papers_15(Graph cuts optimization for multi-limb human segmentation in depth maps)

    如果大家有用过kinect做开发,不管是使用kinect SDK还是使用OpenNI,估计都对这些库提供的人体骨骼跟踪技术有一定的好奇,心里在想,每个人穿的衣服不同,身体特点也不同,所处的环境不同,且 ...

最新文章

  1. 为什么说python是世界上最好的语言-Python才是世界上最好的语言
  2. pytorch 中的 @ 和 * 运算符
  3. html转markdown_markdown转html带目录和图片压缩
  4. 牛客 216 C 小K的疑惑
  5. WEB文件上传之apache common upload使用(一)
  6. 关于@DateTimeFormat 和 @JsonFormat 注解
  7. python现在时间减去过去时间等于20分钟怎么写_获取当前时间减去10分钟的话SQL语句怎么写...
  8. python随机函数笔记_Python笔记__random
  9. matlab memorySian,matlab内存溢出的解决方案
  10. 三菱plc分拣程序_三菱PLC实现电梯控制方案,含全套程序设计
  11. 手机qq邮箱html,QQ邮箱
  12. 40个好用的Unity游戏开发插件大合集
  13. 特征工程——特征选择
  14. 读文献--《U-Net: Convolution Networks for Biomedical Image Segmentation 》
  15. bboss ioc快速入门教程
  16. 如何用代码画出一幅好看的画
  17. 阿里云服务器完全卸载AliYun监控教程
  18. Oracle - Spool导出数据到TXT文件
  19. 我看所谓“汉语编程”
  20. 【元胞自动机】基于元胞自动机的人口疏散仿真matlab代码

热门文章

  1. 服务器桌面图标显示在哪里打开,电脑桌面图标消失了怎么解决_网站服务器运行维护,电脑,图标...
  2. 一阶零输入响应例题_RL 一阶电路的零输入响应, 按指数规律衰减, 按指数规律衰减。_学小易找答案...
  3. Unity LensFlares(镜头炫光)踩坑以及解决总结
  4. SpringMVC+Vue项目停车场管理系统
  5. html页面布局A4模板,A4页面就像html中的布局
  6. lisp封装为vlx方法_将VLDCL的FAS编译进VLX
  7. 概率逻辑——一辆跑车与两只山羊(理论分析+python实现)
  8. VSU堆叠  VAC堆叠
  9. 添加winods临时字体的方法
  10. STM32CubMX_MQ135检测空气质量