您的位置:首页 > 其它

HDOJ1466(计算直线的交点数)dp

2009-03-23 20:00 344 查看
#include <iostream>

#include <set>

using namespace std;

const int N = 22;

int main()

{

set<int> S
;//

set<int>::iterator p;

int fa
;//相交方案数

int i, k;

//=====================================

S[0].clear();

S[0].insert(0);

fa[0] = 1;

//============================

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

{

S[i].clear();

for(k = 0; k < i; k++)

{

p = S[k].begin();

while(p != S[k].end())

{

S[i].insert((i - k) * k + *p);

p++;

}

}

}

while(cin>>k)

{

p = S[k].begin();

cout<<*p;

p++;

while(p != S[k].end())

{

cout<<" "<<*p;

p++;

}

cout<<endl;

}

return 0;

}

[b]相应课件下载>>[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: