题目链接:hihocoder 1241

题意:

n*n的格阵,每个方格内有一个数字.蚂蚁从左上角走到右下角,数字是零的方格不能走,只能向右向下走.蚂蚁走的路径上全部方格的的乘积为s,要使s低位0的个数尽量少.问,最少s的末尾包含几个0.

分析:

10=2*5,所以只要统计蚂蚁路径上2的个数和5的个数,二者之中的较小者即为s末尾0的个数.

假设2的个数为x,5的个数为y.

对于路径(x,y),答案是min(x,y).

"路径(p,q)比路径(x,y)好"的充要条件"min(p,q)<min(x,y)".

最优路径(x,y)中x为最小值或者y为最小值.

这个问题可以进行延伸:将路径上数字的乘积用k进制来表示,使得末尾0的个数尽量少.对k进行因子分解,当k是若干个质数的乘积时,k=p1*p2*p3*p4...,对于每一个pi进行一次动归.当上边的主键等于左边时,就应该比较剩余的值,有点不好整了,还是两个质数之积比较简单.当k=p1^m1*p2^m2......时,又该怎么做呢?

代码:

 1 #include<iostream>
 2 #include<stdio.h>
 3 #include<algorithm>
 4 #include<queue>
 5 #include<math.h>
 6 #include<string.h>
 7 #include<stdlib.h>
 8 using namespace std;
 9 typedef long long ll;
10 typedef unsigned long long ull;
11 #define re(i,n) for(int i=0;i<n;i++)
12 int n;
13 const int maxn = 1007;
14 int a[maxn][maxn];
15 int two[maxn][maxn], five[maxn][maxn];
16 int s[maxn][maxn][2];
17 void go(int c[maxn][maxn], int x){
18     for (int i = 1; i <= n; i++){
19         for (int j = 1; j <= n; j++){
20             if (a[i][j] == 0){
21                 c[i][j] = 1e6; continue;
22             }
23             int cnt = 0;
24             for (int k = a[i][j]; k%x == 0; k /= x)cnt++;
25             c[i][j] = cnt;
26         }
27     }
28 }
29 void work(int c[maxn][maxn], int cc[maxn][maxn]){30     re(i, n + 1)s[0][i][0] = s[0][i][1] = s[i][0][0] = s[i][0][1] = 1e6;
31     s[0][1][0] = s[0][1][1] = s[1][0][0] = s[1][0][1] = 0;
32     for (int i = 1; i <= n; i++){
33         for (int j = 1; j <= n; j++){
34             if (s[i - 1][j][0] == s[i][j - 1][0]){
35                 s[i][j][0] = c[i][j] + s[i][j - 1][0];
36                 s[i][j][1] = cc[i][j]+min(s[i][j - 1][1], s[i - 1][j][1]);
37             }
38             else if (s[i - 1][j][0]< s[i][j - 1][0]){39                 s[i][j][0] = s[i - 1][j][0] + c[i][j];
40                 s[i][j][1] = s[i - 1][j][1] + cc[i][j];
41             }
42             else{43                 s[i][j][0] = s[i][j-1][0] + c[i][j];
44                 s[i][j][1] = s[i][j-1][1] + cc[i][j];
45             }
46         }
47     }
48 }
49 int main(){50     freopen("in.txt", "r", stdin);
51     cin >> n;
52     re(i, n)re(j, n)scanf("%d", &a[i + 1][j + 1]);
53     go(two, 2), go(five, 5);
54     work(two, five); int p = min(s[n][n][0], s[n][n][1]);
55     work(five, two); int q = min(s[n][n][0], s[n][n][1]);
56     cout << min(p, q) << endl;
57     return 0;
58 }

转载于:https://www.cnblogs.com/weiyinfu/p/4890794.html

