题目大意:

给一个n*n的图,每个点有点权,求从左上角走到右下角,把一路的点权乘起来,求后缀零个数最小值,并输出方案

首先0是特例,因为走了他,后缀零个数一定是1

然后如果有数字相乘得到0,那相当于*10,把10分解,它就只跟2和5的个数的最小值有关了

由于2和5的个数一个点并不能只保留一个,存多了会T

于是就猜了一个结论,路径经过的要么2最少,要么5最少

其实很好证得,用数学归纳法:

,如果2不是最少,那想成为最优解,5必须取得比2少,2随便取,,这时取值只和5有关,

,如果5不是最少,那想成为最优解,2必须取得比5少,5随便取,,这时取值只和2有关,

∴对于两种最优解,只和一个数的个数有关

所以对2和5分别递推最短路,取min即可

码:

#include<iostream>
#include<cstdio>
using namespace std;
int ans=9999999,n,i,j,daan[3000],f[1005][1005],x,er[1005][1005],g[1005][1005],wu[1005][1005];
int main()
{scanf("%d",&n);for(i=1;i<=n;i++)for(j=1;j<=n;j++){scanf("%d",&x);if(x==0){if(ans>1){ans=1;int cnt=0,k,l;for(k=1;k<j;k++)daan[++cnt]=1;for(k=1;k<n;k++)daan[++cnt]=2;for(k=i;k<n;k++)daan[++cnt]=1;         }er[i][j]=99999;wu[i][j]=99999;continue;}while(x%2==0){er[i][j]++;x/=2;                  }   while(x%5==0){wu[i][j]++;x/=5;                     }                       }for(i=0;i<=n+1;i++)for(j=0;j<=n+1;j++){f[i][j]=99999;}f[n][n+1]=0;//二的一遍 // 1 you 2 xia for(i=n;i>=1;i--)for(j=n;j>=1;j--){if(f[i+1][j]<f[i][j+1]){g[i][j]=2;f[i][j]=f[i+1][j];       }else{g[i][j]=1;f[i][j]=f[i][j+1];           }f[i][j]+=er[i][j];}if(ans>f[1][1]){ans=f[1][1];i=1;j=1;int cnt=0;while(i!=n||j!=n){daan[++cnt]=g[i][j];if(g[i][j]==1){j++;   }else i++;    }       }//五的一遍 // 1 you 2 xia for(i=n;i>=1;i--)for(j=n;j>=1;j--){if(f[i+1][j]<f[i][j+1]){g[i][j]=2;f[i][j]=f[i+1][j];        }else{g[i][j]=1;f[i][j]=f[i][j+1];           }f[i][j]+=wu[i][j];}if(ans>f[1][1]){ans=f[1][1];i=1;j=1;int cnt=0;while(i!=n||j!=n){daan[++cnt]=g[i][j];if(g[i][j]==1){j++;   }else i++;    }       }printf("%d\n",ans);for(i=1;i<=2*n-2;i++){if(daan[i]==1){printf("R");}else{printf("D");}}
}

