设为首页 加入收藏

TOP

动态规划和暴力法解(二)
2013-01-09 13:41:44 来源: 作者: 【 】 浏览:509
Tags:动态 规划 暴力

 

  //这道题的题意说的比较模糊,题目里没有说要多个测试数据,弄得我只处理了一次,导致老是错误,又找不到问题所在!

  /*

  #include<iostream>

  #include<cstdio>

  using namespace std;

  const int MAX=10010;

  int arr[MAX];

  int main()

  {

  int s,max=-200;

  int we=0;

  int m,n;

  while(scanf("%d",&arr[0])!=EOF)

  {

  //cin》arr[0];//输入方阵的维数

  m=n=arr[0];

  for(int i=1;i<=arr[0]*arr[0];i++)

  cin》arr[i];

  for(int i=1;i<=m;i++)

  for(int j=1;j<=n;j++)//这里是表示块数的大小,i*j

  for(int p=1;m-p>=i-1 ;p++)

  for(int q=1;n-q>=j-1 ;q++)//搜索路线,自上而下,自左向右

  {

  int cur=p+m*(q-1);

  int count=0;

  int temp=cur;

  int temp1=1;

  s=0;

  //cout《"第"《we《"次搜索: "《endl;

  //cout《"起点是 行数"《p《","《"列数"《q《endl;

  //cout《"p="《p《",n="《n《endl;

  for(int k=1;k<=i*j;k++)

  {

  //cout《arr[temp]《"  ";

  s=s+arr[temp];

  count++;

  temp++;

  if(count>=i)

  {

  temp=cur+temp1*m;

  temp1++;

  count=0;

  }

  }

  //cout《endl;

  //we++;

  if(s>max)

  max=s;

  }

  cout《max《endl;

  //system("pause");

  }

  return 0;

  }

  */

  #include<iostream>

  #include<cstdio>

  using namespace std;

  int arr[101][101];

  int sum[101],dp[101];

  int main()

  {

  int i,j,k,p,n;

  while(scanf("%d",&n)!=EOF)

  {

  int max=-200;

  memset(sum,0,sizeof(sum));

  memset(dp,0,sizeof(dp));

  for(i=0;i<n;i++)

  for(j=0;j<n;j++)

  cin》arr[i][j];

  //很难想到,这居然是一道动态规划题

  //1、最大子字段和

  /*

        

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++之static静态修饰符详解 下一篇C++中的位拷贝与值拷贝浅谈

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: