首页 > 代码库 > codeforces 429D Tricky Function
codeforces 429D Tricky Function
这道就是相当于i表示x轴,sum[i]表示y轴,sum[i]表示前i个数的和
那么计算最小两点之间的距离
所谓的就是看了题解恍然大悟的题,就是算的时候先算的j->i的距离,
#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; typedef long long ll; #define N 11111 ll a[N]; ll sum[N]; int ans; int main(){ int n; sum[0]=0; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("I64d",&a[i]); sum[i]=sum[i-1]+a[i]; } ans=a[2]*a[2]+1; for(ll i=1;i<n;i++){ if(i*i>ans) break;//so important ll t=ans; for(int j=i+1;j<=n;j++){ t=min(t,(sum[j]-sum[j-i])*(sum[j]-sum[j-i]); } ans=min(ans,t+i*i); } cout<<ans<<endl; }
codeforces 429D Tricky Function
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。