A: HDU5170

这题让比较a^b与c^d的大小。1<=a,b,c,d<=1000.

显然这题没法直接做,要利用对数来求,但是在math库中有关的对数函数返回的都是浮点数,所以这又要涉及到eps问题。

其它就没有什么需要注意的了,我用的是log()函数,当然还可以用log10().....,原理不变。

#include <iostream>
#include <algorithm>
#include <math.h>
#include <map>
#include <queue>
#include <stack>
#define inf 0x3f3f3f3f
#include <stdio.h>
#include <string.h>
typedef long long ll;
#define mod 10000007
#define eps 1e-9
using namespace std;
int a,b,c,d;
int main()
{while(scanf("%d%d%d%d",&a,&b,&c,&d)!=EOF){if(b*log(a)-d*log(c)>eps)printf(">\n");else if(fabs(b*log(a)-d*log(c))<=eps)printf("=\n");else printf("<\n");}return 0;
}

B: HDU5171

题目:按照规则扩展一个集合k次,然后求其总和。

【分析】

扩展规则很简单,就是一个斐波那契数列,但是如果按照模拟的方法手动推算,复杂度对于本题的数据范围来说是不太合适的。(1≤k≤1000000000)
可以利用矩阵快速幂来迅速完成。(矩阵快速幂可以完成任何递推公式)
[0, 1, 0] 
[f[n-1],f[n],s[n-1]]*[1, 1, 1] = [f[n],f[n+1],s[n]]
[0, 0, 1]
我第一次写完代码后验证结果是对的,但提交一直WA,之后发现在计算矩阵A的k+1次幂时,发现中间爆数据了,果断把int a[3][3]改成了 __int64 a[3][3],果断A了。
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
typedef __int64 ll;
#define mod 10000007
using namespace std;
struct ma
{ll a[3][3];
}res,init;
int n,se[100010];
ll sum,k;
ma mult(ma x,ma y)
{ma temp;for(int i=0;i<3;i++){for(int j=0;j<3;j++){temp.a[i][j]=0;for(int z=0;z<3;z++)temp.a[i][j]=(temp.a[i][j]+x.a[i][z]*y.a[z][j])%mod;}}return temp;
}
ma Pow(ma x,ll ke)
{ma temp;for(int i=0;i<3;i++){for(int j=0;j<3;j++){temp.a[i][j]=(i==j);}}while(ke){if(ke&1) temp=mult(x,temp);ke>>=1;x=mult(x,x);}return temp;
}
int main()
{while(scanf("%d%I64d",&n,&k)!=EOF){sum=0;init.a[0][0]=0,init.a[0][1]=1,init.a[0][2]=0;init.a[1][0]=1,init.a[1][1]=1,init.a[1][2]=1;init.a[2][0]=0,init.a[2][1]=0,init.a[2][2]=1;for(int i=0;i<n;i++){scanf("%d",&se[i]);}sort(se,se+n);for(int i=0;i<n-2;i++){sum=(sum+se[i])%mod;}k+=1;res=Pow(init,k);sum=(sum+(se[n-2]*res.a[0][2])%mod+(se[n-1]*res.a[1][2])%mod+(se[n-2]*res.a[2][2])%mod)%mod;printf("%I64d\n",sum);}return 0;
}

转载于:https://www.cnblogs.com/zhangmingcheng/p/4310933.html

