BC#29A:GTY's math problem(math) B:GTY's birthday gift(矩阵快速幂)
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次,然后求其总和。
【分析】
#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(矩阵快速幂)相关推荐
- 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 * ...
- 【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) = ...
- foj2198 Problem 2198 快来快来数一数 dp 矩阵快速幂
Problem 2198 快来快来数一数 Accept: 67 Submit: 194 Time Limit: 1000 mSec Memory Limit : 65536 KB Problem De ...
- LightOJ 1070 Algebraic Problem (推导+矩阵快速幂)
题目链接:LightOJ 1070 Algebraic Problem 题意:已知a+b和ab的值求a^n+b^n.结果模2^64. 思路: 1.找递推式 得到递推式之后就是矩阵快速幂了 注意:模2^ ...
- DUToj1085 Water Problem(矩阵快速幂)
Problem I: Water Problem Time Limit:3000/1000 MS (Java/Others) Memory Limit:163840/131072 KB (Java ...
- 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 * ...
- 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 ...
- 43行代码AC——HDU 1757 A Simple Math Problem(矩阵快速幂,附快速幂讲解)
一道经典的矩阵快速幂模板题. 传送门1-->快速幂基本思想 传送门2-->矩阵快速幂讲解(教主传授) 代码(去掉空行43行) #include<iostream> #inclu ...
- HDU 1757 A Simple Math Problem (矩阵快速幂)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1757 在吴神的帮助下才明白如何构造矩阵,还是好弱啊. 此处盗一张图 1 #include <io ...
最新文章
- bootstrap 模态窗口 多重/多个弹窗滚动条补丁
- mongoose知识点总结
- gsonformat插件_收藏非常有用的IDEA插件,没用过这些IDEA插件?怪不得写代码头疼
- ASP.NET Core技术研究-探秘依赖注入框架
- 函数式编程很难,这正是你要学习它的原因
- ElasticSearch API文档查看
- Hexo NexT主题添加点击爱心效果
- Response.Clear() Response.ClearContent()和Response.ClearHeaders()之间的区别
- 用wxpython编写登录界面_wxpython+pymysql实现用户登陆功能
- 捡到iphone6怎么解锁_赛博朋克2077前期手枪用哪个好?2077节制结局及银杯节制解锁条件...
- 带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑
- OpenOffice实现word文档在线预览
- 基于周志华西瓜数据集的决策树算法及准确率测试
- Junit Test a getter
- bbs.ncar forum.php,无删减又好看的美剧资源网站
- 《C语言及程序设计》实践参考——回文、素数
- ffmpeg加水印、logo等
- GBase xdm管理端
- linux压缩命令-----zip
- 今日头条在线检测文章原创度,保障创作独特性!
热门文章
- 计算机高校应用现状的参考文献,【计算机应用论文】高校计算机实验室管理思考探索(共4094字)...
- mysql 5.7解压缩_mysql 5.7.22 解压缩安装
- php改变图片大小png背景变黑,php – 当将透明背景的PNG图像调整大小/转换为JPEG时,如何用白色替换黑色背景...
- 线性求逆元模板_ACM 数论基本模板
- 为什么不要使用finalize方法
- 001_Maven入门
- oracle 日期加3个月,三个日期函数(十分有用)!!!!!!!!
- matlab考试湖北理工学院,电子信息工程导论课程教学大纲-电气与电子信息工程学院-湖北.DOC...
- httpservletrequest和requestbody是否可以同时使用_净水器超过三天没用,是否可以直接使用?...
- Android RecyclerView 间距全适配