- 题解
DAY2PvZ 竞赛版题解
- @ 2024-8-6 16:54:58
题意分析
在一个平面直角坐标系中,做以为圆心的原,覆盖个点求半径平方最小值。
思路解析
思路一
运用贪心思想,枚举每个点的最优情况,求最小值。 得40分
思路二
枚举覆盖~个点的情况,再让覆盖剩下的点,求最小值。
代码一:
运用循环求覆盖范围 得70分
for(int i=1;i<=n;i++){
long long nmaxx=0;
for(int j=i+1;j<=n;j++){
nmaxx=max(nmaxx,s[j].s2);
}
maxx=min(maxx,(s[i].s1+nmaxx));
}
cout<<maxx;
代码二
逆向思维,让从大到小覆盖,用的时间复杂度求的范围
for(int i=n;i>=1;i--){
maxx=max(maxx,s[i].s2);
minn=min(minn,maxx+s[i].s1);
}
cout<<maxx;
0 条评论
目前还没有评论...