2015轻院校赛 D 社交网络(排列组合)
http://acm.zznu.edu.cn/problem.php?id=1964
题目描述

输入

输出

样例输入
2
2 1
0 1
1 0
3 1
0 1 1
1 0 1
1 1 0
样例输出
0.500
1.125
提示

之前想了一个公式 就是0.5*pow(0.5,k)*C(k,n);
k是至少认识k个人 n是认识n个人
后来队友都把所有的东西都写出来了我才去验证第二个测试数据 发现是错的 当时真的想自己从五楼上跳下来
正确的公式应该是
for(i=k;i<=n;i++)
{
ans+=0.5*pow(0.5,n)*C(i,n);
}
现在想想真是很有道理啊
当时为啥就是蒙蔽呢
#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <cmath> using namespace std; int num[];
int x1[];
int x2[];
int s[][]; void Init(int n)
{
memset(s, , sizeof(s));
for(int i=; i<=n; i++)
{
int x=i;
for(int j=; j<=i; j++)
{
if(x%j==)
{
s[i][j]++;
x/=j;
j--;
}
}
}
} long long c(int n, int k)
{
memset(x1, , sizeof(x1));
memset(x2, , sizeof(x2));
for(int i=; i<=k; i++)
{
for(int j=; j<=i; j++)
{
x1[j] += s[i][j];
}
}
for(int i=n-k+; i<=n; i++)
{
for(int j=; j<=i; j++)
{
x2[j] += s[i][j];
}
}
for(int i=; i<=; i++)
{
x2[i]-=x1[i];
}
long long ans=;
for(int i=; i<=; i++)
{
for(int j=; j<=x2[i];j++)
{
ans*=i;
}
}
return ans;
} double solve(int n, int k)
{
double ans=;
for(int i=k;i<=n;i++)
{
ans += 0.5*c(n, i)*pow(0.5, n);
} return ans;
} int main()
{
int t;
int n, k;
int x;
scanf("%d", &t);
Init();
while(t--)
{
scanf("%d%d", &n, &k);
for(int i=; i<=n; i++)
{
int sum1=;
for(int j=; j<=n; j++)
{
scanf("%d", &x);
if(x==)
sum1++;
}
num[i]=sum1;
}
double ans=;
for(int i=; i<=n; i++)
{
if(num[i]>=k)
{
ans+=solve(num[i],k);
}
}
printf("%.3lf\n", ans);
} return ;
}
2015轻院校赛 D 社交网络(排列组合)的更多相关文章
- 2015轻院校赛 B 迷宫 (bfs)
http://acm.zznu.edu.cn/problem.php?id=1967 这套题的有毒 我交了好多遍才对 坑:机关要按照顺序走 并且在走这个机关之前不能走这个机关 但是能穿过这个机关 ...
- 【DFS+堆的二叉树结构】15轻院校赛-J-堆
[题目链接:J-堆] 1734: 堆 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 239 Solved: 113 SubmitStatusWeb B ...
- 轻院校赛-zzuli 2266: number【用每位的二进制的幂的和来进行hash(映射)处理】
zzuli 2266: number 大致题意: 给定n,问有多少数对<x, y>满足: x, y∈[1, n], x < y x, y中出现的[0, 9] ...
- 【二叉树、堆】15轻院校赛-J-堆
原题:http://acm.zzuli.edu.cn/problem.php?cid=1099&pid=9 [描述] [输入] [输出] Sample Input 3 1 10 3 10 5 ...
- Digit Division(排列组合+思维)(Gym 101480D )
题目链接:Central Europe Regional Contest 2015 Zagreb, November 13-15, 2015 D.Digit Division(排列组合+思维) 题解: ...
- 【COGS】2287:[HZOI 2015]疯狂的机器人 FFT+卡特兰数+排列组合
[题意][COGS 2287][HZOI 2015]疯狂的机器人 [算法]FFT+卡特兰数+排列组合 [题解]先考虑一维的情况,支持+1和-1,前缀和不能为负数,就是卡特兰数的形式. 设C(n)表示第 ...
- 学习sql中的排列组合,在园子里搜着看于是。。。
学习sql中的排列组合,在园子里搜着看,看到篇文章,于是自己(新手)用了最最原始的sql去写出来: --需求----B, C, F, M and S住在一座房子的不同楼层.--B 不住顶层.C 不住底 ...
- .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)
今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinatorics组件的使用情况,其实这个组件我5年前就开始用了,非常方便,麻雀虽小五脏俱全.所以一直非常喜欢,才写了几 ...
- 【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合
本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...
随机推荐
- Can't locate ExtUtils/MakeMaker.pm in @INC
Can't locate ExtUtils/MakeMaker.pm in @INC 解决办法:yum install perl-devel
- Android主题更换换肤
知识总览android主题换肤通常借助LayoutInflater#setFactory实现换肤. 换肤步骤: 通过解析外部的apk压缩文件,创建自定义的Resource对象去访问apk压缩文件的资源 ...
- 树状数组 || POJ 2352 Stars
Astronomers often examine star maps where stars are represented by points on a plane and each star h ...
- manjaro利用docker使用MySQL
使用docker安装MySQL并使用 安装docker: sudo yaourt -S docker 使用docker安装mysql: systemctl start docker # 启动docke ...
- python interview questions
referce:python interview questions top 50 refercence:python interview questions top 15 summary Q: wh ...
- swift中的as?和as!
as操作符用来把某个实例转型为另外的类型,由于实例转型可能失败,因此Swift为as操作符提供了两种形式:选项形式as?和强制形式as 选项形式(as?)的操作执行转换并返回期望类型的一个选项值,如果 ...
- spring注解开发-扩展原理(源码)
1.BeanFactoryPostProcessor BeanPostProcessor:bean后置处理器,bean创建对象初始化前后进行拦截工作的; BeanFactoryPostProcesso ...
- js检测对象是否是数组
js检测对象是否是数组 可以通过instanceof 方法一. var arr=[] arr instanceof Array //true var obj={} obj instanceof A ...
- spring tool suite (sts) 创建springmvc(没有实践)
摘自:STS(Spring Tool Suite)建立默认的spring mvc项目 老外的原创,网址:http://www.codejava.NET/frameworks/spring/spring ...
- fshc模块fsch2mcu_if理解
fshc2mcu_if中包括ahb2reg/ahb2fifo两个文件,都是协议转换文件.ahb2reg下游文件是reg files,ahb2fifo下游文件是fifo控制器.所有的配置和flag都是要 ...