tty的方程math

Time Limit: 50 Sec  Memory Limit: 128 MB

Description 

  给定n、m、k、p。

  a+b+c=n, a^2+b^2+c^2=m, a^3+b^3+c^3=k。

  求a^p+b^p+c^p。

Input

  输入n、m、k、p

Output

  以A/B形式表示答案。

Sample Input

  5 7 11 4

Sample Output

  27/1

HINT

  0<=n,m,k <=20,0<=p<=10

Solution

 \begin {align}
&a^p+b^p+c^p\:\:①
\\
\\&(a+b+c)*(a^{p-1}+b^{p-1}+c^{p-1})\:\:②
\\=&a^{p}+b^{p}+c^{p}+ab^{p-1}+ac^{p-1}+ba^{p-1}+bc^{p-1}+ca^{p-1}+cb^{p-1}
\\
\\∴&①-②
\\=&-(ab^{p-1}+ac^{p-1}+ba^{p-1}+bc^{p-1}+ca^{p-1}+cb^{p-1})
\\
\\&(ab+bc+ac)*(a^{p-2}+b^{p-2}+c^{p-2})\:\:③
\\=&ba^{p-1}+ab^{p-1}+abc^{p-2}+bca^{p-2}+cb^{p-1}+bc^{p-1}+ca^{p-1}+acb^{p-1}+ac^{p-1}
\\
\\∴&①-②+③=
\\=&bca^{p-2}+acb^{p-2}+abc^{p-2}
\\=&abc(a^{p-3}+b^{p-3}+c^{p-3})\:\:④
\\
\\∴&①-②+③=④即①=②-③+④
\\
\\&那么现在问题就是如何求出(a+b+c),(ab+ac+bc),(abc)。
\\&首先题目给定了a+b+c=n,a^2+b^2+c^2=m,a^3+b^3+c^3=k,那么:
\\
\\1.&a+b+c=n
\\2.&(a+b+c)^2=a^2+b^2+c^2+2ab+2ac+2bc
\\&ab+ac+bc=\frac{n^2-m}2
\\3.&(a+b+c)^3=a^3+b^3+c^3+3a^2b+3ab^2+3a^2c+3ac^2+3b^2c+3bc^2+6abc.
\\&a^2b+ab^2+a^2c+ac^2+b^2c+bc^2=(ab+ac+bc)*(a+b+c)-3abc
\\&n^3=k+3* \frac{(n^2-m) * n}2-9abc+6abc
\\&abc=\frac{2*k+3n*(n^2-m)-2*n^3}{6}
\end {align}

math

  

Code

 #include<iostream>
#include<string>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
using namespace std;
typedef long long s64; const int ONE = ;
const int MOD = 1e9 + ; int get()
{
int res = , Q = ; char c;
while( (c = getchar()) < || c > )
if(c == '-') Q = -;
if(Q) res = c - ;
while( (c = getchar()) >= && c <= )
res = res * + c - ;
return res * Q;
} s64 gcd(s64 a, s64 b)
{
while(s64 r = a % b) {a = b; b = r;}
return b;
} int n, m, k, p;
struct power
{
s64 fz, fm;
}Ans[ONE], A, B, C, now; power Deal(power a, power b)
{
s64 fz = a.fz * b.fm + b.fz * a.fm, fm = a.fm * b.fm;
int p1 = fz > , p2 = fm > ;
fz = abs(fz), fm = abs(fm);
s64 r = gcd(fz, fm);
return (power){p1 * fz / r, p2 * fm / r};
} int main()
{
cin >> n >> m >> k >> p;
if(p == ) {printf(""); return ;}
Ans[] = (power){n, };
Ans[] = (power){m, };
Ans[] = (power){k, }; A = (power){n, };
B = (power){n * n - m, };
C = (power){ * k + * n * (n * n - m) - * n * n * n, }; for(int i = ; i <= p; i++)
{
power now = (power){A.fz * Ans[i-].fz, A.fm * Ans[i-].fm};
now = Deal(now, (power){C.fz * Ans[i-].fz, C.fm * Ans[i-].fm});
now = Deal(now, (power){-B.fz * Ans[i-].fz, B.fm * Ans[i-].fm}); Ans[i] = now;
} printf("%d/%d", Ans[p].fz, Ans[p].fm);
}

