传送门

分析

对于这道题,我们首先思考一个贪心策略,即对于所有我们要打败的厨师我们肯定可以先打败需使用帮助次数少的厨师再打败需使用帮助次数多的厨师 ,因为这样可以使得能支付得起帮助费用的可能性尽可能的大。在确定顺序之后我们便可以进行dfs啦,只需要在搜索过程中加一些可行性剪枝和最优性剪枝就行了。

代码

#include<bits/stdc++.h>
using namespace std;
#define li long long
const li inf = 1e12+;
int w[],c[],n,x,used[];
double pw[];
li ans=inf,all;
inline void dfs(int k,int wh,double m,double sum){
if((li)(sum+0.5)>=ans)return;
if(m>=){
ans=(li)(sum+0.5);
return;
}
if(m<double(k)*double(x))return;
if(m+double(all)/pw[k]<)return;
for(int i=wh;i<=n;i++)
if(!used[i]&&double(w[i])/pw[k]>double(k)*x){
used[i]=;all-=w[i];
dfs(k,i,m+double(w[i])/pw[k]-double(k)*x,sum+c[i]/pw[k]);
used[i]=;all+=w[i];
}
dfs(k+,,m,sum);
}
int main(){
int i,t;
pw[]=;
for(i=;i<=;i++)pw[i]=pw[i-]*;
scanf("%d",&t);
while(t--){
memset(used,,sizeof(used));
scanf("%d%d",&n,&x);
ans=inf;all=;
for(i=;i<=n;i++){
scanf("%d%d",&c[i],&w[i]);
all+=w[i];
}
dfs(,,,);
if(ans==inf)puts("impossible");
else printf("%lld\n",ans);
}
return ;
}

Evil Book -- CodeChef的更多相关文章

  1. 【BZOJ-3514】Codechef MARCH14 GERALD07加强版 LinkCutTree + 主席树

    3514: Codechef MARCH14 GERALD07加强版 Time Limit: 60 Sec  Memory Limit: 256 MBSubmit: 1288  Solved: 490 ...

  2. code forces 383 Arpa's loud Owf and Mehrdad's evil plan(有向图最小环)

    Arpa's loud Owf and Mehrdad's evil plan time limit per test 1 second memory limit per test 256 megab ...

  3. C#Light/Evil合体啦

    决定将C#Light和C#Evil合并成一个项目,毕竟C#Evil包含C#Light所有的功能,分开两个,基本的表达式方面有什么bug还得两头改 暂时就C#Light/Evil这么叫吧,庆祝合体,画了 ...

  4. C#最良心脚本语言C#Light/Evil,Xamarin\WP8\Unity热更新最良心方案,再次进化.

    C#Light的定位是嵌入式脚本语言,一段C#Light脚本是一个函数 C#Evil定位为书写项目的脚本语言,多脚本文件合作,可以完全用脚本承载项目. C#Light/Evil 使用完全C#一致性语法 ...

  5. Java unserialize serialized Object(AnnotationInvocationHandler、ysoserial) In readObject() LeadTo InvokerTransformer(Evil MethodName/Args)

    Java unserialize serialized Object(AnnotationInvocationHandler.ysoserial) In readObject() LeadTo Tra ...

  6. 只有文本编辑器才是王道, 什么ide都是evil的浮云, 看看linus linux的内核开发工具vim emacs

    只有文本编辑器才是王道, 什么ide都是evil的浮云, 看看linus linux的内核开发工具vim emacs [ide is evil] (http://i.cnblogs.com/EditP ...

  7. 【BZOJ4260】 Codechef REBXOR 可持久化Trie

    看到异或就去想前缀和(⊙o⊙) 这个就是正反做一遍最大异或和更新答案 最大异或就是很经典的可持久化Trie,从高到低贪心 WA: val&(1<<(base-1))得到的并不直接是 ...

  8. D. Book of Evil

    D. Book of Evil time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  9. Gym 100463D Evil DFS

    Evil Time Limit: 5 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100463/attachments Descri ...

随机推荐

  1. C++ 静态常量

    #include<iostream> #include<stdexcept> #include <map> using namespace std; class n ...

  2. POJ - 2079:Triangle (旋转卡壳,求最大三角形)

    Given n distinct points on a plane, your task is to find the triangle that have the maximum area, wh ...

  3. Node.js + Express

    相关链接: 1.https://www.jianshu.com/p/db4df1938eca 2.前端发起GET请求:http://localhost:3000/api/login?name=admi ...

  4. Linux动态gif图的录制

    Linux动态gif图的录制 Linux动态gif图的录制 byzanz的安装与使用 recordmydesktop再convert成gif 参考资料 前几天写了两篇博客vim的配置和Vim的自动代码 ...

  5. python之 python 起源、语言特点

    一. 1.1  什么是 PythonPython 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性.它可以帮你完成工作,而且一段时间以后,你还能 ...

  6. 伪元素after,before,css/js控制样式

    CSS<style> body { font: 200%/1.45 charter; } ref::before { content: '\00A7'; letter-spacing: . ...

  7. docker镜像的导入和导出

    启动命令 docker run -d -p 3000:80 twang2218/gitlab-ce-zh:9.0.3 docker run -d -p 8080:80 gitlab/gitlab-ce ...

  8. centos7 安装 mysql-python时 报错 EnvironmentError: mysql_config not found

    pip install mysql-python 然后报错 EnvironmentError: mysql_config not found 网上搜解决方法,需要安装   mysql-devel 然后 ...

  9. PIX v2版本中Query 失败时, ERR段的构造

    在ITI-9中描述PIX query事务的几个TestCase场景.其中有些是对于Query失败的描述. ERR 段包含Error location, Error code, Error code t ...

  10. java继承实例基础

    总结:多态.重写.构造方法调用 package com.a; public class fsd { int a = 23; public fsd() { System.out.println(4444 ...