emmm
改题稍紧张,以后几篇并一起写
9.6
(前十并没有参加本次考试)
于是我就rank8了
一道题一道题来
先说T1:
显然是一个高精度GCD,于是打算用计算器算一下时间复杂度
众所周知gcd是log的
于是...
按这样算显然会T对吧
所以我放弃了
但考后发现
计算器运算优先级锅了
其实是:
完全可过
P.S.鉴于高精取模并不好打,我yy出了多一个log的只用高精加&&减的做法
代码:
#include<iostream>
#include<cstdio> #include<string> #include<cstring> using namespace std; #define int long long char ch[105]; struct num{ int a[1005]; int opt; friend num operator +(num a,num b) { num c;int k=0; c.clear(); c.a[0]=max(a.a[0],b.a[0]); /*cout<<"add:"<<endl; a.out(),b.out(); cout<<a.a[0]<<" "<<b.a[0]<<endl;*/ for(int q=1;q<=c.a[0];q++) { c.a[q]=a.a[q]*(q<=a.a[0])+b.a[q]*(q<=b.a[0])+k; k=c.a[q]/10; c.a[q]%=10; } if(k) c.a[++c.a[0]]=k; c.a[0]=100; while(!c.a[c.a[0]]&&c.a[0]) c.a[0]--; //cout<<"before pre:"<<endl;c.out(); //char ch=getchar(); c.pre(); //cout<<"after pre:"<<endl;c.out(); c.a[0]=100;
8
| 859乔屹 | 30
03:11:03
| 60
03:13:36
| 40
03:14:28
| 130
03:14:28
|
while(!c.a[