总结一下吧。。

像这种题,输入很简单,就几个数,然而正常算运算量很大,或时间复杂度很高,或分类讨论很麻烦的题,就试试找规律吧。只能说很可能是找规律,但也有例外吧。

这题的话,手算或计算机算多几个小数据,要想清楚了别算错了。。找规律就靠它了啊。。如果手算的话,心细一点可能就会发现递推关系式了,化简一下关系式就会变得很简单。没发现的话就把数列写出来,然后加减乘除看看相邻项有没有什么联系啊。。。再不行就看看能不能把Pn表示成Pi(i<n)。。。其实就是在做数学题。。。

以前做过有些题还打表找规律,甚至打表输出的。。。

代码

#include <string>
#include <vector>
#include <algorithm>
#include<iostream>
//#include<cstring>
#include<cstdio>
#include<sstream>
using namespace std;
string mul(string str1,string str2)
{vector<int> v_res(str1.size()+str2.size(),0);string::size_type i,j;vector<int>::size_type k,p;reverse(str1.begin(),str1.end());reverse(str2.begin(),str2.end());for(i = 0; i != str1.size(); ++i){for(j = 0; j != str2.size(); ++j){v_res[i+j] += (str1[i]-'0') * (str2[j] - '0');}}for(k = 0; k != v_res.size() - 1; ++k){v_res[k+1] += v_res[k] / 10;v_res[k] = v_res[k] % 10;}for(p = v_res.size() - 1; p != -1; --p){if(v_res[p] != 0) break;}if(p == -1) p = 0;string s_res(p+1,'0');for(k = p; k != -1; --k) s_res[p-k] = char(v_res[k] + '0');return s_res;}
string sub(string s1,string s2)
{int flag = 0;if(s1.length()<s2.length() || (s1.length()==s2.length() && s1 < s2)){flag = 1;string temp=s1;s1=s2;s2=temp;}int i,j;for(i=s1.length()-1,j=s2.length()-1;i>=0;i--,j--){s1[i]=char(s1[i]-(j>=0?s2[j]-'0':0));   //注意细节if(s1[i]-'0'<0){s1[i]=char(s1[i] + 10);s1[i-1]--;}}for(i = 0; i < s1.length(); i++){if(s1[i] != '0') break;}if(i == s1.length()) i = s1.length()-1;s1 = s1.substr(i);if(flag) s1 = "-" + s1;return s1;
}
string sum(string s1,string s2)
{if(s1.length()<s2.length()){string temp=s1;s1=s2;s2=temp;}int i,j;for(i=s1.length()-1,j=s2.length()-1;i>=0;i--,j--){s1[i]=char(s1[i]+(j>=0?s2[j]-'0':0));   //注意细节if(s1[i]-'0'>=10){s1[i]=char((s1[i]-'0')%10+'0');if(i) s1[i-1]++;else s1='1'+s1;}}return s1;
}string div(string s1,string s2)
{string res = "0";if(s1.length()<s2.length() || (s1.length()==s2.length() && s1 < s2)){return "0";}int i;int sub_length = s1.length() - s2.length();for(i = sub_length; i >= 0; i--){string s3(i,'0');string s4 = s2 + s3;do{string temp = sub(s1,s4);if(temp[0] == '-') break;else{s1 = temp;res = sum(res,("1" + s3));}}while(1);}return res;
}string gcd(string a,string b)
{return b=="0"?a:gcd(b,sub(a,mul(div(a,b),b)));
}int main()
{int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);string fz="1";string fm="1";string s1,s2;for(int i=1;i<=n;i++){stringstream ss;ss<<2*i-1<<" "<<2*i;ss>>s1>>s2;fz=mul(fz,s1);fm=mul(fm,s2);}string GCD=gcd(fm,fz);cout<<div(fz,GCD)<<"/"<<div(fm,GCD)<<endl;}return 0;
}

