您的位置:首页 > 其它

SGU 135 Drawing Lines(dp)

2016-04-15 11:43 357 查看
Description

一张纸切n次最多会被分成几部分

Input

一个整数n(0<=n<=65535)

Output

输出一张纸被切n次最多会被分成几部分

Sample Input

0

Sample Output

1

Solution

简单dp,设dp[i]为一张纸被切i次最多会被分成几部分,那么第i+1次至多和前i次都相交,也就是说会在dp[i]的基础上切出i+1部分,故有转移方程

dp[i]=dp[i-1]+i,其中dp[0]=1

故dp[i]=i*(i+1)/2+1

Code

#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
printf("%lld\n",1ll*n*(n+1)/2+1);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: