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.pswp.cn/news/247830.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247830.shtml
英文地址,請注明出處:http://en.pswp.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基于一個存儲 鍵/值對的…