3063: 【普及+/提高】【P2789】直线交点数
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:3
解决:2
题目描述
假设平面上有 条直线,且无三线共点,那么这些直线一共能有多少不同的交点数?对于所有数据,满足 。
输入
一行,一个整数 ,代表有 条直线。
输出
一行,一个整数,表示方案总数。
样例输入 复制
4
样例输出 复制
5
提示
对p条直线分情况讨论平行线的条数,已知在有r条平行线时有(p-r)条线与他们相交于p*(p-r)个交点,再加上对于这p-r个交点的相交组合即可!!!
#include<bits/stdc++.h>
using namespace std;
int n,ans=0;
bool f[10010];
void suv(int p,int m){
if(p==0) {
if(!f[m])
ans++;
f[m]=1;
}
else
for(int r=p;r>=1;r--)
suv(p-r,r*(p-r)+m);
}
int main(){
cin>>n;
suv(n,0);
cout<<ans;
}