hihocoder1241 Best Route in a Grid相关推荐

  1. Grid-Based Route (Re-)Planning

    Grid-Based Route (Re-)Planning 路线规划用于自主代理的导航,例如自动驾驶车辆.机器人和人类(考虑地图服务)基于网格的路由规划研究在二维空间中,将一个初始单元到一个目标单元 ...

  2. [4]Telerik Grid 简单使用方法

    1.columns <% Html.Telerik().Grid(Model).Name("Orders").Columns(columns =>{//绑定列名colu ...

  3. OpenShift 4 - Ingress、Route与Shard

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.6环境中验证 文章目录 Ingress和Route IngressOperator和IngressC ...

  4. [pytorch]yolov3.cfg参数详解(每层输出及route、yolo、shortcut层详解)

    文章目录 Backbone(Darknet53) 第一次下采样(to 208) 第二次下采样(to 104) 第三次下采样(to 52) 第四次下采样(to 26) 第五次下采样(to 13) YOL ...

  5. 阅读文献Evaluation of dynamic route planning impact on vehicular communications with SUMO

    标题:基于SUMO的动态路径规划对车辆通信的影响评估 ABSTRACT: Simulations are the first approach used by the research communi ...

  6. Place Route相关

    DEF 现在的综合一般分为logic synthesis和physical synthesis,为了让我们综合出来的netlist和PR做完place& route后的netlist有更强的c ...

  7. 11g Grid Control安装过程的一些“坑”

    Oracle提供的图形化管理工具目前主要有三个版本: EMDC:Enterprise Manager Database Control EMGC:Enterprise Manager Grid Con ...

  8. 使用NVIDIA GRID vPC支持视频会议和算力工具

    使用NVIDIA GRID vPC支持视频会议和算力工具 随着2020年的发展,远程工作解决方案已成为许多人的新常态.企业正在寻找行之有效的解决方案,如虚拟桌面基础设施(VDI),以使他们的团队能够在 ...

  9. CSS grid 的用法

    grid 的用法 加三个宽度为 200px 的列. .container {display: grid;grid-template-columns: 200px 200px 200px; } 用 fr ...

最新文章

  1. 开发自己的山寨Android注解框架
  2. 常见的集合容器应当避免的坑
  3. iOS 宏(define)与常量(const)的正确使用
  4. docker ps 只显示容器名称 显示列名
  5. springboot配置定时任务及常用的cron表达式
  6. 生成的url无法显示_快速生成PDF文档~~
  7. 14.使用 CSS 显示 XML
  8. java opencv 摄像头,OpenCV使用摄像头
  9. 给非天才准备的 GRE 单词背诵方案
  10. RationalDMIS 2020 CAD模型坐标系转换(山涧果子)2021
  11. 自然语言处理NLP中的N-gram模型
  12. 2017EC-Scapegoat-(思维+优先队列贪心)
  13. H3C模拟器中文路径问题(提示:“当前系统用户名中包含非ASCII字符”! )方法尝试:
  14. [NOIP模拟测试30]题解
  15. 分组折线图、柱状图实现(多条折线图、柱状图同时显示)实现方式
  16. iPad Pro如何当外置显示器(win、mac)
  17. Web端算法部署+流媒体服务器算法部署+Flask+AI健身+Python-web实时检测效果显示
  18. 广和通携手中国联通研究院、中科创达现网验证全球首例5G模组端到端多切片方案
  19. 如何使用zotero对毕业设计论文参考文献进行中英文混排
  20. VMware认证考试科目及课程内容

热门文章

  1. Khan_Computer Science_Algorithms
  2. 二十四 Redis消息订阅事务持久化
  3. 【题解】SCOI2009围豆豆
  4. LINUX:Contos7.0 / 7.2 LAMP+R 下载安装Php篇
  5. 20155317 王新玮 2016-2017-2 《Java程序设计》第5周学习总结
  6. Windows 7安装Oracle 10g的方法
  7. Node.js学习笔记8
  8. c语言中文件的读写函数
  9. C# 特性(Attribute)学习
  10. 重读博弈论(四)-重要的基本概念的理解:风险爱好、风险中性、风险厌恶(风险避规)...