BC#29A:GTY's math problem(math) B:GTY's birthday gift(矩阵快速幂)相关推荐

  1. A Simple Math Problem(矩阵快速幂)

    Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x >= 10 f(x) = a0 * ...

  2. 【HDU - 1757】A Simple Math Problem (矩阵快速幂)

    题干: Lele now is thinking about a simple function f(x). If x < 10 f(x) = x.  If x >= 10 f(x) = ...

  3. foj2198 Problem 2198 快来快来数一数 dp 矩阵快速幂

    Problem 2198 快来快来数一数 Accept: 67 Submit: 194 Time Limit: 1000 mSec Memory Limit : 65536 KB Problem De ...

  4. LightOJ 1070 Algebraic Problem (推导+矩阵快速幂)

    题目链接:LightOJ 1070 Algebraic Problem 题意:已知a+b和ab的值求a^n+b^n.结果模2^64. 思路: 1.找递推式 得到递推式之后就是矩阵快速幂了 注意:模2^ ...

  5. DUToj1085 Water Problem(矩阵快速幂)

    Problem I: Water Problem Time Limit:3000/1000 MS (Java/Others)   Memory Limit:163840/131072 KB (Java ...

  6. HDU - 1757 A Simple Math Problem (矩阵快速幂)

    Lele now is thinking about a simple function f(x). If x < 10 f(x) = x.  If x >= 10 f(x) = a0 * ...

  7. HDU - 1757 A Simple Math Problem(矩阵快速幂,水题)

    题目链接:点击查看 题目大意:实现公式: f(x)=x,x<10 f(x)=a0*f(x-1)+a1*f(x-2)+--+a9*f(x-10) 题目给出a0~a9,一个n和一个m,要求输出f(n ...

  8. 43行代码AC——HDU 1757 A Simple Math Problem(矩阵快速幂,附快速幂讲解)

    一道经典的矩阵快速幂模板题. 传送门1-->快速幂基本思想 传送门2-->矩阵快速幂讲解(教主传授) 代码(去掉空行43行) #include<iostream> #inclu ...

  9. HDU 1757 A Simple Math Problem (矩阵快速幂)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1757 在吴神的帮助下才明白如何构造矩阵,还是好弱啊. 此处盗一张图 1 #include <io ...

最新文章

  1. bootstrap 模态窗口 多重/多个弹窗滚动条补丁
  2. mongoose知识点总结
  3. gsonformat插件_收藏非常有用的IDEA插件,没用过这些IDEA插件?怪不得写代码头疼
  4. ASP.NET Core技术研究-探秘依赖注入框架
  5. 函数式编程很难,这正是你要学习它的原因
  6. ElasticSearch API文档查看
  7. Hexo NexT主题添加点击爱心效果
  8. Response.Clear() Response.ClearContent()和Response.ClearHeaders()之间的区别
  9. 用wxpython编写登录界面_wxpython+pymysql实现用户登陆功能
  10. 捡到iphone6怎么解锁_赛博朋克2077前期手枪用哪个好?2077节制结局及银杯节制解锁条件...
  11. 带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑
  12. OpenOffice实现word文档在线预览
  13. 基于周志华西瓜数据集的决策树算法及准确率测试
  14. Junit Test a getter
  15. bbs.ncar forum.php,无删减又好看的美剧资源网站
  16. 《C语言及程序设计》实践参考——回文、素数
  17. ffmpeg加水印、logo等
  18. GBase xdm管理端
  19. linux压缩命令-----zip
  20. 今日头条在线检测文章原创度,保障创作独特性!

热门文章

  1. 计算机高校应用现状的参考文献,【计算机应用论文】高校计算机实验室管理思考探索(共4094字)...
  2. mysql 5.7解压缩_mysql 5.7.22 解压缩安装
  3. php改变图片大小png背景变黑,php – 当将透明背景的PNG图像调整大小/转换为JPEG时,如何用白色替换黑色背景...
  4. 线性求逆元模板_ACM 数论基本模板
  5. 为什么不要使用finalize方法
  6. 001_Maven入门
  7. oracle 日期加3个月,三个日期函数(十分有用)!!!!!!!!
  8. matlab考试湖北理工学院,电子信息工程导论课程教学大纲-电气与电子信息工程学院-湖北.DOC...
  9. httpservletrequest和requestbody是否可以同时使用_净水器超过三天没用,是否可以直接使用?...
  10. Android RecyclerView 间距全适配