#15337: 見笑了! 高手可否點化點化


hshua (hshua)

學校 : 新北市立林口高級中學
編號 : 52506
來源 : [163.20.185.250]
最後登入時間 :
2025-01-15 11:24:44
c226. 公關的大雞腿 | From: [220.133.124.237] | 發表日期 : 2018-09-28 22:20

這樣還是TLE !!!
見笑了! 高手可否點化點化

#include <iostream>
#include<string.h>
using namespace std;
typedef long long ll;
int cnt;
ll n,m,a,sum;
//--------------------------------------------
void Check(){
    if(m<=3) return;

    while(m>3 && a>3){
        if(sum==n) {
            cnt++;  
            m=(m+1)/2;
            a=m, sum=m;
        }
        else if(sum<n) { a--; sum+=a; }
        else if(sum>n) {
            m=(m+1)/2;
            a=m, sum=m;
        }
    }
}
//============================================
int main(){
    while(cin>>n){
        if(n==0) break;

        if(n%2==0 || n==1 || n==2) cout<<"0\n"; //偶數,無解
        else if(n==3) cout<<"1\n";
        else{//奇數
             cnt=1;
             m=(n+1)/2;
             a=m, sum=m;
             if(m>3) Check();
             
             cout<<cnt<<"\n";
        }
    }
}

 

 

 

 
#45189: Re: 見笑了! 高手可否點化點化


kaohoward (Orz)

學校 : 高雄市立高雄高級中學
編號 : 288265
來源 : [114.39.6.138]
最後登入時間 :
2025-01-19 21:02:50
c226. 公關的大雞腿 | From: [220.143.146.157] | 發表日期 : 2025-01-22 17:10

我也tle...
不過想問一下為什麼偶數無解
像12就等於3+4+5啊?

 



 
ZeroJudge Forum