【Foreign】tty的方程math [数学]的更多相关文章

  1. JS之路——Math数学对象

    Math数学对象 ceil(数值)大于或等于该数的最小整数 floor(数值)小于或等于该数的最大整数 min(数值1,数值2)返回最小值 max(数值1,数值2)返回最大值 pow(数值1,数值2) ...

  2. 常用类--Date日期类,SimpleDateFormat日期格式类,Calendar日历类,Math数学工具类,Random随机数类

    Date日期类 Date表示特定的时间,精确到毫秒; 构造方法: public Data() public Date(long date) 常用方法: public long getTime() pu ...

  3. Lua的函数的定义、math数学函数、lua字符串的处理、lua支持的字符串类、模式串中的特殊字符_学习笔记04

    Lua的函数的定义.math数学函数 定义函数 function [function name] (param1,param2) [function code] --定义一个函数用来求的两个数字的和 ...

  4. day14-Python运维开发基础(内置函数、pickle序列化模块、math数学模块)

    1. 内置函数 # ### 内置函数 # abs 绝对值函数 res = abs(-10) print(res) # round 四舍五入 (n.5 n为偶数则舍去 n.5 n为奇数,则进一!) 奇进 ...

  5. Math 数学类

    /* Math 数学类, 主要是提供了很多的数学公式. abs(double a) 获取绝对值 ceil(double a) 向上取整 floor(double a) 向下取整 round(float ...

  6. 四 js Math数学简单使用

    //Math是全局的 //Math.PI 数学里的3.1415926.... console.log(Math.PI); //取随机数 //js提供的随机函数 Math.random() --> ...

  7. java Math数学工具及Random随机函数

    Math类包含用于执行基本数学运算的方法,如绝对值.对数.平方根和三角函数.它是一个final类,其中定义的都是一些常量和静 态方法.常用方法如下:public static double sqrt( ...

  8. hdu-5675 ztr loves math(数学)

    题目链接: ztr loves math  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536/65536 K (Java/Othe ...

  9. 21.1 Math(数学运算)方法使用 、工具类

    package day21_static.meathDemo; //Math: 包含一些基本的数学运算方法 //从api中搜Math,它都用的static修饰. public class MethDe ...

随机推荐

  1. Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?

    Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?    答:    网卡配置文件路径:/etc/sysconfig/network-scripts/ifcfg- ...

  2. QTime的本质上是一个int,QDateTime本质上是一个qint64

    研究这个问题的起因发现使用<=比较时间的不准确,所以怀疑是一个浮点数(Delphi里的time就是一个浮点数).结果却发现是一个int class Q_CORE_EXPORT QTime { e ...

  3. forEach遍历数组对象且去重

    forEach遍历数组对象 var obj1 = [{ key: '01', value: '哈哈' }, { key: '02', value: '旺旺' }, { key: '03', value ...

  4. SpringMVC框架并发时出现id变成另外一个用户id问题

    今天测试写的代码,出现了在用一个账户登录操作的时候,操作记录的是另外一个id. 经过查找网上的解决方案确认了问题:在controller里面定义了一个userid属性,每次都通过userid传输值.然 ...

  5. [LOJ3049] [十二省联考 2019] 字符串问题

    题目链接 LOJ:https://loj.ac/problem/3049 洛谷:https://www.luogu.org/problemnew/show/P5284 BZOJ:https://www ...

  6. [UVALive 3683] A Scheduling Problem

    图片加载可能有点慢,请跳过题面先看题解,谢谢 题目给出了一个信息:答案是有向边最长路 \(k\) 的值或者是 \(k+1\) 的值 那么题目就变成了:求是否有一种给无向边定向的方案,使得在以有向边最长 ...

  7. HDU.2516 取石子游戏 (博弈论 斐波那契博弈)

    HDU.2516 取石子游戏 (博弈论 斐波那契博弈) 题意分析 简单的斐波那契博弈 博弈论快速入门 代码总览 #include <bits/stdc++.h> #define nmax ...

  8. Idea的Maven使用

    使用SSM(Spring,SpringMVC和Mybatis) 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johns ...

  9. 哲学家问题(java)的三个解法

    //加synchronize进行同步 //释放资源又很快获得自身的资源,这样不妥,吃完的话休息100ms //每个人先申请编号小的筷子 public class Philosopher impleme ...

  10. SSO基于cas的登录

    概念介绍 1.定义 CAS ( CentralAuthentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法 ...