您的位置:首页 > 其它

ACM集训日记-8月12日

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

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];
}    还是迷迷糊糊的,虽然明天是休息,稍微看一下单调队列的东西吧,也算是一个小任务,加油。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: