杭电1466------简单的dp
2015-07-09 19:09
246 查看
题目: http://acm.hdu.edu.cn/showproblem.php?pid=1466
状态转移方程:
m条直线的交点方案数
=(m-r)条平行线与r条直线交叉的交点数 + r条直线本身的交点方案
=(m-r)*r+r条之间本身的交点方案数(0<=r<m)
(百度: 刘春英课件(1) 有详解)。
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main() { int n; int r; //假设有r条非相互平行的线。 int dp[21][191]; memset(dp, 0, sizeof(dp)); for(int i=0; i<=20; i++) { dp[i][0] = 1; for(r=0; r<=i; r++) { for(int j=0; j<=190; j++) { if(dp[r][j]==1) dp[i][(i-r)*r+j] = 1; } } } while(scanf("%d", &n)!=EOF) { for(int j=0; j<=n*(n-1)/2; j++) { if(dp [j]==1) { if(j!=0) cout<<" "; cout<<j; } } cout<<endl; } return 0; }
状态转移方程:
m条直线的交点方案数
=(m-r)条平行线与r条直线交叉的交点数 + r条直线本身的交点方案
=(m-r)*r+r条之间本身的交点方案数(0<=r<m)
(百度: 刘春英课件(1) 有详解)。
相关文章推荐
- 逻辑回归与softmax回归
- PHP如何添加内置的扩展
- 循环结构 函数的定义
- 循环结构 函数的定义
- 输入字符串反序输出
- 【百度实习录】串讲考核
- 博士生之“初次面试”
- python基本环境配置
- iOS 运行时判断xib是否存在
- int main(int argc,char* argv[])参数详解
- VS项目属性的一些配置项的总结(important)
- poj 1195 Mobile phones (二维树状数组)
- 文章标题
- 输出字符串与数字时的小差异
- vs2010自动生成的文件解析
- Linux建立文件目录链接的方法
- iOS中支付宝的接入使用注意点
- 关于LiseView ScrollView 问题
- java.lang.NoClassDefFoundError: org.hibernate.cfg.Configuration.setXXXX解决方法
- [LeetCode][Java] Letter Combinations of a Phone Number