哈理工(HUST)第八屆程式設計競賽--小樂樂的組合數
阿新 • • 發佈:2018-12-04
這道題目是一道數學題,我們可以假設n為7,m為14。
這樣的話我們就可以很清晰地看到7和7可以拼接在一起,這是一對,然後是7和14拼接在一起,第二對。
我們可以直接讓n/7,m/7,這樣就是1*2,就得到了二。
我們還可以知道,1可以和6拼,1可以和13拼,我們可以用迴圈從一找到六,檢視 n和m裡面總共有幾對。
然後就是n和m模7之後的 餘數了,每一個餘數,都可以和n和m中的1~6迴圈拼接一次,所以我們要直接在迴圈語句
裡面加上這一句,然後就是餘數和餘數的拼接了,我們直接把它加在可以乘上的次數之上就可以了,還是上程式碼吧。
#include <iostream> #define ll long long using namespace std; int main() { ll n,m; cin>>n>>m; ll ans=0; for (int i=1;i<=6;i++) { ll x=n/7+(((n%7)>=i)?1:0); ll y=m/7+(((m%7)>=(7-i))?1:0); ans+=x*y; } ans+=(n/7)*(m/7); cout<<ans<<endl; return 0; }
值得注意的一點是,n和m都要開成long long 的,不然過不了。