HDU 5047 Sawtooth 找规律+拆分乘
Sawtooth
● One straight line can divide a plane into two regions.
● Two lines can divide a plane into at most four regions.
● Three lines can divide a plane into at most seven regions.
● And so on...
Now we have some figure constructed with two parallel rays in the
same direction, joined by two straight segments. It looks like a
character “M”. You are given N such “M”s. What is the maximum number of
regions that these “M”s can divide a plane ?
Each case contains one single non-negative integer, indicating number of “M”s. (0 ≤ N ≤ 10
12)OutputFor each test case, print a line “Case #t: ”(without quotes,
t means the index of the test case) at the beginning. Then an integer
that is the maximum number of regions N the “M” figures can divide.Sample Input
2
1
2
Sample Output
Case #1: 2
Case #2: 19 题意:问用"M"形的线条去切割一个平面,问当有n个"M"时能把平面切割成几份?
用1条直线切割平面可以把平面分成2份
用2条直线切割平面可以把平面分成4份
用3条直线切割平面可以把平面分成7份
用n条直线切割平面可以把平面分成2+2+3+4+....+n份
假设"M"的线条可以无限延长成直线,那么一个M相当于4条直线,但是考虑到"M"实际上并没有延长成直线,那么一个"M"的切割份数一定小于4条直线的切割分数,
猜想二者可能满足某种关系。
直线:
n=4时,ans=11
n=8时,ans=37
“M”:
n=1时,ans=2
n=2时,ans=19
发现
11-9=2
37-2*9=19
设“M”个数为n,那么有4n*(4n+1)/2+1-9n ---> n*(8n-7)+1
直接输出答案会爆ll。
可以用JAVA或者高精度算法。
这里用的是拆分乘。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll mod=1e9;
int main()
{
//freopen("input.txt","r",stdin);
ll T,kase=;
scanf("%lld",&T);
while(T--)
{
ll n;
scanf("%lld",&n);
ll a0=(*n-)%mod;
ll a1=(*n-)/mod;
ll b0=n%mod;
ll b1=n/mod;
ll num0=(a0*b0+);
ll num1=(b0*a1+b1*a0+num0/mod);
ll num2=(a1*b1+num1/mod);
num0%=mod;
num1%=mod;
printf("Case #%lld: ",kase++);
if(num2) printf("%lld%09lld%09lld\n",num2,num1,num0);
else if(num1) printf("%lld%09lld\n",num1,num0);
else printf("%lld\n",num0);
}
return ;
}
HDU 5047 Sawtooth 找规律+拆分乘的更多相关文章
- hdu 5047 大数找规律
http://acm.hdu.edu.cn/showproblem.php?pid=5047 找规律 信kuangbin,能AC #include <stdio.h> #include & ...
- HDU 2086 A1 = ? (找规律推导公式 + 水题)(Java版)
Equations 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2086 ——每天在线,欢迎留言谈论. 题目大意: 有如下方程:Ai = (Ai-1 ...
- HDU 5047 Sawtooth(大数优化+递推公式)
http://acm.hdu.edu.cn/showproblem.php?pid=5047 题目大意: 给n条样子像“m”的折线,求它们能把二维平面分成的面最多是多少. 解题思路: 我们发现直线1条 ...
- HDU 5047 Sawtooth(大数模拟)上海赛区网赛1006
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5047 解题报告:问一个“M”型可以把一个矩形的平面最多分割成多少块. 输入是有n个“M",现 ...
- hdu 5106 组合数学+找规律
http://acm.hdu.edu.cn/showproblem.php?pid=5106 给定n和r,要求算出[0,r)之间所有n-onebit数的和,n-onebit数是所有数位中1的个数. 对 ...
- Doom HDU - 5239 (找规律+线段树)
题目链接: D - Doom HDU - 5239 题目大意:首先是T组测试样例,然后n个数,m次询问,然后每一次询问给你一个区间,问你这个这段区间的加上上一次的和是多少,查询完之后,这段区间里 ...
- hdu 4708(暴力+找规律)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4708 思路:由于N不大,并且我们可以发现通过旋转得到的4个对角线的点的位置关系,以及所要旋转的最小步数 ...
- hdu 4759 大数+找规律 ***
题目意思很简单. 就是洗牌,抽出奇数和偶数,要么奇数放前面,要么偶数放前面. 总共2^N张牌. 需要问的是,给了A X B Y 问经过若干洗牌后,第A个位置是X,第B个位置是Y 是不是可能的. Ja ...
- 2014 网选 上海赛区 hdu 5047 Sawtooth
题意:求n个'M'型的折线将一个平面分成的最多的面数! 思路:我们都知道n条直线将一个平面分成的最多平面数是 An = An-1 + n+1 也就是f(n) = (n*n + n +2)/2 对于一个 ...
随机推荐
- C# 去除数字中多于的0
decimal i = decimal.Parse(Console.ReadLine()); Console.WriteLine((i).ToString(")); Console.Writ ...
- 面试官常问的Nginx的几个问题
1.什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3 ...
- Linux用户和权限——管理文件权限的命令
Linux用户和权限——管理文件权限的命令 摘要:本文主要学习了Linux中修改文件权限的命令. chown命令 chown命令,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件( ...
- Mobx总结以及mobx和redux区别
Mobx解决的问题 传统react使用的数据管理库为Redux.Redux要解决的问题是统一数据流,数据流完全可控并可追踪.要实现该目标,便需要进行相关的约束 Redux由此引出dispatch ac ...
- android studio学习----gradle基础
Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. 安装Gradle 在And ...
- Java常用算法总结
冒泡排序 从左到右不断交换相邻逆序的元素,在一轮的循环之后,可以让未排序的最大元素上浮到右侧. 在一轮循环中,如果没有发生交换,那么说明数组已经是有序的,此时可以直接退出. 代码如下: public ...
- 4-7 3D绘图
In [1]: import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D % ...
- tensorflow模型量化实例
1,概述 模型量化应该是现在最容易实现的模型压缩技术,而且也基本上是在移动端部署的模型的毕竟之路.模型量化基本可以分为两种:post training quantizated和quantization ...
- 10wx.showToast消息提示框 wx.showModal模态对话框
1==>wx.showToast 弹出层 在界面交互中 显示消息提示框 它是一个消失提示框 提示用户成功 或者失败等消息 <button size='mini' bindtap='hanl ...
- 洛谷 P5564: [Celeste-B]Say Goodbye
题目传送门:洛谷 P5564. 题意简述: 有 \(n\) 个点,染 \(m\) 种颜色,第 \(i\) 种颜色染恰好 \(cnt_i\) 个节点,满足 \(cnt_1+cnt_2+\cdots+cn ...