首页 > 其他 > 详细

打暴力程序的正确做法

时间:2019-11-09 17:29:05      阅读:84      评论:0      收藏:0      [点我收藏+]

卡时大法!!!!
例如这道题
题目描述
小C得到了一个非常神奇的序列A。这个序列长度为N,下标从1开始。A的一个
子区间对应一个序列,可以由数对[l,r]表示,代表A[l], A[l + 1], ..., A[r]这段数。
对于一个序列B[1], B[2], ..., B[k],定义B的中位数如下:

  1. 先对B排序。得到新的序列C。
  2. 假如k是奇数,那么中位数为 。假如k为偶数,中位数为 。
    对于A的所有的子区间,小N可以知道它们对应的中位数。现在小N想
    知道,所有长度>=Len的子区间中,中位数最大可以是多少。
    数据范围: 30%: n <= 200
    60%: n <= 2000
    另外有20%:不超过50个不同的数
    100%:\(1<=Len<=n<=10^5, 1 <= a[i] <= 10^9\)

解:
暴力一看只有30分吧 爆搜卡时也不好
这时候我们就有一个非常强大的函数 那就是 CLOCK!!! 虽然不能保证程序的正确性但是在不超时以及随机数据的情况下 有较大概率 获得很好的分数
比如说 这道题!!!
超级卡时 最后我在oj上交 80pts!!!

具体用法如下

     int st=clock();
                            if(clock()-st>=999)
                {
                    cout<<ans<<endl;
                    return 0;
                }

打暴力程序的正确做法

原文:https://www.cnblogs.com/OIEREDSION/p/11826245.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!