厌氧代码求调

P1158 [NOIP2010 普及组] 导弹拦截

在这里 ``` int tmp=ju[i].zhi; int tmp1=max((biao[ju[i+1].wei][0]-x2)*(biao[ju[i+1].wei][0]-x2)+(biao[ju[i+1].wei][1]-y2)*(biao[ju[i+1].wei][1]-y2),tmp1); if(tmp1+tmp<ans) ans=tmp1+tmp; ``` 要记录之前的状态 改为 ``` #include <bits/stdc++.h> using namespace std; int x1, ya, x2,y2,n,biao[100010][2],ans, ss; struct node{ int zhi,wei; }ju[100010]; bool cmp(node x,node y){ return x.zhi<y.zhi; } int main(){ scanf("%d%d%d%d", &x1, &ya, &x2, &y2); scanf("%d", &n); for(int i=1;i<=n;i++){ cin >> biao[i][0] >> biao[i][1]; ju[i].zhi=(((biao[i][0]-x1)*(biao[i][0]-x1))+((biao[i][1]-ya)*(biao[i][1]-ya))); ju[i].wei=i; } sort(ju + 1, ju + n + 1, cmp); ans=ju[n].zhi; for(int i=n-1;i>=0;i--){ int tmp=ju[i].zhi; int tmp1 = max((((biao[ju[i+1].wei][0]-x2)*(biao[ju[i+1].wei][0]-x2))+((biao[ju[i+1].wei][1]-y2)*(biao[ju[i+1].wei][1]-y2))), ss); if(tmp1+tmp<ans) ans=tmp1+tmp; ss = tmp1; } printf("%d", ans); return 0; } ```
by _Passerby_ @ 2023-10-02 11:17:26


本来以为是排序稳定性的问题写了半天归并QAQ
by _Passerby_ @ 2023-10-02 11:18:46


|