zoukankan      html  css  js  c++  java
  • BZOJ1224 [HNOI2002]*

    首先发现暴搜是2^50级别,明显T了

    我们搜索的时候,剪枝一下。

    如果当前最大最小值都不满足满足题意的话就不搜了,我们可以用前缀和维护这个东西

    于是就6s卡过

     1 /**************************************************************
     2     Problem: 1224
     3     User: rausen
     4     Language: C++
     5     Result: Accepted
     6     Time:6800 ms
     7     Memory:804 kb
     8 ****************************************************************/
     9  
    10 #include <cstdio>
    11 #include <cmath>
    12  
    13 using namespace std;
    14 typedef double lf;
    15 const lf eps = (lf) 1e-10;
    16 const int N = 60;
    17  
    18 int n, m, ans;
    19 lf x, y, T;
    20 lf s[N];
    21  
    22 void dfs(int pos, int cnt, lf now) {
    23     lf Max = now + s[pos + (n - cnt) - 1] - s[pos - 1],
    24     Min = now + s[m] - s[m - (n - cnt)];
    25     if (Min - T > eps || Max - T < -eps) return;
    26     if (cnt == n) {
    27         ++ans;
    28         return;
    29     }
    30     if (pos == m + 1) return;
    31     dfs(pos + 1, cnt, now);
    32     dfs(pos + 1, cnt + 1, now + (lf) 1 / pos);
    33 }
    34  
    35 int main() {
    36     int i;
    37     scanf("%d%d%lf%lf", &n, &m, &x, &y);
    38     T = (lf) x / y;
    39     for (i = 1; i <= m; ++i)
    40         s[i] = s[i - 1] + (lf) 1 / i;
    41     dfs(1, 0, 0);
    42     printf("%d
    ", ans);
    43     return 0;
    44 }
    View Code

    (p.s.  论c++的坑爹之处:浮点数运算)

    By Xs酱~ 转载请说明 博客地址:http://www.cnblogs.com/rausen
  • 相关阅读:
    【初学EXT】布局练习
    创建型模式总结(补充UML类图)
    数据库基本概念总结
    Word2010操作技巧总结
    VMWare虚拟机磁盘压缩和上网总结
    第一次用word2010发布文章到博客园记
    设计模式学习总结一原则及创建型模式
    为什么要开始写blog?
    Delphi异常处理总结
    设计模式总结之行为型模式
  • 原文地址:https://www.cnblogs.com/rausen/p/4163863.html
Copyright © 2011-2022 走看看