usaco Home on the Range

来源:互联网 发布:mac照片如何导入相薄 编辑:程序博客网 时间:2024/05/15 00:13

这是一道简单的DP问题。

代码好下:

/*ID: guo geerPROG: rangeLANG: C++*/#include<iostream>#include<fstream>#include<cstring>#include<cmath>using namespace std;char data[300][300];int dp[300][300];int res[300];int main(){    ifstream fin("range.in");    ofstream fout("range.out");    int n;    while(fin>>n)    {                 cin.ignore();                 for(int i=0; i<n; i++) fin>>data[i];                                  for(int i=0; i<n; i++)                 for(int j=0; j<n; j++)                 dp[i][j] = data[i][j] - '0';                                  for(int i=1; i<n; i++)                 for(int j=1; j<n; j++)                 if(dp[i][j] == 1)                 {                             dp[i][j] = min(dp[i-1][j-1], min(dp[i][j-1], dp[i-1][j]))+1;                 }                                  memset(res, 0, sizeof(res));                 for(int i=1; i<n; i++)                 for(int j=1; j<n; j++)                  res[dp[i][j]] ++;                                  for(int i=n-1; i>=2; i--) res[i] += res[i+1];                                  for(int i=2; i<=n; i++)                 if(res[i] > 0) fout<<i<<' '<<res[i]<<endl;    }    return 0;}


原创粉丝点击