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. Win32汇编语言021 - 053
  2. 向json对象中添加数组
  3. Table 'mysql.plugin' doesn't exist引发de血案
  4. Nginx 代理服务的配置说明
  5. centos6.5 安装 kong 网关
  6. 每日一题(36)—— 什么是预编译 , 何时需要预编译?
  7. Mendix入局中国低代码,开发者们你准备好了吗
  8. 国庆出游,这个银行卡大小的充电宝一定要带
  9. qweb加html文件,将本地html文件加载到Pyside QwebVi中
  10. Tips--解决BeatsX开机白灯闪三下无法连接问题(附拆机教程)
  11. mysql first value_开窗函数 First_Value 和 Last_Value
  12. Yii GridView
  13. 今天懒一次 豆瓣电影Top250
  14. 计算机程序设计c++ 10-2:析构函数
  15. linux i386 4G内存,Ubuntu i386 使用4G内存
  16. 图像增强(1-灰度级变换)—内涵MATLAB源码
  17. Esp8266 -- 心知天气get请求及url讲解说明
  18. 程序员必须 知道的英语单词
  19. 关于软件测试的基础认知分享
  20. 计算机导论课后总结五

热门文章

  1. 服务器租用的速度受什么影响
  2. 批量删除所有文件名称中的英文字母
  3. 质量基础设施一站式公共服务平台建设,NQI系统开发
  4. 第2节-分支和循环语句
  5. Antv L7地图可视化
  6. 大厂都是怎么进行SQL调优的?
  7. 数字孪生实战案例——智慧寺院解决方案
  8. uci2019计算机录取,最新 | 加州大学各分校2019年申请数据公开,录取率再降低,凉到心底!...
  9. 项目开发中引入外部字体库
  10. Springboot+Mysql实现驾校课程在线预约系统源码附带运行视频