概率,递推,找规律,高精度(FXTZ II,hdu 4043)相关推荐

  1. MT【103】二阶递推找规律

    评:如果直接找$a_n$的二阶递推式:$a_{n+2}-2\sqrt{2}a_{n+1}-a_n=0$有根号,不利于估计尾数. 转载于:https://www.cnblogs.com/mathstud ...

  2. *【HDU - 1517】【POJ - 2505】A Multiplication Game(博弈,递推找规律或SG函数)

    题干: Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers ...

  3. Codeforces 1327 E. Count The Blocks(递推找规律)

    题意: 给出一个 n n n,求 1 0 n 10^n 10n 内长度为 1 1 1到 n n n的块分别有多少个.块的含义是连续相同数字的长度. 第一眼以为数位 d p dp dp 暴力打表出前几项 ...

  4. 牛客网 水题 递推找规律

    链接: https://www.nowcoder.com/acm/contest/91/E 来源:牛客网 小Y买了很多苹果,但他很贪吃,过了几天一下就吃剩一只了.每一天小Y会数出自己的苹果个数X,如果 ...

  5. TSOJ 好好做题(屑)——递推状态压缩+高精度

    文章目录 题目描述 解题思路 喜闻乐见的AC代码 补充一:高精度 补充二:状态压缩 完整注释代码 后记 题目描述 选修程序设计和算法课程的学生人数为 n,任课老师设置了 m 道练习题目(其中:1 &l ...

  6. 2018.09.01 poj3071Football(概率dp+二进制找规律)

    传送门 概率dp简单题. 设f[i][j]表示前i轮j获胜的概率. 如果j,k能够刚好在第i轮相遇,找规律可以发现j,k满足: (j−1)>>(i−1)(j−1)>>(i−1) ...

  7. UVa 11021 (概率 递推) Tribles

    Tribble是麻球? 因为事件都是互相独立的,所以只考虑一只麻球. 设f(i)表示一只麻球i天后它以及后代全部死亡的概率,根据全概率公式: f(i) = P0 + P1 * f(i-1) + P2 ...

  8. UVA11427玩纸牌(全概率+递推)

    题意:       一个人玩纸牌游戏,他每天最多玩n局,枚举获胜的概率是a/b,每天玩牌只要获胜概率达到p,那么他今天就不玩了,明天接着玩,如果有一天他的概率没有达到p,(没有达到p的话他今天一定是玩 ...

  9. UVA 11021 - Tribles(概率递推)

    UVA 11021 - Tribles 题目链接 题意:k个毛球,每一个毛球死后会产生i个毛球的概率为pi.问m天后,全部毛球都死亡的概率 思路:f[i]为一个毛球第i天死亡的概率.那么 f(i)=p ...

  10. [线性代数学习笔记] 线性递推数列及 Berlekamp-Massey 算法的详细推导过程

    线性递推数列 线性递推 对于无限数列 {a0,a1,...}\{a_0,a_1,...\}{a0​,a1​,...} 和有限非空数列 {r0,r1,...,rm−1}\{r_{0},r_1,...,r ...

最新文章

  1. 2020年趋势一览:AutoML、联邦学习、云寡头时代的终结
  2. 新人python2和python3的区别_未明学院:Python2与Python3的主要区别
  3. Windows Phone 8 蓝牙标准
  4. Android AsyncTask分析
  5. 计算机启动程序bios_如何构建自己的计算机,第三部分:准备BIOS
  6. 【小项目】SSM 实现单表 CRUD
  7. C#关键字扫盲——Tuple(元组类) 、ValueTuple(值元组)
  8. 公司年会不知道送什么?2021平价高颜值蓝牙耳机推荐
  9. 几款好用的录屏软件推荐
  10. java导出excel弹出下载框_[Java教程]Springmvc和poi3.9导出excel并弹出下载框
  11. java注解保留两位小数_jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题
  12. 无极性电容的定义及应用
  13. FinClip程序员生活指南|如何“反脆弱”的过好一个低碳生活
  14. 2021年5月:百度最近的文章收录变慢了?连老站都不好使了?
  15. web安全所需过滤的特殊字符
  16. django基于Python的HOME宠物领养+购物商城中心小程序#毕业设计
  17. Cocos2d-x 2.0 变速动画深入分析
  18. not a genuine ST device,可能是个“假”芯片
  19. 斐波那契数列 牛客网 python
  20. 香港科大詹华强发明头发检测吸毒新技术

热门文章

  1. redhat Enterprise Linux Server release 7.2(Maipo) 安装redis-stat
  2. 硬件行业知识体系概要【转】
  3. 免费下载思科CCNP 642-861考试题库
  4. 3.28 将文字转换为路径并进行艺术再加工 [原创Ps教程]
  5. Worthington产气荚膜梭菌神经氨酸酶的特征及测定
  6. FCPX插件:分屏转场插件Stupid Raisins Shape Pop
  7. Ubuntu下Firefox无法打开localhost:5560/isqlplus解决办法
  8. mysql 设置为空_MySQL中可为空的字段设置为NULL还是NOT NULL
  9. DTVideo UE录屏插件使用说明
  10. 51信用卡的面试问题