【二分法】 HDU 2446 Shell Pyramid
2015-07-20 21:08
633 查看
意甲冠军:非常多,形成一个金字塔球
文章x层 x*(x+1)/ 2 球
给你个S 金字塔的一层代表第一数字向下S球
它是其中 这层中的第几行 第几列
公式 1 : x*(x+1)*(x+2)/ 6
公式 2 :x*(x+1)/ 2
公式1为公式2 的前n项和
文章x层 x*(x+1)/ 2 球
给你个S 金字塔的一层代表第一数字向下S球
它是其中 这层中的第几行 第几列
公式 1 : x*(x+1)*(x+2)/ 6
公式 2 :x*(x+1)/ 2
公式1为公式2 的前n项和
#include <cstdio> #include <cstring> #include <cstdlib> #include <string> #include <iostream> #include <algorithm> #include <sstream> #include <cmath> using namespace std; #include <queue> #include <stack> #include <vector> #include <deque> #include <set> #include <map> #include <time.h>; #define cler(arr, val) memset(arr, val, sizeof(arr)) #define FOR(i,a,b) for(int i=a;i<=b;i++) #define IN freopen ("in.txt" , "r" , stdin); #define OUT freopen ("out.txt" , "w" , stdout); typedef long long LL; const int MAXN = 10323; const int MAXM = 201; const int INF = 0x3f3f3f3f; const int mod = 1000000007; LL getnum1(LL num) { LL x=num; LL y=num+1; LL z=num+2; if(x%2==0) x/=2; else if(y%2==0) y/=2; else if(z%2==0) z/=2; if(x%3==0) x/=3; else if(y%3==0) y/=3; else if(z%3==0) z/=3; return x*y*z; } LL getnum2(LL num) { return num*(num+1)/2; } int main() { #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); #endif int t; LL n; scanf("%d",&t); while(t--) { cin>>n; LL l=0,r=3810776;//r表示极限了。 。 while(l<=r)//求第几层 { LL mid=(l+r)>>1;//getnum1(3810776) if(getnum1(mid)>=n) r=mid-1; else l=mid+1; } LL ans1=l; n-=getnum1(l-1); l=0,r=3810776; while(l<=r)//求第几行 { LL mid=(l+r)>>1; if(getnum2(mid)>=n) r=mid-1; else l=mid+1; } n-=getnum2(l-1); LL ans2=l; printf("%I64d %I64d %I64d\n",ans1,ans2,n); } }
相关文章推荐
- PHP+shell实现多线程的方法
- Linux 动态监听进程shell
- Linux 动态监听进程shell
- ssh远程调用之shell脚本远程调用应用程序
- shell内部命令和外部命令
- shell从小做起:将100以内整除3的数列出来
- linuxshell 求列和
- Linux Shell编程之softlink invoke与工作目录问题
- Linux Shell编程之softlink invoke与工作目录问题
- php执行shell命令,system、exec、passthru
- shell脚本 -e -f的含义
- Shell编程入门总结(编辑器Vim篇)
- #!/bin/sh与#!/bin/bash的区别
- Shell反弹不出来怎么办呢? -- Metasploit-tunna
- shell与if相关参数
- Shell脚本练习
- 【Linux-shell】shell脚本基础语法练习
- Linux学习(1)——CLI:BASH命令
- linux关于bashrc与profile的区别
- bash shell脚本常用功能