「CF656B」 Scrambled 解題報告
阿新 • • 發佈:2018-12-17
咳咳~這……不是一道惡意評分題?
其實這也是一篇不正兒八經的題解這不是一篇科普文嗎?!
好吧,首先資料都很小,立馬想到暴力
那麼,怎麼暴力呢?/摸下巴
先看題目,我們可以發現,題目對精度的要求很小——也就是$10^{-4}$
所以,我們可以猥瑣魚尾 為所欲為 用各種神奇的方法求解
作為一名低學歷的OIer,我想引用初中數學八上?八下?的內容——用頻數估計頻率
還記得那個拋硬幣的實驗嗎?
實踐出真知可是小平爺爺說的!
秉承著優良的傳統,我們就來
列舉吧!
列舉從當前往後1,000,000(別數了,十萬,一百萬~)天包括當前天,所以迴圈寫(其實問題也不大)
i = 0 to Max-1
我話~~ 不 ~~多,上程式碼
#include<bits/stdc++.h> #define Max 1000000 using namespace std; int n; int a[20]; int b[20]; int ans; int read() { int s=0; char c=getchar(); while(!isdigit(c)) c=getchar(); while(isdigit(c)) { s=(s<<1)+(s<<3)+c-'0'; c=getchar(); } return s; } int main() { int i,j; n=read(); for(i=1;i<=n;i++) a[i]=read(); for(i=1;i<=n;i++) b[i]=read(); for(j=0;j<Max;j++)//實踐出真知! for(i=1;i<=n;i++) if(j%a[i]==b[i]) { ans++; break; } printf("%lf",ans/1000000.0);//就這樣~~水了~~過去?! return 0; }