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. ...
随机推荐
- AngularJS日期格式化
本地化日期格式化:({{ today | date:'medium' }}) Mar 28, 2016 6:42:25 PM({{ today | date:'short' }}) 3/28 ...
- 洛谷 P2580 于是他错误的点名开始了
题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900). ...
- Android(java)学习笔记172:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)
1. 接口 接口可以隐藏代码内部的细节,只暴露程序员想暴露的方法 2. 利用上面的思想优化之前的案例:服务(service)之绑定服务调用服务里面的方法,如下: (1)这里MainActivity.j ...
- v8引擎详解
引用网址: https://blog.csdn.net/swimming_in_it_/article/details/78869549 前言 JavaScript绝对是最火的编程语言之一,一直具有很 ...
- OpenCV2:第六章 图像几何变换
一.简介 图像的几何变换有距离变换 坐标映射 平移 镜像 旋转 缩放 仿射变换等 二.重映射 把一张图像重新排列像素,比如倒置 CV_EXPORTS_W void remap( InputArr ...
- 函数内部属性之arguments和this
在函数内部,有两个特殊的对象:arguments和this. 1.arguments arguments是一个类数组对象.包含着传入函数中的所有参数.但这个对象还有一个名叫callee的属性,该属性是 ...
- bzoj 1098 [POI2007] 办公楼 biu
# 解题思路 画画图可以发现,只要是两个点之间没有相互连边,那么就必须将这两个人安排到同一个办公楼内,如图所示: 那,我们可以建立补图,就是先建一张完全图,然后把题目中给出的边都删掉,这就是一张补图, ...
- luogu P1462 通往奥格瑞玛的道路--spfa+二分答案
P1462 通往奥格瑞玛的道路 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡 ...
- linux下使用docker方式部署ftp服务器
linux环境下部署vsftpd比较繁琐,可以直接使用docker官方仓库中的pure-ftpd镜像来部署ftp服务器. 下载镜像 docker pull stilliard/pure-ftpd:ha ...
- MySQL redo log 与 binlog 的区别
MySQL redo log 与 binlog 的区别 什么是redo log 什么是binlog redo log与binlog的区别 1. 什么是redo log? redo log又称重做日志文 ...