hdu1466(DP直线相交问题)
2012-03-26 19:59
218 查看
从下往上计算;每增加一条直线L,可以把原来的m条直线分成两部分,和L平行的K条,及和L相交的m-k条;此时有0+(k+1)*(m-k)+((m-k)条直线相交的点数),这里用set[i]保存
i条直线相交的不同交点数;
i条直线相交的不同交点数;
#include <iostream> #include <set> const int Max=10000; using namespace std; int main() { int n; set<int> line[Max]; set <int>::iterator it;//it+1 与it++的区别 好像是不能用it+1这种情况; line[0].insert(0); line[1].insert(0); line[2].insert(0); line[2].insert(1); it=line[2].begin(); //cout<<*(++it)<<" "<<endl;//*(it+0)<<endl; while(cin>>n) { int i,j,k; for(i=3;i<=n;i++) { for(j=1;j<=i;j++) { it=line[i-j].begin(); int temp=0; for(k=0;k<line[i-j].size();k++) { temp=j*(i-j)+*(it++); line[i].insert(temp); } } } for(it=line .begin();it!=line .end();) { cout<<*it; if(++it!=line .end()) cout<<" "; } cout<<endl; } return 0; }
相关文章推荐
- hdu1466 dp+直线交点问题
- 【dp】有向直线k中值问题
- 石子合并问题--直线版 (区间DP)
- N条直线相交交点、分割的最多平面问题
- poj 1039 直线与直线相交的问题
- MATLAB实现判断航迹(直线)是否相交的问题
- HDU 2050 直线相交问题(参考大牛总结)
- HDU1466 计算直线的交点数 【DP】+【经典题】
- POJ 1039 Pipe(计算几何---直线和线段的相交问题)
- [HDU1466][动态规划DP]计算直线的交点数
- hdu1466 计算直线的交点数 DP
- 计算直线的交点数(hdu1466简单的dp)
- Hrbust 1818 石子合并问题--直线版(区间DP)
- Hrbust 1818 石子合并问题--直线版【区间dp】
- Jack Straws(并差集和判断直线相交问题)
- hrbust1818 石子合并问题--直线版 (经典区间DP)
- 【dp】有向直线2中值问题
- poj 2074 Line of Sight(视线问题,求直线与线段的交点及判断相交)
- 【解题报告】 POJ 1556 The Doors -- 最短路问题 Dijkstra算法 + 直线相交
- hdu1466计算直线的交点数&2050 折线分割平面【DP】