hdu1597的兩種解法

2021-08-26 19:07:37 字數 990 閱讀 8213

好吧,雖然是個水題,可以有個技巧。

有些題 可以直接用數學公式解決的、、、這裡鼓勵一下自己、、、、在幾次wa後,忍了忍 一直沒看解題報告

法一:打表,記錄1-65535的和(開始沒有注意到,計算到100000000,sum還是不夠2^31,後來算算前n項和才用計算到65535而已)。

由此也發現乙個問題,數字的儲存是乙個迴圈,先是正數,然後超出正數範圍後變成負數,再超出負數範圍變成正數。

#include using namespace std;

int sum[65536];

int main()

{ int k;

cin>>k;

int i;sum[0]=0;

for(i=1;i<65536;i++)

sum[i]=sum[i-1]+i;

while(k--)

{ int m;cin>>m;

for(i=1;i<65536;i++)

if(m<=sum[i]) break;

m-=sum[i-1];

m%=9;

if(m==0) cout<

轉變為解一元二次方程,因為前n項的和m=n*(n+1)/2.於是,n=sqrt(2m+0.25)

-0.5【ceil是向上取整函式】

**:#include #include using namespace std;

int main()

{ unsigned long n;

int k;

while(cin>>k)

{while(k--)

{cin>>n;

double i=ceil(sqrt(2*n*1.0+0.25)-0.5); //ceil()函式為向上取整

unsigned long j=(unsigned long)i-1;

n=n-j*(j+1)/2;

if(n%9)cout<

Bacon Number 兩種解法

view code 題目 cid 567 題目分析 與longth way 類似 這個好象就是傳說中的六度人脈,你只要通過六度人脈就可以找到世界上的任何乙個人。假設乙個人一生會認識n個人,那n n 1 n 2 n 3 n 4 n 5 n 6 世界總人數。給定一些邊確定乙個圖,即給定一些點之間的連通情...

The Longest Path 兩種解法

view code 題目 cid 567 題目分析 給定一些邊確定乙個圖,即給定一些點之間的連通情況,保證給定的圖沒有迴路,要求輸出該圖存在的最長路徑。思路分析 根據給定資訊構造圖,用鄰接表表示。鄰接矩陣明顯很麻煩且效率不高 將每乙個頂點看成是樹根,求出樹的高度。得到一系列樹的高度,最大的那個就是圖...

FBI樹兩種解法

問題描述 我們可以把由 0 和 1 組成的字串分為三類 全 0 串稱為b串,全 1 串稱為i串,既含 0 又含 1 的串則稱為f串。fbi樹是一種二叉樹,它的結點型別也包括f結點,b結點和i結點三種。由乙個長度為2n的 01 串s可以構造出一棵fbi樹t,遞迴的構造方法如下 1 t的根結點為r,其型...