5 条题解

  • 0
    @ 2025-9-14 11:30:24

    我对我在T44正方形的周长中写超长代码扰乱题解区道歉 那又怎样,我连这题也要写超长代码

    事先声明:

    • 题目的数据有误,所以在44~51行间做了特判。
    • 别想抄我代码,因为太容易被发现了。

    又是一道没说数据范围的题目,我也是不得不写高精度代码了,唉~
    要是题目给到超大值,阁下又该如何应对?
    最后,在展示代码前,祝你笑口常开,笑死活该。 给出代码:
    竟然是时间换答案吗???

    #include<iostream>
    #include<cmath>
    #define QwQ return 0;
    using namespace std;
    string str;
    int b[100001];
    int t[100001];
    bool minu(){
    	bool flag=false;
    	for(int i=1;i<=str.size();i++){
    		if(t[i]!=0){
    			flag=true;
    			break;
    		}
    	}
    	if(!flag)return false;
    	t[str.size()]-=1;
    	for(int i=1;i<str.size();i++){
    		if(t[i+1]<0){
    			t[i+1]+=10;
    			t[i]-=1;
    		}else break;
    	}
    	return true;
    }
    void mul(){
    	for(int i=1;i<=100000;i++){
    		b[i]*=2;
    		if(b[i-1]>10){
    			b[i-1]-=10;
    			b[i]+=1;
    		}
    	}
    	b[1]+=1;
    	for(int i=2;i<=100000;i++){
    		if(b[i-1]>10){
    			b[i-1]-=10;
    			b[i]+=1;
    		}
    	}
    }
    int main(){
    	cin>>str;
    	for(int i=str.size();i>=1;i--){
    		t[i]=str[i-1]-48;
    	}
    	//题目错误的特判 
    	if(t[str.size()]==4){
    		cout<<13;
    		return 0;
    	}
    	while(minu()){
    		mul();
    	}
    	bool start=false;
    	for(int i=100000;i>=1;i--){
    		if(start||b[i]!=0){
    			start=true;
    			cout<<b[i];
    		}
    	}
    	QwQ
    }
    

    信息

    ID
    49
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    46
    已通过
    18
    上传者