题解 | #[USACO 2009 Dec S]Music Notes#
[USACO 2009 Dec S]Music Notes
https://ac.nowcoder.com/acm/contest/22353/A
int max = sqrt((double)r) + 2;
这样写能过
但是写成
int max = sqrt((double)r) + 1;
就过不了
要注意
1 不能枚举开根以后的数 要直接算
最小的开根应该是sqrt(l)向下取整
即
int st = sqrt(l);
if(st* st < l ) st++;
然后最大
int te = st + x -1;
检验即可
true 就是te>=res否则te < res