2023年Web開發趨勢與未來展望
探索2023年最重要的Web開發趨勢,從服務器端渲染到WebAssembly,從低代碼平臺到AI輔助開發...
閱讀更多
*267題
原題傳送門:http://oj.tfls.net/p/267
題解:
#include<bits/stdc++.h> using namespace std; int c,m; int ans[30]; int sz[1005] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6, 8, }; // 這里對應 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, }; int main(){ cin>>m; for (int i=11; i<=1000; i++){ sz[i]=sz[i/10]+sz[i%10]; }//這里通過前面的1-10來計算后面的11-1001 for (int i=0; i<1000; i++){//第一個加數 for (int j=0; j<1000-i; j++){//第二個加數 c=i+j; ans[sz[i]+sz[j]+sz[c]+4]++; } } cout<<ans[m]; return 0; } 方法:我用的是兩個數相加得第三個數,總共的火柴根數記錄在數組里,每一個可能都計算一遍,需要哪一個直接調用 雖然數據比較全,但速度慢了很多 說明:這里我原本以為是三個一位數,就用了0-9來存取,和不大于9 后來一直爆零,就用原樣輸出看看數據和答案 #include<bits/stdc++.h> using namespace std; int main(){ int m; cin>>m; cout<<m; return 0; }
發現m=24時有高達128個答案,而兩個一位數只有100種可能
于是我聰明的大腦立刻明白肯定不是一位數。

這里我原樣輸出,把它輸入的原樣輸出,所以“讀取到”的是輸入,“應為”是正確答案,也算是取巧了吧,不過我保證沒有按照答案寫程序
然后我開始算更大的范圍,從一位數擴展到兩位數,再到四位數,在最大范圍1005時滿分通過
這個題還是很離譜的,要不是我范圍夠大,誰能想到m=24時,加數居然到了711!

這個是m=24的后邊的一些結果,可以看到,范圍真的離譜
第一次寫博客,留個紀念