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 }
2014 网选 上海赛区 hdu 5047 Sawtooth相关推荐
- 2014 网选 广州赛区 hdu 5025 Saving Tang Monk(bfs+四维数组记录状态)
1 /* 2 这是我做过的一道新类型的搜索题!从来没想过用四维数组记录状态! 3 以前做过的都是用二维的!自己的四维还是太狭隘了..... 4 5 题意:悟空救师傅 ! 在救师父之前要先把所有的钥匙找 ...
- 2014 网选 广州赛区 hdu 5023 A Corrupt Mayor's Performance Art
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<algorith ...
- HDU 5047 Sawtooth 高精度
题意: 给出一个\(n(0 \leq n \leq 10^{12})\),问\(n\)个\(M\)形的折线最多可以把平面分成几部分. 分析: 很容易猜出来这种公式一定的关于\(n\)的一个二次多项式. ...
- 2014 网选 5024 Wang Xifeng's Little Plot
题意:从任意一个任意一个可走的点开始找一个最长的路,这条路如果有转弯的话, 那么必须是 90度,或者没有转弯! 思路: 首先用dfs将所有可走点开始的 8 个方向上的线段的最长长度求出来 ! step ...
- 2014 网选 5011 Game(Nim游戏,数学题)
/*题意:Nim游戏! 思路:通过异或,判断将n个数表示成二进制的形式之后,是否对应位的数字1 的个数是偶数! */ #include<iostream> using namespace ...
- 2014 网选 5012 Dice(bfs模板)
1 /* 2 题意:就是给定两个筛子,每个筛子上6个面,每个面的数字属于[1,6], 且互不相同! 3 问a筛子最少经过按照题目规定的要求转动,达到和b筛子上下左右前后的数字相同! 4 5 思路:很直 ...
- 2014 网选 5007 Post Robot(暴力或者AC_自动机(有点小题大作了))
//暴力,从每一行的开始处开始寻找要查询的字符 #include<iostream> #include<cstdio> #include<cstring> #inc ...
- 2014 网选 5014 Number Sequence(异或)
1 /* 2 题意:a, b两个序列,规定由[0, n]区间的数! 3 求 a[i] ^ b[i] 的和最大! 4 5 思路:如果数字 n的二进制有x位, 那么一定存在一个数字m,使得n^m的所有二进 ...
- 2014 ACM/ICPC 北京赛区网络赛解题报告汇总
首页 算法竞赛» 信息聚合 ONLINE JUDGE 书刊杂志 BLOG» 新闻故事» 招聘信息» 投稿须知 2014 ACM/ICPC 北京赛区网络赛解题报告汇总 九月 21st, 2014 | P ...
最新文章
- Less和Sass的使用
- 银行委托第三方催收信用卡欠款,是合法吗?
- SQL调优:带函数的谓词导致CBO Cardinality计算误差
- Mysql yum 安装后,一些重要的文件路径
- openoffice将html转成pdf,通过openOffice将office文件转成pdf
- 扩展Jquery方法创建LigerUI Grid
- 梦想成真,喜获微软MVP奖项,微软MVP FAQ?
- 芒果db怎么连mysql_MongoDB 芒果数据库的使用
- GIS+区块链,地理空间数据新型应用场景未来可期
- BlackBerry黑莓7230/7290等常用的功能简介以及技巧分类【转载】
- 【网络通信 -- 直播】ZLMediaServer -- 环境搭建与测试
- 猿创征文 |【算法入门必刷】数据结构-栈(四)
- Hard masking and soft masking
- 使用JS-SDK自定义微信分享效果
- 苹果手机快速发送文件到win10电脑
- 代码管理和编辑工具Source Insight 4.0使用介绍
- 音视频5.4——两个MP3混音合成一个MP3
- 基于属性的测试,hypothesis以及查找bug
- java实现多元线性回归
- Python 的dict几种遍历方式