HDU 6553
一块七巧板有 7 块,现在 wls 想再在七巧板上加 n 条直线将七巧板切分并且使得切出来的块最多,请问最多能有多少块?
Input
输入有多组(不超过 100, 000组)。
每组一行一个正整数 n。
0 ≤ n ≤ 1, 000, 000, 000
Output
每组输出一行一个数代表答案。
Sample Input
1
Sample Output
13
思路分析:
小学奥数切蛋糕题,切三刀最多七块。
Old memory came flooding back !
尽量让更多的边相交即可。
一开始内部5条边相交。
跟内部5条边相交,内部变6条边,多出来6块
跟内部6条边相交,内部变7条边,多出来7块
跟内部n条边相交,内部变成n+1条边,块数多n+1块
代码:
#include <iostream>
#include <vector>
#include <cstring>
#include <string>
#include <iomanip>
#include <cmath>
#include <map>
#include <stack>
#include <algorithm>
#include <queue>
#include <set>
#include <cstdio>
#define INF 0x3f3f3f3f
#define MAX 200100
#define ll long long
#define N 10010
using namespace std;
int main(){
ll n;
while(scanf("%lld", &n) != EOF) {
ll ans = 7 + 6 * n + n * (n - 1) / 2;
printf("%lld\n", ans);
}
}