我們可以暴力枚舉每一個人分幾個糖果,再暴力統計答案即可

每次遞歸下去可以從1-n號人,決定選多少個糖果再遞歸

#include<bits/stdc++.h>
using namespace std;
int n,k;
double a,r,x[1000],y[1000],s;
void get(int d,double p,double ss,int c){
	if(d==n+1){
		if(c>n/2)s+=p;
		else s+=p*(a/((a+ss)));
		return;
	}
	get(d+1,p*y[d]/100.0,ss,c+1);
	get(d+1,p*(100.0-y[d])/100.0,ss+x[d],c);
}
void dfs(int x,int k){
	if(k==0){//用來剪枝
		s=0;
		get(1,1,0,0);
		r=max(r,s);
		return;
	}
	if(x==n+1)return;
	for(int i=0;i<=k;i++)
		if(y[x]+i*10<=100){
			y[x]+=i*10;
			dfs(x+1,k-i);
			y[x]-=i*10;
		}
}
int main(){
	scanf("%d%d%lf",&n,&k,&a);
	for(int i=1;i<=n;i++)
		scanf("%lf%lf",&x[i],&y[i]);
	double ans=0;
	for(int i=1;i<=n;i++)
		ans+=(100.0-y[i]);
	if(ans<=k*10){
		printf("1.000000");
		return 0;
	}
	dfs(1,k);
	printf("%.6lf",r);
}

jzoj2941的更多相关文章

随机推荐

  1. 如何配置Notepad++的C_C++语言开发环境

    相信很多人用notepad++,但把其配置成为C/C++还是需要小折腾一下的.本人在网上找了很长时间,也没有一个统一的答案,而且很多人说的方法根本不管用,而且也不够通用,所以还是自己摸索了一下,分享给 ...

  2. .zip/.rar打包与解压

    Linux下如何解压.zip和.rar文件,对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们: 1)对于zip linux下提供了zip和unzip程序,zip是 ...

  3. loadrunner12-查看controller运行报错详细log

    1.路径为controller-->results-->results setting 2.打开文件夹res/log/***.log,里面会有当前场景运行的log日志. 注:启用这个首先保 ...

  4. 757A Gotta Catch Em' All!

    A. Gotta Catch Em' All! time limit per test 1 second memory limit per test 256 megabytes input stand ...

  5. winsock select 学习代码(2)

    之前文章的改进版 服务器仅仅接受客户端发送的字符串并显示 客户端可以调节发送数目 但是不能超过64 // SelectServer.cpp : 定义控制台应用程序的入口点. // #include & ...

  6. action spring 注入错误,如果检查各项注入都没有错误时,考虑struts 是否配置了namespace(如果你有多个namespace="/")

    [ERROR] 2015-01-04 09:42:35,180 (CommonsLogger.java:38) - Exception occurred during processing reque ...

  7. Python 版本之 Anaconda

    https://www.anaconda.com/download/#linux Anaconda概述 Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windo ...

  8. C语言dos程序源代码分享(进制转换器)

    今天给大家分享一个dos程序的源代码 这个程序是本人在学习中的经验分享 如果有问题或者建议,欢迎大家一起交流 源代码: /*本程序为一个进制转换器 本程序不作为商业用途,完全为技术交流 喜欢C语言的同 ...

  9. 20155333 2016-2017-2 《Java程序设计》第五周学习总结

    20155333 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 1.使用try.catch语法 与C语言中程序流程和错误处理混在一起不同,Java中把正常流 ...

  10. 【转】ORACLE 表空间扩展方法

    转载地址:http://blog.itpub.net/28950170/viewspace-763139/ 第一步:查看表空间的名字及文件所在位置: select tablespace_name, f ...