題目 過去的姫君

2022-05-31 12:03:11 字數 1653 閱讀 2781

題目背景

忠誠的騎士rai為他心愛的公主hon設計鑽石組墜.

他正在考慮如何切割能夠使鑽石最光彩奪目.

他手中有k顆小鑽石,他知道應該切出n個頂點.

傳說如果每顆鑽石上的三角形總數加起來最少時,能夠達到最好效果.

題目描述

為了更好的研究問題.

rai在平面上畫了n個點,任意三點不共線.

他要把這n個點分成k組,每組至少三個點.

在分完組後 rai把同組的任意兩點之間都連一條邊(即所有點對之間都存在一條邊),不同組點不連邊.

那麼,形成的圖形中,總共最少有多少個由連邊作為三角形邊的三角形?

只有一行,n和k,用空格隔開

最少的三角形數

該題沒有給出資料範圍,如果範圍很小,那就是一道很水很水的題目,但事實是最大的資料 n達到了一億,

沒有發現該題的公式是 c[n,3];我推導的公式是 f[i]=f[i-1]+c[i-1,2];相比之下我的演算法時間複雜度就非常可觀了,因為我的要 n 次迴圈,事實證明,最大的那個資料一分鐘都不能算出來。騙一下吧。

1 #include2

using

namespace

std;34

long

long

n,k;

5int f[100]=,g[100]=;67

intmain()811

12 f[0]=1;13

if(n/k==3) g[0]=1;14

15for(long

long i=4;i<=1+n/k;++i)

16,b[100]=,c[100]=;

2122

int len1=0;23

while(i1>0)24

2829

int len2=0;30

while(i2>0)31

3536

for(int j=0;jj)

37for(int k=0;kk)

3845}46

47for(int j=0;j5;++j)

4855}56

5758

if(i==n/k)

59for(int i=0;i<100;++i)

60 g[i]=f[i];

6162}63

64for(int i=0;i<100;++i)

65 g[i]*=k-n%k;

66for(int i=0;i<100;++i)

67if(g[i]>=10)

6869

for(int i=0;i<100;++i)

70 f[i]*=n%k;

71for(int i=0;i<100;++i)

72if(f[i]>=10)

7374

for(int i=0;i<100;++i)

75 g[i]+=f[i];

76for(int i=0;i<100;++i)

77if(g[i]>=10)

7879

int i=99;80

while(g[i]==0) i--;

81while(i>=0) cout<];

82 cout<83return0;

8485 }

過去的,就過去了

人家說兩口子吵架最怕揭老底,可是很多女人卻總是改不了這個毛病。本來已經過去的,當時已經處理完的事,一吵架又都一件一件翻出來說,很傷兩個人的感情。所以,最好能寬容一些,告訴自己 過去的,就過去了。英語中的 water under the bridge 就是這個意思。橋下的水一旦流過,就永遠流過了。就像...

過去的事情

好吧,既然要開始,就從最開始說起 去年6月,從上大學起陪伴我7年的千錘百鍊久經風雨的諾基亞手機,在一次意外墜地之後,終於傷重不治,永遠的失去訊號,宣布退休 當時下了狠心,買了個聯想的樂phone,這可真是割肉了 所以就想著怎麼能挽回點 好吧,當時聯想宣傳的沸沸揚揚的,咱也當個開發者,開發軟體吧 就這...

B君的連通

b國擁有n個城市,其交通系統呈樹狀結構,即任意兩個城市存在且僅存在一條交通線將其連線。a國是b國的敵國企圖秘密發射飛彈打擊b國的交通線,現假設每條交通線都有50 的概率被炸毀,b國希望知道在被炸毀之後,剩下聯通塊的個數的期望是多少?input 乙個數n 2 n 100000 接下來n 1行,每行兩個...