uoj#352. 新年的五维几何(概率期望+爆搜)
我还以为这是个五维半平面交呢……结果没看数据范围……
//minamoto
#include<bits/stdc++.h>
#define R register
#define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
const int N=7;
int l[N],r[N],a[N][N],vis[N],x[N],to[N],f[(1<<5)+5];
int n,tot,ans,lim,sum,res;
void solve(){
fp(i,1,n)fp(j,1,n){
if(x[i]-x[j]-a[i][j]<0)return;
if(x[i]-x[j]-a[i][j]>0)continue;
if(l[i]==r[i]&&l[j]!=r[j])return;
}
memset(f,0,sizeof(f));
memset(to,0,sizeof(to));
fp(i,1,n)if(!vis[i]){
fp(j,1,n)if(!vis[j]&&i!=j){
if(x[i]-x[j]-a[i][j]==0)to[j-1]|=(1<<(i-1));
}
}
f[0]=1;
fp(i,1,(1<<n)-1)fp(j,0,n-1)if((i>>j&1)&&(i&to[j])==to[j])f[i]+=f[i^(1<<j)];
ans+=f[lim];
}
void dfs(int pos){
if(pos==n+1)return solve();
if(vis[pos])dfs(pos+1);
else{
fp(i,l[pos],r[pos]-1)x[pos]=i,dfs(pos+1);
}
}
int main(){
// freopen("testdata.in","r",stdin);
scanf("%d",&n);
fp(i,1,n){
scanf("%d%d",&l[i],&r[i]);
if(l[i]==r[i])vis[i]=1,x[i]=l[i];
}
fp(i,1,n)fp(j,1,n)scanf("%d",&a[i][j]);
fp(i,1,n)if(a[i][i]>0)return puts("0"),0;
fp(i,1,n)if(!vis[i])lim|=(1<<(i-1));
dfs(1);
sum=1;
fp(i,1,n)if(l[i]!=r[i])sum*=r[i]-l[i],++res,sum*=res;
printf("%.10lf\n",1.0*ans/sum);
return 0;
}
uoj#352. 新年的五维几何(概率期望+爆搜)的更多相关文章
- uoj#399. 【CTSC2018】假面(概率期望)
传送门 记\(p_{i,j}\)为\(i\)还剩\(j\)滴血的概率,那么\(i\)最后血量的期望就是\[E_i=\sum_{j=0}^{m_i}j\times p_{i,j}\] 然后\(p\)数组 ...
- UOJ#196. 【ZJOI2016】线段树 概率期望,动态规划
原文链接www.cnblogs.com/zhouzhendong/p/UOJ196.html 题解 先离散化,设离散化后的值域为 $[0,m]$ . 首先把问题转化一下,变成:对于每一个位置 $i$ ...
- [UOJ#351]新年的叶子
[UOJ#351]新年的叶子 试题描述 躲过了AlphaGo 之后,你躲在 SingleDog 的长毛里,和它们一起来到了AlphaGo 的家.此时你们才突然发现,AlphaGo 的家居然是一个隐藏在 ...
- 2015北京网络赛 J Clarke and puzzle 求五维偏序 分块+bitset
Clarke and puzzle Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acmicpc20 ...
- hiho#1513 : 小Hi的烦恼 五维偏序
hiho#1513 : 小Hi的烦恼 五维偏序 链接 hiho 思路 高维偏序用bitset,复杂度\((\frac{n^2}{32})\) 代码 #include <bits/stdc++.h ...
- hihocoder #1236 Scores (15北京赛区网络赛J) (五维偏序,强制在线,bitset+分块)
链接:http://hihocoder.com/problemset/problem/1236 思路; 有n个五维的向量,给出q个询问,每个询问是一个五维向量,问有多少个向量没有一维比这个向量大.并且 ...
- hihoCoder.1513.小Hi的烦恼(bitset 五维偏序)
题目链接 五维偏序,对每一维维护bitset,表示哪儿为1(比它大),然后5个bitset与起来就能得到答案了. 具体实现可以用5*n个bitset,按排名搞个前缀和. 复杂度\(O(n^2/w)\) ...
- 【整理】STL中的bitset(二进制华丽解决假五维偏序题)
------------更多Bitset的运用,请看这里http://www.cnblogs.com/hua-dong/p/8519739.html. 由于在学cdq分治,看到了这道题.先来看一道题目 ...
- HihoCoder - 1513 bitset处理五维偏序
题意:给出\(n<3e4\)个有序组\((a,b,c,d,e)\),求对第\(i\)个有序组有多少个\(j\)满足\((a_j<a_i,b_j<b_i,c_j<c_i,d_j& ...
随机推荐
- mongo简介
MongoDB MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服 ...
- 编辑框的WM_MOUSELEAVE和WM_MOUSEHOVER使用
// 参考资料 // http://www.cnblogs.com/weiqubo/archive/2011/04/14/2016323.html 最近工作需要,需要自定义编辑框,改写编辑框CEdit ...
- Mac OS访问Windows共享文件夹
原文地址:http://blog.csdn.net/jinhill/article/details/7246922 最近开始研究Mac OS,遇到的第一个问题就是如何在Mac OS中访问Windows ...
- C# 关于线程锁lock的使用方法
C# 关于线程锁lock的使用方法 原创 2016年09月02日 10:07:05 标签: c# / 线程 / 锁 / lock 11937 在多线程编程中,可能会有许多线程并发的执行一段代码(代码块 ...
- javascript(6)
javascript的冒泡排序 var arr=[5,0,-56,900,12]; //大的排序次数(arr.length-1) var flag=false; for(var i=0;i<=a ...
- L97
We are young. So let's set the world on fire. We can burn brighter than the sun.我们是青年,让我们点亮世界,释放生命,胜 ...
- listen and translation exercise 52
Two years ago my husband bought me a bicycle. Twenty of the thirty-five years I ran my own business. ...
- codeforces 658C C. Bear and Forgotten Tree 3(tree+乱搞)
题目链接: C. Bear and Forgotten Tree 3 time limit per test 2 seconds memory limit per test 256 megabytes ...
- 机器学习: R-CNN, Fast R-CNN and Faster R-CNN
做语义分割的大概都知道这几篇文章了,将一个传统的计算机视觉模型,用CNN一点一点的替换,直到最后构建了一个完整的基于CNN的端到端的模型.这几篇文章有一定的连贯性.从中可以看到一种研究的趋势走向. 上 ...
- CodeForces 547E:Mike and Friends(AC自动机+DFS序+主席树)
What-The-Fatherland is a strange country! All phone numbers there are strings consisting of lowercas ...