day1:
设x+y=c
c3=x3+y3+3x2y+3xy2
=x3+y3+3xy(x+y)
=x3+y3+3bc
=c3
=>x3+y3=c3−3bc
a=c3−3bc
移项
c3−3bc−a=0
令c=u+v其中u和v是任取的,把这个式子代入方程,我们得到
(u+v)3+3b(u+v)−a=0
展开
u3+3u2v+3uv2+v3+3bu+3bv−a=0
提取公因式
u3+v3+3uv(u+v)+3b(u+v)−a=0
提取公因式
u3+v3+(u+v)(3uv+3b)−a=0
因为u和v是任取的,令3uv+3b=0
则有
uv=−b
u3+v3=a
令M=u3,N=v3则
MN=−b3
M+N=a
推一下
M=a+√a2+4v32
N=a−√a2+4v32
所以
u=(a+√a2+4v32)13
v=(a−√a2+4v32)13
所以
c=u+v=(a+√a2+4v32)13+(a−√a2+4v32)13
day2:
简单:
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n;
int a[N],q[N];
int l,r,mid,len;
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
for(int i=0;i<n;i++)
{
l=0,r=len;
while(l<r)
{
mid=l+r+1>>1;
if(q[mid]<a[i]) l=mid;
else r=mid-1;
}
len=max(len,r+1);
q[r+1]=a[i];
}
cout<<len;
return 0;
}
塔塔利亚-卡丹诺公式!!!
yes!
qpzc
谢谢