分享一个在洛谷ac却在pojWA的经验
查看原帖
分享一个在洛谷ac却在pojWA的经验
854889
Star_own楼主2022/12/26 20:51
for(int i = 1; i <= n; i++){
            scanf("%lf%lf", &x0, &yyy0);
            if(yyy0>d){
                    flag = false; 
            }//这一个case已经算逑了。
            else{
                delta = sqrt(1.0*d*d-1.0*yyy0*yyy0);
                qujians[i].left = x0-delta;
                qujians[i].right = x0+delta;
                }
  }

这里在读取数据的时候的正确思路是,如果出现了(y>d)的状况,结果当然已经毫无疑问是-1了,而且这里也无法计算出一个有效的x轴上的对应区间(所以用if_else),但是我们还要不断进行输入的过程直到把n个island都读完(与之相对的是直接加一个break停止读入剩下的数据,反正它看起来也没有意义了),否则剩余的数据会干扰下一个case。 总之,当一个问题有很多次子问题(即重复的case)的时候,就算上一个问题提前解决了,也要确保把属于这个子问题的数据读取完(打扫完),避免干扰下一次子问题。

2022/12/26 20:51
加载中...