注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

东月之神

在单纯的观念里面,生命就容易变得比较深刻!

 
 
 

日志

 
 
关于我

别驻足,梦想要不停追逐,别认输,熬过黑暗才有日出,要记住,成功就在下一步,路很苦,汗水是最美的书!

网易考拉推荐

xmu 1204.水题Ⅵ  

2011-12-02 21:38:57|  分类: ACM |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1204.水题Ⅵ
Time Limit: 1000 MS         Memory Limit: 65536 K
Total Submissions: 170 (66 users)         Accepted: 80 (63 users)
[ My Solution ]

Description

某天,Pan要和一堆人去看电影,然后买票这个重任就交到了Pan的手里。现在Pan想尽可能的给自己买到最满意的票,其他人的就暂不考虑啦,当然必须是要买到所有人都在一排上而且是连续的票。也就是有k个人,则要买k张在同一排而且是连续的票,然后Pan拿其中最满意的票便可。< XMLNAMESPACE PREFIX ="O" />

Input

首先是一个正整数T,表示后面有几组数据,T<=100

接下来每组数据的第一行输入三个正整数nmk1<=nm<=1001<=k<=m),表示电影院的座位是nm列的,然后有k个人去看电影。然后接下来输入一个n x m的矩阵表示Pan对各个座位的满意度(0<满意度<=100)。然后再接下来再输入一个n x m的矩阵表示各个座位的预定情况,1表示已经被买走,0表示还空着。

Output

输出每组数据Pan能够买得到的最满意票的满意度,若是买不到满足条件的票则输出0

Sample Input

1
3 3 2
1 2 3
3 2 3
4 1 4
1 1 1
0 0 0
0 1 0

Sample Output

3

Source
 
 
暴力解决:
#include <stdio.h>
int main()
{
 int t;
 scanf("%d", &t);
 while(t--)
 {
  int m, n, k, a[101][101], b[101][101];
  int i, j;
  scanf("%d%d%d", &n, &m, &k);
  for(i = 0; i < n; i++)
   for(j = 0; j < m; j++)
    scanf("%d", &a[i][j]);
  for(i = 0; i < n; i++)
   for(j = 0; j < m; j++)
    scanf("%d", &b[i][j]);
  int ans = 0;
  for(i = 0; i < n; i++)
  {
   for(j = 0; j < m; j++)
   {
    if(b[i][j] == 0)
    {
     if(j + k  > m) break;
     int flag = 1, ii;
     for(ii = j+1; ii < j+k && flag; ii++)
      if(b[i][ii] == 1)
       flag = 0;
     if(flag)
     {
      for(ii = j; ii < j+k; ii++)
       if(a[i][ii] > ans)
        ans = a[i][ii];
     }
    }
   }
  }
  printf("%d\n", ans);
 }
return 0;
}
  评论这张
 
阅读(86)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017