当前位置: 首页 > news >正文

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;
}

转载于:https://www.cnblogs.com/bztMinamoto/p/10248740.html

相关文章:

  • 自己编写的一个Javascript正则表达式对象
  • 几张关于IT业人才成长的统计图片
  • POJ 2029
  • sed命令教程
  • jquery版本
  • 【M19】了解临时对象的来源
  • NSTimer的详细用法
  • Windows下安装Scrapy方法及常见安装问题总结——Scrapy安装教程
  • c# Winform上传文件
  • Codeforces Round #532 (Div. 2)
  • Ubuntu 图形处理软件
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 创建Windows服务简单流程
  • Airflow成为Apache软件基金会的顶级项目
  • BZOJ 3039: 玉蟾宫
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Android Volley源码解析
  • Consul Config 使用Git做版本控制的实现
  • eclipse(luna)创建web工程
  • IDEA 插件开发入门教程
  • Markdown 语法简单说明
  • MD5加密原理解析及OC版原理实现
  • MySQL主从复制读写分离及奇怪的问题
  • Python中eval与exec的使用及区别
  • React-redux的原理以及使用
  • Solarized Scheme
  • SQLServer之创建数据库快照
  • Vue学习第二天
  • Vue组件定义
  • 百度小程序遇到的问题
  • 解析带emoji和链接的聊天系统消息
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 蓝海存储开关机注意事项总结
  • Java总结 - String - 这篇请使劲喷我
  • PostgreSQL之连接数修改
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​Spring Boot 分片上传文件
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (9)目标检测_SSD的原理
  • (C语言)字符分类函数
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (二)正点原子I.MX6ULL u-boot移植
  • (分布式缓存)Redis哨兵
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (十)T检验-第一部分
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)EOS中账户、钱包和密钥的关系
  • ***利用Ms05002溢出找“肉鸡
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .net 4.0发布后不能正常显示图片问题
  • .Net 代码性能 - (1)
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @EnableConfigurationProperties注解使用