2014 网选 上海赛区 hdu 5047 Sawtooth

简介:

题意:求n个'M'型的折线将一个平面分成的最多的面数!
思路:我们都知道n条直线将一个平面分成的最多平面数是 An = An-1 + n+1
也就是f(n) = (n*n + n +2)/2
对于一个'M'型的折线呢?它有四条线,但是由于三个顶点的关系导致划分的平面
的数目减少了9个!所以有递推公式 f(n) = (m*m + m + 2)/2 - 9*n; m = 4*n

最后 f(n) = (8*n+1)*(n-1)+2)
由于 n<=1e12 , 所以回报 long long!那么对于大于1e9的数我做了大数乘法的处理!

复制代码
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5  
 6 void fun(int a[], long long b, int &l){//将一个数进行拆分放到数组中! 
 7     while(b){
 8         a[l++] = b%10;
 9         b/=10;
10     }
11 }
12 
13 
14 int a[30], b[30], c[30];
15 int la, lb;
16 
17 void cal(){
18     memset(c, 0, sizeof(c));
19     for(int i=0; i<la; ++i)
20         for(int j=0; j<lb; ++j)
21             c[i+j] += a[i]*b[j];
22     int k=0;    
23     int len = la+lb-1;
24     for(int i=0; i<len; ++i){
25         c[i]+=k;
26         k = c[i]/10;
27         c[i]%=10;
28     }
29     if(k>0) c[len++] = k;
30     k = 2;
31     for(int i=0; i<len; ++i){
32         c[i]+=k;
33         k = c[i]/10;
34         c[i]%=10;
35     }
36     if(k>0) c[len++] = k;
37     
38     for(int i = len-1; i>=0; --i)
39         printf("%d", c[i]);
40     printf("\n");
41 }
42 
43 int main(){
44     long long n;
45     int t, cnt=0;
46     scanf("%d", &t); 
47     while(t--){
48         scanf("%I64d", &n); 
49         printf("Case #%d: ", ++cnt);
50         if(n <= 1e9)
51             printf("%I64d\n", (8*n+1)*(n-1)+2);
52         else{
53             long long x = 8*n+1;
54             long long y = n-1;
55             la=lb=0;
56             fun(a, x, la);
57             fun(b, y, lb);
58             cal();
59         }
60      } 
61     return 0;
62 }
复制代码









本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/3997036.html,如需转载请自行联系原作者
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
4月前
BUUCTF 乌镇峰会种图 1
BUUCTF 乌镇峰会种图 1
26 0
|
8月前
|
存储 算法 安全
2023深圳杯数学建模B题
2023深圳杯数学建模B题
129 0
|
9月前
|
机器学习/深度学习
山东第一届省赛 Balloons (dfs)
山东第一届省赛 Balloons (dfs)
36 0
|
11月前
|
人工智能 Go vr&ar
第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海),签到题6题
第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海),签到题6题
94 0
|
开发工具 git
第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海),签到题5题
第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海),签到题5题
165 0
|
人工智能 Dart 算法
【算法题解】2022河南萌新联赛第(四)场:郑州轻工业大学
【算法题解】2022河南萌新联赛第(四)场:郑州轻工业大学
【算法题解】2022河南萌新联赛第(四)场:郑州轻工业大学
|
人工智能 云计算 开发者
DevUP 沙龙 | 八月北京、上海、成都燥起来
炎热的周末不知去哪里耍,不如来参加阿里云开发者 DevUP 沙龙吧。三大城市火热来袭,专家面对面交流,更有实操环节加深理解。放松学习的同时还有机会结交志同道合的小伙伴, 约约约!
DevUP 沙龙 | 八月北京、上海、成都燥起来
这里是你最喜欢的杭州的夏天
图片发自简书App 图片发自简书App 图片发自简书App 图片发自简书App 图片发自简书App 图片发自简书App 图片发自简书App 图片...
894 0