话说这样写不会T嘛
```
if(tree[i].l==tree[i].r)
```
每次都到底层
by Miss_SGT @ 2023-11-04 15:04:25
```cpp
double query_p(int i,int l,int r){
if(tree[i].l>r || tree[i].r<l) return 0;
if(tree[i].l<=l && tree[i].r>=r) return tree[i].val;
push_down(i);
query_p(i<<1,l,r);
query_p(i<<1|1,l,r);
}
```
这个没有返回值
by Miss_SGT @ 2023-11-04 15:05:12
@[zhouchenqiao1](/user/705012) 2个query都没有
by Miss_SGT @ 2023-11-04 15:05:43
@[only__one](/user/776337)
$A1$ `printf("%.4f")` 本身就是四舍五入保留 $4$ 位小数的意义
by Smiog @ 2023-11-07 20:37:00
@[Smiog](/user/399493) @[zhouchenqiao1](/user/705012) 感谢
by only__one @ 2023-11-08 13:10:53
@[Smiog](/user/399493) 实测好像有问题,别的情况都能舍入,只有下面这组数据好像有问题(对于给出的测试代码)
(应该不会是我连四舍五入都搞不明白了吧)
```cpp
#include<bits/stdc++.h>
using namespace std;
double a;
int main(){
cin>>a;
printf("%.4lf\n",a);
return 0;
}
```
输入:
```
0.55555
```
实际输出
```
0.5555
```
期望输出
```
0.5556
```
换成 `float` 也一样
by Elysian_Realme @ 2023-12-19 18:36:15
@[lmq742643](/user/1034667) 我试了也是这样,且只有 $0.55555$, $0.65555$ 这种才会误舍,其它不会,有点奇怪 :(
by Smiog @ 2023-12-19 18:49:23
UB?考虑发个学术贴问问?
by Smiog @ 2023-12-19 18:50:00