GTY's math problem

Time Limit: 1000/1000 MS
(Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 0    Accepted Submission(s): 0

Problem Description

GTY is a GodBull who will get an Au in
NOI . To have more time to learn algorithm knowledge, he never does his math
homework. His math teacher is very unhappy for that, but she can't do anything
because GTY can always get a good mark in math exams. One day, the math teacher
asked GTY to answer a question. There are four numbers on the blackboard - a,b,c,d. The math teacher wants GTY to compare ab with cd. Because GTY never does his homework,
he can't figure out this problem! If GTY can't answer this question correctly,
he will have to do his homework. So help him!

Input

Multi test cases (about 5000). Every
case contains four integers a,b,c,d(1≤a,b,c,d≤1000)separated by spaces. Please process to
the end of file.

Output

For each case , if ab>cd , print '>'. if ab<cd , print '<'. if ab=cd , print '='.

Sample Input

2 1 1 2

2 4 4 2

10 10 9 11

Sample Output

>

=

<

GTY's math problem

Time Limit: 1000/1000 MS
(Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1636    Accepted Submission(s): 298

问题描述

众所周知,GTY是一位神犇,为了更好的虐场,他从来不写数学作业而是去屠题,他的数学老师非常不爽,但由于GTY每次考试都AK,她也不能说什么,有一天老师在黑板上写了四个数——a,b,c,d 然后让GTY比较abcd的大小,由于GTY不屑于虐这道题,就把这个问题交给你了。

输入描述

多组数据(约5000组),每组数据包含4个整数a,b,c,d(1≤a,b,c,d≤1000),用空格隔开

输出描述

对于每组数据,若ab>cd,输出”>”, 若ab<cd,输出”<”, 若ab=cd,输出”=”

输入样例

2 1 1 2

2 4 4 2

10 10 9 11

输出样例

>

=

<

思路  log(a^b)=b∗log(a)  注意精度!

#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
#define emp (1e-8)
int main()
{
double a,b,c,d;
while(scanf("%lf%lf%lf%lf",&a,&b,&c,&d)!=EOF)
{
if(fabs(b*log(a)-d*log(c))<=emp)
printf("=\n");
else if(b*log(a)>d*log(c))
printf(">\n");
else if(b*log(a)<d*log(c))
printf("<\n");
}
return ;
}

GTY's birthday gift

Time Limit: 2000/1000 MS
(Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 0    Accepted Submission(s): 0

Problem Description

FFZ's birthday is coming. GTY wants to
give a gift to ZZF. He asked his gay friends what he should give to ZZF. One of
them said, 'Nothing is more interesting than a number multiset.' So GTY decided
to make a multiset for ZZF. Multiset can contain elements with same values.
Because GTY wants to finish the gift as soon as possible, he will use JURUO
magic. It allows him to choose two numbers a and b(a,bS), and add a+b to the multiset. GTY can use the magic
for k times, and he wants the sum of the multiset is maximum, because the
larger the sum is, the happier FFZ will be. You need to help him calculate the
maximum sum of the multiset.

Input

Multi test cases (about 3) . The first
line contains two integers n and k (2≤n≤100000,1≤k≤1000000000). The second line contains n elements ai (1≤ai≤100000)separated by spaces , indicating the
multiset S .

Output

For each case , print the maximum sum of
the multiset (mod 10000007).

Sample Input

3 2

3 6 2

Sample Output

35

GTY's birthday gift

Time Limit: 2000/1000 MS
(Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 585    Accepted Submission(s): 103

问题描述

GTY的朋友ZZF的生日要来了,GTY问他的基友送什么礼物比较好,他的一个基友说送一个可重集吧!于是GTY找到了一个可重集S,GTY能使用神犇魔法k次,每次可以向可重集中加入一个数 a+b(a,bS),现在GTY想最大化可重集的和,这个工作就交给你了。

注:可重集是指可以包含多个相同元素的集合

输入描述

多组数据(约3组),每组数据的第一行有两个数n,k(2≤n≤100000,1≤k≤1000000000) 表示初始元素数量和可使用的魔法数,第二行包含n个数a(1≤ai≤100000)表示初始时可重集的元素

输出描述

对于每组数据,模10000007输出可重集可能的最大和。

输入样例

3 2

3 6 2

输出样例

35

这题是典型的矩阵快速幂:

这是公式:

#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define LL __int64
#define mod 10000007 int N; struct matrix
{
LL m[][];
};
int a[]; matrix multiply(matrix x,matrix y)
{
matrix temp;
memset(temp.m,,sizeof(temp.m));
for(int i=; i<; i++)
{
for(int j=; j<; j++)
{
if(x.m[i][j]==) continue;
for(int k=; k<; k++)
{
if(y.m[j][k]==) continue;
temp.m[i][k]+=x.m[i][j]*y.m[j][k]%mod;
temp.m[i][k]%=mod;
}
}
}
return temp;
} matrix quickmod(matrix a,int n)
{
matrix res;//单位阵
memset(res.m,,sizeof(res.m));
for(int i=;i<;i++) res.m[i][i]=;
while(n)
{
if(n&)
res=multiply(res,a);
n>>=;
a=multiply(a,a);
}
/* for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
printf("%8d",res.m[i][j]);
printf("\n");
}
printf("\n");*/
return res;
}
int main()
{
int n,k;
while(scanf("%d%d",&n,&k)!=EOF)
{
LL sum=;
for(int i=;i<n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
sort(a,a+n);
matrix ans;
ans.m[][]=;ans.m[][]=;ans.m[][]=;
ans.m[][]=;ans.m[][]=;ans.m[][]=;
ans.m[][]=;ans.m[][]=;ans.m[][]=;
ans=quickmod(ans,k); printf("%d\n",(ans.m[][]*sum+ans.m[][]*a[n-]+ans.m[][]*a[n-])%mod);
}
return ;
}

今天忘记报名BC了,只能现在做了。才做了2题!还要加油啊。

矩阵快速幂,还得谢谢庆神当初的传授啊。。。。哈哈!

BestCoder Round #29——A--GTY's math problem(快速幂(对数法))、B--GTY's birthday gift(矩阵快速幂)的更多相关文章

  1. HDU5171 GTY's birthday gift —— 矩阵快速幂

    题目链接:https://vjudge.net/problem/HDU-5171 GTY's birthday gift Time Limit: 2000/1000 MS (Java/Others)  ...

  2. 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库中有关的对数函数返回的都是浮点数,所以这又要涉 ...

  3. HDU 5171 GTY's birthday gift 矩阵快速幂

    GTY's birthday gift Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

  4. BestCoder Round #29 1003 (hdu 5172) GTY's gay friends [线段树 判不同 预处理 好题]

    传送门 GTY's gay friends Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Ot ...

  5. BestCoder Round #29 GTY's gay friends

    #include <cstdio> #include <cstring> #include <vector> #include <algorithm> ...

  6. HDU 5170 GTY's math problem 水题

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5170 bc(中文):http://bestcoder.hdu.edu.cn/contests ...

  7. HDU 5170 GTY's math problem

    数学题,a的b次方和c的d次方都很大,直接判断是做不出来的. 如果我们能找到一个函数F(x)是单调的,而F(X)的值又比较好算,那么可以通过比较F(X)的大小来判断自变量的大小. 令F(X)=log( ...

  8. hdu 5170 GTY's math problem(水,,数学,,)

    题意: 给a,b,c,d. 比较a^b和c^d的大小 思路: 比较log(a^b)和log(c^d)的大小 代码: int a,b,c,d; int main(){ while(scanf(" ...

  9. BestCoder Round #70 Jam's math problem(hdu 5615)

    Problem Description Jam has a math problem. He just learned factorization. He is trying to factorize ...

随机推荐

  1. mongdb window 服务安装批处理

    安装mongodb 3.x 安装完毕后 将以下代码保存为批处理 然后用管理员权限执行就可以成功安装服务了 cd C:\Program Files\MongoDB\Server\3.0\binmongo ...

  2. ubuntu下sqlite命令

    介绍 Linux上的小巧的数据库,一个文件就是一个数据库. 安装Sqlite3 要安装 Sqlite3,可以在终端提示符后运行下列命令: sudo apt-get install sqlite3 检查 ...

  3. 【CF600E】 Lomsat gelral

    CF600E Lomsat gelral Solution 考虑一下子树的问题,我们可以把一棵树的dfn序搞出来,那么子树就是序列上的一段连续的区间. 然后就可以莫队飞速求解了. 但是这题还有\(\T ...

  4. UVA12888 【Count LCM】(莫比乌斯反演)

    题意:求\(\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==1]\) \(assume\ n<m\) \(\sum_{i=1}^{n}\sum_{j=1}^{m}[ ...

  5. nsurlsessiond - taking up all bandwidth!! Help ?

    https://discussions.apple.com/thread/6605949?start=0&tstart=0 #!/bin/sh launchctl unload /System ...

  6. Akka(42): Http:身份验证 - authentication, authorization and use of raw headers

    当我们把Akka-http作为数据库数据交换工具时,数据是以Source[ROW,_]形式存放在Entity里的.很多时候除数据之外我们可能需要进行一些附加的信息传递如对数据的具体处理方式等.我们可以 ...

  7. 【rocketMQ】1、搭建MQ服务器,生产一个订单与消费一个订单

    1. 先解压 2. maven编译安装.(注意虚拟机采用nat网络模式,需要联网) mvn -Prelease-all -DskipTests clean install -U 启动nameser节点 ...

  8. SSDT Hook实现内核级的进程保护

    目录 SSDT Hook效果图 SSDT简介 SSDT结构 SSDT HOOK原理 Hook前准备 如何获得SSDT中函数的地址呢 SSDT Hook流程 SSDT Hook实现进程保护 Ring3与 ...

  9. FactoryMethod工厂方法模式升级成AbstractFactory抽象工厂模式

    具体参考抽象工厂(AbstractFactory)模式-创建型模式,本文在FactoryMethod工厂方法模式(创建型模式)的基础上进行业务进一步抽象,不做详细原理介绍. 1.在FactoryMet ...

  10. 一口一口吃掉Volley(三)

    欢迎访问我的个人博客转发请注明出处:http://www.wensibo.top/2017/02/17/一口一口吃掉Volley(三)/ 学习了一口一口吃掉Volley(二)之后,你应该已经学会了如何 ...