题解 | #[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
    
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务