高中数学:横行选择两条直线,竖行选这两条直线
即 *
其中 n ,m 为水平线与竖直线
const int N=100+5;int n,m,t;int i,j,k;int a[N];int dp[N][N];int main()
{//IOS;rush(){sdd(n,m);n++,m++;pd(n*(n-1)/2*m*(m-1)/2);}//PAUSE;return 0;
}
如果非要和 DP 扯上关系,还是从直线出发
dp[i]:表示长度为 i 的直线能够组成多少有用的线段
长度为 i+1 的直线在长度为 i 的直线上面贡献了 i+1 条,长度分别为 1~i+1
所以 dp[i+1]=dp[i]+i+1
这样假设水平线长度为 n ,竖直线长度为 m
长度为 n 的直线的每一个线段都可以与长度为 m 的每一条线段产生贡献
他们的状态分别为 dp[n] , dp[m]
const int N=100+5;int n,m,t;int i,j,k;int a[N];int dp[N];int main()
{//IOS;for(i=1;i<=100;i++){dp[i]=dp[i-1]+i;}rush(){sdd(n,m);pd(dp[n]*dp[m]);}//PAUSE;return 0;
}