kaedeakari @ 2024-07-18 09:43:18
试着自己写了一个
理论上O2优化应该是加速代码运行速度的,但为什么反而会超时呢?求大佬解惑。
附上代码(仅供调试):
#include <iostream>
#include <cmath>
using namespace std;
struct HQNumber{
int digits[500]={0};
HQNumber operator*(HQNumber &B){
HQNumber ans;
int dP = 0;
for(int i=0;i<500;i++){
ans.digits[i] += dP;
for(int j=0;j<=i;j++){
ans.digits[i] += digits[j]*B.digits[i-j];
}
dP = ans.digits[i]/10;
ans.digits[i] %= 10;
}
return ans;
}
};
ostream & operator<<(ostream &out, HQNumber &B){
for(int i=0;i<10;i++){
for(int j=0;j<50;j++){
cout << B.digits[499-i*50-j];
}
cout << endl;
}
}
int main(){
int P;
cin >> P;
cout << ceil(P*log10(2)) << endl;
HQNumber base, ans;
base.digits[0] = 2;
ans.digits[0] = 1;
for(int b=P;b;b/=2){
if(b%2==1){
ans = ans * base;
}
base = base * base;
}
ans.digits[0] --;
cout << ans;
return 0;
}
by jmy2012 @ 2024-07-18 09:47:52
本题的氧气有毒