您的位置:首页 > 其它

P6269 【[SHOI2002]空中都市】

2020-08-27 21:48 881 查看

这道题自己要多手模一下,我这里画图理解

那么对于$n=5$的情况,ans=6

一个例子不够明显,再来一个

那么对于$n=6$的情况,ans=9

不难发现这就是一个等差数列,公差为$2$,末项为$n-1$,可以用样例二验证一下

那么这道题就可以$O(1)$了,但是本蒟蒻不会等差数列求和公式,所以大概是$O(n/2)$(口胡的时间复杂度)

#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
scanf("%d",&n);
int ans=0;
for(register int i=n-1;i>=0;i-=2){
ans+=i;
}
cout<<ans;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: