@[小可爱三岁七](/space/show?uid=62490)
这个1000主要是我用1e4就20,1e3就50qaq
改成1e5就10了QAQ
by Loi_Anina @ 2018-10-24 10:04:14
@[Dirt、](/space/show?uid=91889) 锐锐!!!!!!!!!!!!!!!!!!!!!!!!!!
by Candice_ @ 2018-10-24 10:11:21
@[Loi_Anina](/space/show?uid=69864) QAQAQAQAQAQAQ 我在想你为啥不用double 开eps
by 小可爱三岁七 @ 2018-10-24 10:19:33
@[小可爱三岁七](/space/show?uid=62490)
因为我()想用整数二分啊QAQ
(其实是不会实数二分QAQ
by Loi_Anina @ 2018-10-24 10:22:25
@[Loi_Anina](/space/show?uid=69864) 其实我不会实数二分qwq
by 小可爱三岁七 @ 2018-10-24 10:27:09
可能是结构体出锅了Orz
单调队列实现改成普通数组就AC了,确实是要*1e4
by Loi_Anina @ 2018-10-24 11:10:27
错误代码
```cpp
struct number
{
int num,pos;
}qvq[100010];
int check(int x)
{
memset(f,0,sizeof(f));
memset(qvq,0,sizeof(qvq));
for(int i=1;i<=n;i++) f[i]=f[i-1]+a[i]-x;
int head=1,tail=0;
for(int i=S;i<=n;i++)
{
while(qvq[tail].num>f[i-S]&&head<=tail) tail--;
qvq[++tail].num=f[i-S],qvq[tail].pos=i-S;
while(head<=tail&&qvq[head].pos<i-T) head++;
if(head<=tail&&f[i]-qvq[head].num>=0) return 1;
}
return 0;
}
```
正确代码
```cpp
int qvq[100010];
int check(int x)
{
memset(f,0,sizeof(f));
memset(qvq,0,sizeof(qvq));
for(int i=1;i<=n;i++) f[i]=f[i-1]+a[i]-x;
int head=1,tail=0;
for(int i=S;i<=n;i++)
{
while(f[qvq[tail]]>f[i-S]&&head<=tail) tail--;
qvq[++tail]=i-S;
while(head<=tail&&qvq[head]<i-T) head++;
if(head<=tail&&f[i]-f[qvq[head]]>=0) return 1;
}
return 0;
}
```
只有存单调队列的部分不同
所以请问是结构体有什么性质导致出错了么QAQ
by Loi_Anina @ 2018-10-24 11:20:26