ACM-ZOJ 1037

 
    题目地址 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1037

 终于从阴霾中走出来了,作为近几个月再次刷的第一道题很顺利的一次通过了,和大家分享一下,具体的题目大家自己看吧,大意是求走由n*m个正方形组成的n*m矩形的最短路径可以沿对角线走的。题目描述比较坑人吧,一直在强调旅行销售员问题,非常容易让人向回溯算法还有一些其他高级的算法想,当然有人也想都不想什么路径题都是回溯我只能说这种人真是太凶残了,典型的2b青年……

 对于我这种找规律大手来说第一想法当然是找下规律,得出n和m全是奇数的时候就是n*m + 0.41,因为走了斜边,其他的情况是n*m。对于找规律这件事也是有一定规律的,首先看示例数据,因为这些数据很多都是特殊的,之后要从最简单的数据找起,要覆盖全部情况,这样当你看出3组规律之后根据不完全归纳法(其实就是不用证明……和显然是一个道理)得出结论。当然找规律不是万能的,有的数据量大的题可能到几百个之后突然就展现的另一面。如果有能力,应对所得的猜想进行完全的数学证明。

 

#include <iostream>
#include <cstdio>

int main()
{
    int CASE;
    scanf("%d", &CASE);
    int flog = 1;

    for( ; flog != CASE + 1; ++flog){
        int n, m;
        scanf("%d%d", &n, &m);

        printf("Scenario #%d:\n",flog );

        if( (n&1) && (m&1) )
            printf("%d.41", n*m);
        else
            printf("%d.00", n*m );
        printf("\n\n");
    }
    return 0;
}
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值