http://acm.hdu.edu.cn/showproblem.php?pid=6343
容易证明 ⌊a⌋+⌊b⌋≥⌊a+b⌋\lfloor \sqrt{a} \rfloor + \lfloor \sqrt{b} \rfloor \ge \lfloor \sqrt{a + b} \rfloor⌊√a⌋+⌊√b⌋≥⌊√a+b⌋,进而可以证明边权满足三角不等式,故直接从 111 走到 nnn 就是最优的。
#include<bits\stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int t,n,a[100005],i,ans,tmp;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
ans=abs(a[n]-a[1]);
tmp=sqrt(ans);
printf("%d\n",tmp);
}
}