题目链接:https://nanti.jisuanke.com/t/44
题意:数一数边长为1的正方形个数、长度为2的正方形个数,如果有就输出,没有就不输出
题解: 非常明显的递推,从正方形的右下角推到正方形的左上角,dp[i][j]保存当前位置的正方形的边长最小值,num[i]表示边长为i的正方形的个数(有边长为2的正方形就一定有边长为1的正方形
dp[i][j]=min(dp[i+1][j+1],min(dp[i+1][j],dp[i][j+1])
代码如下:
} } for(int i=2;i<=n;i++){ if(num[i]){ cout<<i<<" "<<num[i]<<endl; } } }