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. js 算法

    var str=‘abscdf’; function solution(str){ var arr=new Array(); if(str.length%2==0){ for(i=0;i<str ...

  2. 停止ipv6

    在Centos5.5默认的状态下,ipv6是被启用的.因为我们不使用ipv6,所以,可以停止ipv6,以最大限度地保证安全和快速.首先确认一下ipv6是不是处于被启动的状态.[root@sample ...

  3. <构建之法>前三章读后感—软件工程

    本教材不同于其他教材一贯的理知识直接灌溉,而是以对话形式向我们传授知识的,以使我们更好地理解知识点,更加清晰明确. 第一章 第一章的概述中,书本以多种方式,形象生动地向我们阐述了软件工程的内容,也让我 ...

  4. CSS和JS引用图片(资源)的路径问题

    做项目时遇到了这个问题,特此写个笔记记一下

  5. js本地储存userData实例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...

  6. Luogu4884 多少个1?(BSGS)

    11……1(n个)=99……9(n个)/9=(10n-1)/9. 那么显然就是求离散对数了,BSGS即可. #include<iostream> #include<cstdio> ...

  7. P1896 [SCOI2005]互不侵犯

    题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. 注:数据有加强(2018/4/25) ...

  8. c++11 List 容器

    c++11 List 容器 List简介 list是一个双向链表容器        可高效地进行插入删除元素.         list不可以随机存取元素,所以不支持at(pos)函数与[]操作符.  ...

  9. 【刷题】BZOJ 1537 [POI2005]Aut- The Bus

    Description Byte City 的街道形成了一个标准的棋盘网络 – 他们要么是北南走向要么就是西东走向. 北南走向的路口从 1 到 n编号, 西东走向的路从1 到 m编号. 每个路口用两个 ...

  10. BZOJ 2742: [HEOI2012]Akai的数学作业

    2742: [HEOI2012]Akai的数学作业 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 535  Solved: 226[Submit][S ...