ACM集训日记-8月12日

来源:互联网 发布:网络高弹丝 编辑:程序博客网 时间:2024/06/04 16:04

    嗖的一下,一周就这么过去了,在学校机房已经呆了两周了,时间过得好快啊,虽然在机房里没有什么时间观念,一到周末就感触颇深,也就在这里感叹一番。今天因为系统一个下午都关了,只交上了两道题,第一道题点击打开链接,一开始不知所措,不知道怎么求这个高度,后来上网找了公式才搞出来的,而且是算不出来的,用的二分法逼近的

int judge(double mid)//判断在mid高度下弧度是否为s{    double ans = 2*asin((l/2)/((l*l+4*mid*mid)/(8*mid)))*((l*l+4*mid*mid)/(8*mid));    return ans>=s;}
    之后用常规的二分法就能做出来了,再也不用cin输入了,一用就超时···

    第二道题点击打开链接,是一道单调队列的问题,这是新的知识,还没怎么弄懂,单调队列中元素之间的关系具有单调性,而且,队首和队尾都可以进行出队操作,只有队尾可以进行入队操作,就是一个模板尝试着套了一下

for (int i=1;i<=n;i++)        {            if (!top||a[i]>a[stack[top-1]])            {                stack[top++]=i;                lef[i]=i;                continue;            }            if (a[i]==a[stack[top-1]])continue;            while (top>0&&a[i]<a[stack[top-1]])            {                top--;                tmp=a[stack[top]]*((i-1)-(lef[stack[top]]-1));                res=res<tmp?tmp:res;            }            tmp=stack[top];            stack[top++]=i;            lef[i]=lef[tmp];        }
    还是迷迷糊糊的,虽然明天是休息,稍微看一下单调队列的东西吧,也算是一个小任务,加油。




原创粉丝点击