2017.9.28 CF #R2 B 思考记录相关推荐

  1. 2017.9.30 CF #R4 D 思考记录

    题意:给一个a*b 的方格 ,把他装到n个其他(>a*>b)的格子里,格子之间可以叠加放,求最多放几个格子+方案 .实际上是要找一个严格上升序列 所以直接排序消除后效性,dp即可 cf真喜 ...

  2. 2017.5.28 codeforce h题思考记录

    并没有报codeforce  但有人想让我帮他看题,于是就做了 大概意思就是,给你200个空,让你在200个空中放字母,   再自己设计一个串,要求自己设计的这个串在这放着200个字母的串中作为子串出 ...

  3. 2017.10.5 最短母串 思考记录

    这个题n<=15,可以用10表示选取情况下的最优值 预处理两个串之间的连接关系,然后枚举状态转移 然而这个题还要输出方案,,而且还不让你开空间. 所以只能记录前继动态判断.. 所以十分难写难调 ...

  4. 2017.9.26 块的计数 思考记录

    这种题就属于那种描述很简单,要求很简单,但就是无从下手的题 这个题我只有n根n做法..枚举因数检验.. 首先对于任何块的大小,方案唯一,这是显然的,,如果划分位置改变1,一定有一个位置+1,一个位置- ...

  5. 2017.8.8 魔兽地图DotR 思考记录

    假题害人..  明明说了是一棵树,却还要强行加一组坑爹数据   所以网上的题解挂了好多 这题是很综合的树上背包问题. 由依赖关系转化为一些枚举来跑多重背包 由于是 "一棵树" 所以 ...

  6. 2017.3.25 魔术球问题 思考记录

    这个题还是不难的..(想了20分钟就出完解) 二分+网络流检验,,能加在上面的数大的向小的连边 总点数-最大匹配>n    :{l=mid+1,      记录答案       } else   ...

  7. 2017.10.23 chess 中国象棋 思考记录

    这种题的一般解法: 1. 发现状压可以搞,然后发现状态爆炸 2.考虑状态特点,一共只有几种可能的状态 3.考虑可不可以只对状态进行计数 4.离散统计贡献 码: #include<iostream ...

  8. 2017.10.19 起床困难综合征 思考记录

    2333noi送分题 首先暴力试每个数有些二进制位是会重复算的,,所以就考虑能否把每个二进制位独立考虑 老性质:二进制运算每一位独立 所以二进制dp,如果这一位输入1,是多少,输入0,是多少 然后按二 ...

  9. 2017.10.11 network 网络扩容 思考记录

    第一问是网络流. 第二问是费用流,但之前的边依然是可以用的,所以每个点决策:用原来的流量    购买一条流量,扫每条边加进去就可以了 然后限制流出为k 码: #include<iostream& ...

最新文章

  1. 5300亿NLP模型“威震天-图灵”发布,由4480块A100训练,微软英伟达联合出品
  2. 百度网络推广总结大家在做页面标题优化时需注意的事项!
  3. 瑞士的迷人风光(转)
  4. POJ 3660 Cow Contest【传递闭包】
  5. java 获取类方法_Java之反射机制三:获取类的方法
  6. Java 并发编程CountDownLatch的应用与源码解析
  7. SAP License:SAP Solution Manager中的常用命令
  8. SDWebImage之工具类
  9. jquery 全国 三联 地址选择
  10. 【HBase学习】Apache HBase项目简介
  11. 简明python教程:数据结构
  12. java访问出现500错误_java – URLConnection不允许我访问Http错误的数据(404,500等)
  13. 错误No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbala
  14. 华为服务器bios系统,华为服务器bios设置
  15. Objective-C文字换行方式(解决英文在行末时的换行问题)
  16. servlet的认识和了解(3)
  17. 2017年美国计算机科学,2017年U.S.News美国大学研究生计算机科学专业排名
  18. 共享平台如何提高财务的分账记账效率?
  19. 【C语言】实现求两个数的最大公约数【四种算法】
  20. dp光纤线与hdmi光纤线哪个比较好?

热门文章

  1. Django使用Python操作数据库 --Django 1.8.2 文档(中文)部分笔记
  2. 将任何变量的值进行二进制输出的方法
  3. day25 java的集合(2)collection
  4. python如何让图片镜像翻转_如何用 Python 增量备份 Roam Research 笔记图片?
  5. 一建管道工程122知识点_背诵的知识点是否边缘化?一建市政一本通+学霸笔记,教你只记重点...
  6. mysql数据库查询源码_超简单php mysql数据库查询类
  7. pythonsqlalchemy怎么看到返回的具体内容_sqlalchemy返回值总结
  8. git拉取tag代码_10年经验17张图带你进入gitflow企业项目代码版本管理的最佳实践...
  9. mysql叶子结点存储的什么_B+树叶子结点到底存储了什么?
  10. python tkinter画笑脸_python – 如何在tkinter窗口中绘制图像