程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> cf 150&&152 div 2

cf 150&&152 div 2

編輯:C++入門知識

#150上次做了忘寫解題報告了,不過也因為做的很爛,最近想回過頭來重新做一遍。
#152昨天晚上做的,做的也很爛,最近熬夜熬得扛不住了。
先把文章寫這,做完了補上代碼,也算是個提醒吧。
round #150
A。不貼了,太水了。
B。
[cpp]
ll n; 
set<int>ss; 
void dfs(ll x,int y,int z)//x 為構造的數,y,z分別為2個數字,就是用y和z 2個數字構造的x. 

    if(x>n)return ; 
    ss.insert(x); 
    if(x==0&&y==0&&z==0)return ; 
    if((x==0&&y==0)) 
    { 
        dfs(x+z,y,z); 
    } 
    else if(x==0&&z==0) 
    { 
        dfs(x+y,y,z); 
    } 
    else 
    { 
        dfs(x*10+y,y,z); 
        dfs(x*10+z,y,z); 
    } 

void solveB() 

    cin>>n; 
    for(int i=0; i<10; i++) 
        for(int j=0; j<10; j++) 
            dfs(0,i,j); 
    cout<<ss.size()-1<<endl; 

C
D
E
round #152
A,水題。
B。一開始想是JAVA爆搞,因為最多是210次循環,以為能搞,沒想到還是TLE了,因為JAVA大數的運算實在太費時間了。一個pow(10^5)估計就超時了。
然後打了個4-100位的表,發現最後3位是有循環節的。分別是50,80,170,20,200,110。
接下來就很簡單了。
[cpp]
string aa[]={"50","80","170","20","200","110"}; 
void solveB() 

    int n; 
    cin>>n; 
    if(n<=2) 
    cout<<-1<<endl; 
    else 
    { 
        if(n==3) 
        cout<<210<<endl; 
        else 
        { 
            int l=n-1-aa[(n-4)%6].size(); 
            cout<<1; 
            for(int i=0;i<l;i++) 
            cout<<0; 
            cout<<aa[(n-4)%6]<<endl; 
        } 
    } 

C
D
E
太水了,趕緊把其他題A了。。。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved