CF2B The least round way(贪心+动规)

题目

CF2B The least round way

做法

后面\(0\)的个数,\(2\)\(5\)\(10\)分解质因数

则把方格中的每个数分解成\(2\)\(5\),对\(2\)\(5\)求两边动规,得出最小值\(ans=min(num_2,num_5)\)

我们贪心地选择最小值所对应的\(2\)\(5\),然后从\((n,n)\)按动规路径返回

Code

#include<bits/stdc++.h>
typedef int LL;
const LL maxn=1e3+9;
inline LL Read(){LL x(0),f(1); char c=getchar();while(c<'0' || c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0' && c<='9'){x=(x<<3)+(x<<1)+c-'0'; c=getchar();}return x*f;
}
LL n,m,ax,ay,flag;
LL p[2][maxn][maxn],dp[2][maxn][maxn],a[maxn][maxn];
void Solve(LL x,LL y,LL op){if(x==1 && y==1) ;else if(x==1){Solve(x,y-1,op); printf("R");}else if(y==1){Solve(x-1,y,op); printf("D");}else{if(dp[op][x][y-1]==dp[op][x][y]-p[op][x][y]) Solve(x,y-1,op),printf("R");else Solve(x-1,y,op),printf("D");}
}
int main(){n=m=Read();for(LL i=1;i<=n;++i)for(LL j=1;j<=m;++j){a[i][j]=Read();if(!a[i][j]){ax=i; ay=j;flag=true;}while(a[i][j]%2==0 && a[i][j]){++p[0][i][j]; a[i][j]/=2;}while(a[i][j]%5==0 && a[i][j]){++p[1][i][j]; a[i][j]/=5;}}for(LL i=1;i<=n;++i)for(LL j=1;j<=m;++j){if(i==1 && j==1){dp[0][i][j]=p[0][i][j];dp[1][i][j]=p[1][i][j];}else{if(i==1){dp[0][i][j]=dp[0][i][j-1]+p[0][i][j];dp[1][i][j]=dp[1][i][j-1]+p[1][i][j];}else if(j==1){dp[0][i][j]=dp[0][i-1][j]+p[0][i][j];dp[1][i][j]=dp[1][i-1][j]+p[1][i][j];}else{dp[0][i][j]=std::min(dp[0][i-1][j],dp[0][i][j-1])+p[0][i][j];dp[1][i][j]=std::min(dp[1][i-1][j],dp[1][i][j-1])+p[1][i][j];}}}LL ans(std::min(dp[0][n][m],dp[1][n][m]));if(ans>1 && flag){puts("1");for(LL i=1;i<ax;++i) printf("D");for(LL i=1;i<ay;++i) printf("R");for(LL i=ax;i<n;++i) printf("D");for(LL i=ay;i<m;++i) printf("R");return 0;}printf("%d\n",ans);if(ans==dp[0][n][m]){Solve(n,m,0);}else{Solve(n,m,1);}return 0;
}

转载于:https://www.cnblogs.com/y2823774827y/p/10966316.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS 中的return false的作用

在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为. Return False 就相当于终止符,终止默认的事件行为&#xff0c;反之,Return True 就相当于执行符,执行终止默认的事件行为。 在js中return false的作用一般是用来取消默认动作的。比如你单击一个链接除了触发你…

中英翻译(基于百度翻译)

先来看效果图 只做了简单的在线翻译&#xff0c;语音翻译和图片翻译都要钱&#xff0c;哈哈 市面上有名气的翻译公司就是有道和百度了&#xff0c;有道尝试了一下&#xff0c;分为API和SDK两种&#xff0c;但是demo下载下来跑不了 百度的就是API&#xff0c;也很简单&#xff0…

Vue中使用input简易的上传图片

<div class"boximg"><div class"topimg"><!-- <img :src"filePath" width"200px" height"170px" /> --></div><div class"botimg" click"imgClick()">上传logo<…

jQuery选择器之层级选择器

文档中的所有的节点之间都是有这样或者那样的关系。我们可以把节点之间的关系可以用传统的家族关系来描述&#xff0c;可以把文档树当作一个家谱&#xff0c;那么节点与节点直接就会存在父子&#xff0c;兄弟&#xff0c;祖孙的关系了。 选择器中的层级选择器就是用来处理这种关…

文件 图片 上传 及少许正则校验

文件 & 图片 上传 及少许正则校验 <template><div style"padding: 20px"><Row><Col span"24"><div><CFlex type"flex" justify"space-between" align"midlle"><div class"…

bootstrap-table.js如何根据单元格数据不同显示不同的字体的颜色

在bootstrap-table.js里面列属性 formatter就是用来格式化单元格的&#xff0c;其默认值是undefined 类型是function&#xff0c;function(value, row, index), value&#xff1a;该cell本来的值&#xff0c;row&#xff1a;该行数据&#xff0c;index&#xff1a;该行序号&am…

SVN_06导入项目文档

把这个项目的文档迁入到SVN Server上的库中 【1】首先右键点击projectAdmin目录&#xff0c;这时候的右键菜单例如以下图看到的&#xff1a;选择copy URL toCLipboard,就是复制统一资源定位符&#xff08;URL&#xff09;到剪贴板中 https://KJ-AP01.中国.corpnet:8443/svn/pro…

实现省市二级联动效果

实现效果&#xff1a; 代码&#xff1a; <template><div class"main_tableau"><div class"page_title">百城精算编辑</div><CFlex type"flex" justify"space-between"><div style"margin-top…

jquery操作select(取值,设置选中)

jquery操作select(增加&#xff0c;删除&#xff0c;清空) http://huapengpeng1989412.blog.163.com/blog/static/58828754201342841940720/ jQuery获取Select选择的Text和Value: 123456789$("#select_id").change(function(){//code...}); //为Select添加事件&am…

手机验证码获取

<el-form-item label"短信验证码" required><el-input v-model"ruleForm.verificationcode" placeholder"请添加验证码"><el-button v-if"isdisabled" slot"suffix" style"color:#409EFF;" type&…

关于RGB屏调试的一些知识(转)

关于RGB屏调试的一些知识转载于:https://www.cnblogs.com/LittleTiger/p/10983212.html

在bootstrap table中使用Tooltip

//偏好主题function preferenceFormatter(value, row, index) {var nameString "";if (value.length > 6) {nameString value.substring(0,6) ...;} else{nameString value;}return [<a href"#" data-toggle"tooltip" title value >…

实现值两者之间添加 , 、 | 等字符

展示效果&#xff1a; <span v-for"(item, index) in projectData.bdOwnerList" :key"index"><span style"white-space: nowrap">{{ item.userName }}<spanv-if"projectData.bdOwnerList.length - 1 ! index"style&qu…

spring-cloud搭建

1、myApplicaion 启动服务类上层必须有一层包 2、报错 com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect 或者com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known…

JS ===和==区别

这是一种隐式类型转换 var a 12; var b 12; alert(a b);//先把两边的转换成一样的&#xff0c;再进行比较 。结果会返回true alert(a b);//不转换两边类型&#xff0c;直接比较,结果返回false

单页面轮播图滚动

现在网上好多类似的效果&#xff0c;今天心情好&#xff0c;就私自模仿一个去&#xff0c;代码如下。 单页面网站 网站首页公司简介公司产品公司荣誉招聘英才联系我们window.οnscrοllfunction(){ var scTopdocument.documentElement.scrollTop||document.body.scrollTop; va…

xBIM 基础16 IFC的空间层次结构

系列目录 【已更新最新开发文章&#xff0c;点击查看详细】 本篇介绍如何从文件中检索空间结构。IFC中的空间结构表示层次结构的嵌套结构&#xff0c;表示项目&#xff0c;站点&#xff0c;建筑物&#xff0c;楼层和空间。如果您查看IFC文档&#xff0c; 您会发现建筑物可以…

如何判断两个jq对象是同一个对象

如果说要判断是否同一对象&#xff0c;当然是用 来判断&#xff0c;但实际上两个不同的 jQuery 对象可能是对同一个/组 DOM 对象的封装&#xff0c;这个时候可以用 is 来判断&#xff0c;比如 var a $(".editor"); var b $(".editor");console.log(a b…

状态管理工具vuex的基本使用(vuebus的理解)

vuex的展示图 1. vuex 的基本结构 const store new Vuex.Store({state: {} //相当于 vue结构中的 data getters: {}, // 相当于vue结构中的计算属性使用actions: {}, // 相当于vue结构中的监听属性使用mutations: {},//相当于vue结构中的 methods 方法集合 &#xff08;其中方…

Memcache

前戏 Memcached是一个高性能的分布式内存对象缓存系统&#xff0c;用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象减少读取数据库的次数&#xff0c;从而减小数据库的压力&#xff0c;提高动态&#xff0c;数据库网站的速度。Memcached基于一个存储 键/值对的…