paulzhou的数学?TAT?
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 4 Accepted Submission(s) : 4
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
众所周知,paulzhou的数学不太好。现在他有一个问题,希望你帮他解答:
定义,求最小的正整数y使得,其中
Input
第一行输入一个整数T(T<=10),表示测试实例的数量;
每组用例输入一个非负整数n(n<10^100)
Output
对于每组用例,如果y<=5则输出y,否则输出“TAT”
Sample Input
2
233
233333333333333333333333333333333333333333333333333333333
Sample Output
3
TAT
Author
Anonymous

怎么说呢 ,这道题,一看就是找规律的,有临界值,所以要打表找到所有的临界值。还有一点,如果直接暴力找会累死,所以建议用二分找 ;
我找到的临界值
dp[1]=0;
dp[2]=1;
dp[4]=2;
dp[16]=3;
dp[256]=4;
dp[65536]=5;
dp[4294967296]=6; //发现了把,要暴力,机器要报废
// 好吧,没有必要非 用二分(当时光想着打表了,虽然也过了,但确实费力些功夫。朋友给我指点迷津),仔细想想就会发现,对于n==4的时候y==2,那么当y==3的时候,其实就是一个值开根号之后为4就对了所以这个时候n==16 ,依次类推。

打表找规律的代码 (全当多复习下这种的二分用法 Σ( ° △ °|||)︴)

#include<string.h>
#include<stdio.h>
#include<queue>
#include<math.h>
#include<iostream>
#define LL long long
using namespace std;
/************************************/
const int MAXN = 1e6;
const double eps = 1e-8;
const int inf =0x3f3f3f3f;
int num;
void  ss(LL n)
{if(n==1) return ;num++;ss(floor(sqrt(n)));// floor()是向下取整,ceil()是向上取整
}
int main()
{LL ans;LL l=1;LL r=1e18;ans=-1;LL mid;while(l<=r){mid=(l+r)>>1;num=0;ss(mid);if(num>=6) ans=mid,r=mid-1; // 将这个6不断更改找到临界值else l=mid+1;}printf("%lld\n",ans);return 0;
}

AC代码
不管用哪种方法找到的临界值,最后都是一样的。

#include<string.h>
#include<stdio.h>
#include<queue>
#include<iostream>
using namespace std;
/************************************/
int main()
{int t;scanf("%d",&t);getchar();while(t--){char s[1000];gets(s);int len =strlen(s);int answer;if(len==1){if(s[0]=='1') answer=0;if(s[0]>='2'&&s[0]<'4') answer=1;if(s[0]>='4') answer=2;} else if(len==2){if(strcmp(s,"16")<0) answer=2;else answer=3;}else if(len==3){if(strcmp(s,"256")<0) answer=3;else answer=4;}else if(len>3&&len<5) answer=4;else if(len==5){if(strcmp(s,"65536")<0) answer=4;else answer=5;}else if(len>5 &&len <10 ) answer=5;else if(len==10){if(strcmp(s,"4294967296")<0) answer=5;else answer=6;}else answer=6;if(answer<6) printf("%d\n",answer);else puts("TAT");}return 0;
}

paulzhou的数学?TAT? 【二分打表找规律】相关推荐

  1. LeetCode-878. 第 N 个神奇数字【数学,二分查找,找规律】

    LeetCode-878. 第 N 个神奇数字[数学,二分查找,找规律] 题目描述: 解题思路一:二分答案+容斥原理.给定一个上下界,然后依次增大下界或者减小上界,直到只剩一个答案.容斥原理是,加上两 ...

  2. D. Pythagorean Triples(1487D)(打表找规律 + 二分)

    D. Pythagorean Triples(1487D)(打表找规律 + 二分) 题目来源:D. Pythagorean Triples 题意: 给定一个 n,求满足以下条件的数对 (a, b, c ...

  3. [国家集训队]整数的lqp拆分 数学推导 打表找规律

    题解: 考场上靠打表找规律切的题,不过严谨的数学推导才是本题精妙所在: 求:$\sum\prod_{i=1}^{m}F_{a{i}}$ 设 $f(i)$ 为 $N=i$ 时的答案,$F_{i}$ 为斐 ...

  4. 点分治问题 ----------- P3727 曼哈顿计划E[点分治+博弈SG函数打表找规律]

    题目链接 解题思路: 1.首先对于每个操作我们实际上是一个博弈问题 对于k=1的操作就是很基础的NIM游戏就是找到一条链的异或和为0 对于k=2的操作通过达打表找规律: 如果s是奇数那么偶数的SG函数 ...

  5. Yet Another Meme Problem(打表找规律)

    Try guessing the statement from this picture http://tiny.cc/ogyoiz. You are given two integers AA an ...

  6. hdu_5894_hannnnah_j’s Biological Test(打表找规律)

    题目链接:hdu_5894_hannnnah_j's Biological Test 题意: 有n个不同的位置围成一个圈,现在要安排m个人坐,每个人至少的间隔为k,问有多少种安排 题解: 先打表找规律 ...

  7. Ural 2045. Richness of words 打表找规律

    2045. Richness of words 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=2045 Description For ...

  8. Ural 2037. Richness of binary words 打表找规律 构造

    2037. Richness of binary words 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=2037 Descripti ...

  9. [codeforces 1327E] Count The Blocks 打表找规律+根据规律找公式+优化公式

    Educational Codeforces Round 84 (Rated for Div. 2)   比赛人数13522 [codeforces 1327E]  Count The Blocks  ...

最新文章

  1. BCH链上交易量剧增,超越莱特币
  2. thinkphp学习笔记10—看不懂的路由规则
  3. 基于android os 5.1,Android 5.1.1版氢OS快速体验
  4. Create new SAP DDL view and click finish in wizard
  5. Hawtio和Jolokia的休眠统计
  6. xpath helper小工具的安装
  7. 在服务器上导出dmp文件,远程在服务器上导出dmp文件
  8. php echo substr('hello',1,-2);-2是什么意思 为什么结果是 el
  9. 多线程编程核心技术日记
  10. 阿里云存储:安防行业背后的赋能者 | 凌云时刻
  11. PHP自动加载(上)——spl_autoload_register
  12. Linux 更新 CPU microcode
  13. 云计算机盒子,网络盒子秒变PC电脑必备装备客厅云电脑
  14. 含根式的定积分计算_定积分计算详细步骤
  15. 启舰:不懂花钱的人,大概率成为Loser!
  16. PyQt5 密码输入框
  17. Java强、软、弱、虚四大引用(附代码示例)
  18. mysql数据库修改密码的几种方法(用命令修改)
  19. 数据结构和算法(五)--栈(Stack)
  20. 【已解决】Error: ENOENT: no such file or directory, open ‘F:\xxx\node_modules\echarts

热门文章

  1. B站英语情景剧 P12
  2. msiexec使用方法-摘抄自Windows
  3. Android恶意软件样本库寻找方式
  4. 如何解决mysql数据库访问被拒绝
  5. SHTC3的研发经历
  6. 洛谷P2375 [NOI2014] 动物园 题解
  7. LeetCode 63
  8. 【优化算法】萤火虫算法matlab
  9. preventDefault
  10. ResNet论文翻译