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. cxgrid中,如何根据列名或字段名取得footer值

    注意,不是根据index取得footer值cxgrdtbv1.DataController.Summary.FooterSummaryValues[0]; ------解决方案------------ ...

  2. getResource()的使用总结 ;

    1.通过ClassLoader来加载getResource()时不需要加 "/" 因为source是从main开始的; Thread.currentThread().getCont ...

  3. 命令行执行python文件时提示ImportError: No module named 'xxx'

    背景: 最近在写接口自动化测试框架的时候发现,框架使用pycharm ide的时候可以正常跑测试用例,但是在dos窗口输入命令执行测试的时候,import项目内部的包时报错“ModuleNotFoun ...

  4. hbase 原子操作cas

    在高并发的情况下,对数据row1  column=cf1:qual1, timestamp=1, value=val1的插入或者更新可能会导致非预期的情况, 例如:原本客户端A需要在value=val ...

  5. MT【126】点对个数两题之二【图论】

    在平面上有\(n\) 个点$S={x_1,x_2\cdots,x_n}, $ 证明在这 \(n\) 个点中距离为 \(1\) 的点对数不超过 \(\dfrac{n}{4}+\dfrac{2}{2}n^ ...

  6. Ubuntu实用软件安装[转]

    Gedit编辑器配置 Ubuntu14.04从安装软件到卸载软件,删除安装包 linux wget 命令用法详解(附实例说明) ==================================== ...

  7. 【BZOJ4710】[JSOI2011]分特产(容斥)

    [BZOJ4710]分特产(容斥) 题面 BZOJ 题解 比较简单吧... 设\(f[i]\)表示至多有\(i\)个人拿到东西的方案数. \(f[i]=\prod_{j=1}^m C_{m+i-1}^ ...

  8. Linux进程间通信(消息队列/信号量+共享内存)

    写在前面 不得不说,Deadline果真是第一生产力.不过做出来的东西真的是不堪入目,于是又花了一早上重写代码. 实验内容 进程通信的邮箱方式由操作系统提供形如 send()和 receive()的系 ...

  9. BZOJ5305 [Haoi2018]苹果树 【组合数学】

    题目链接 BZOJ5305 题解 妙啊 要求的是所有可能的树形的所有点对距离和 直接考虑点的贡献肯定想不出,这样的所有点对距离问题通常转化为边的贡献 考虑一条边会产生多少贡献 我们枚举\(i\)节点的 ...

  10. Active Directory PowerShell模块收集AD信息

    0x00 前言简介 Microsoft为Windows Server 2008 R2(以及更高版本)提供了多个Active Directory PowerShell cmdlet,这大大简化了以前需要 ...