折线分割平面hdu2050
来源:互联网 发布:sql查询前10条记录 编辑:程序博客网 时间:2024/05/16 17:44
折线分割平面
对于一条折线我们可以清楚的发现有两个面,如果我们现在在加一条直线,那么可以很清晰的看到了我们多增加3个平面,那么如果我们再增加折线的另一部分发现又增加了两个面,所以我们可以得到了5个面,当且仅当i=2的时候,瞎推理了下,发现每增加一条边上是当前是第i个折线的2倍-1,继续增加下一条发现是2倍-2所以我们得到递推式,
a[i] = a[i-1] + 2 * i -1 +2*i-2。
附上ac代码
#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn =100000+ 10;int a[maxn];int t;void solve(){ a[1] =2; for(int i = 2;i<=10010;i++) { a[i] = a[i-1] + 2*i-1 + 2*i-2; } scanf("%d",&t); while(t--) { int n; scanf("%d",&n); printf("%d\n",a[n]); }}int main(){ solve(); return 0;}
import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.StringTokenizer;import java.util.concurrent.LinkedBlockingDeque;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.HashSet;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;import java.util.Stack;import java.lang.Math;public class Main{ Scanner cin = new Scanner(new BufferedInputStream(System.in)); int t; int[] a = new int[10010 + 10]; int n; void solve() { t = cin.nextInt(); a[1] = 2; for(int i=2;i<=10010;i++) { a[i] = a[i-1] + 2 * i -1 + 2 * i - 2; } while(t!=0) { t--; n = cin.nextInt(); System.out.println(a[n]); } } public static void main(String[] args) { new Main().solve(); }}
0 0
- HDU2050折线分割平面
- hdu2050 折线分割平面
- HDU2050 折线分割平面
- hdu2050 折线分割平面
- hdu2050折线分割平面
- HDU2050 折线分割平面
- HDU2050 折线分割平面
- hdu2050 折线分割平面
- HDU2050折线分割平面
- hdu2050 折线分割平面
- HDU2050折线分割平面
- hdu2050 折线分割平面
- HDU2050 折线分割平面
- HDU2050 折线分割平面
- 折线分割平面HDU2050
- HDU2050 折线分割平面
- 折线分割平面hdu2050
- 折线分割平面hdu2050
- poj 1260 Pearls (dp)
- Unity5.3.5f1 与 VS2013 环境搭建配置
- Shiro简介
- ExpandableListView的使用以及更换前边的图片
- Mac搭建github-Page的Hexo免费个人博客
- 折线分割平面hdu2050
- 动态规划练习--19(最低通行费)
- Ubuntu 安装 JDK 7 / JDK8 的两种方式
- hexo + github pages 搭建个人博客
- 折线分割平面hdu2050
- 正则化原理
- 二、swift3.0常量和变量+流程控制
- ubuntu16.04 安装Code::Blocks
- Java线程同步