当前位置: 首页 > news >正文

营销型网站工程windows优化软件哪个好

营销型网站工程,windows优化软件哪个好,深圳电商网站,湖州企业做网站一、题目大意 我们要在N * M的田地里种植玉米#xff0c;有如下限制条件#xff1a; 1、对已经种植了玉米的位置#xff0c;它的四个相邻位置都无法继续种植玉米。 2、题目中有说一些块无论如何#xff0c;都无法种植玉米。 求所有种植玉米的方案数#xff08;不种植也…一、题目大意 我们要在N * M的田地里种植玉米有如下限制条件 1、对已经种植了玉米的位置它的四个相邻位置都无法继续种植玉米。 2、题目中有说一些块无论如何都无法种植玉米。 求所有种植玉米的方案数不种植也是一种方案 二、解题思路 不难看出本题目是铺砖问题我们可以先写一个基于递归解决的Domo。 可以定义数组color[i][j]代表该位置是否起初就无法种植 并定义数组used[i][j]代表该位置是否已经被旁边的块覆盖无法种植。 对于i j 位置判断它如果不能种植就直接计算下一个位置。 如果可以种植则分别尝试种植和不种植两种情况将计算出的方案数求和。 写出递归代码如下 int rec(int i, int j) {if (i n){return 1;}if (j m){return rec(i 1, 0);}if (color[i][j] || used[i][j]){return rec(i, j 1);}int res 0;bool rt false, dn false;if (j 1 m){rt used[i][j 1];}if (i 1 n){dn used[i 1][j];}res rec(i, j 1);used[i][j] true;if (j 1 m){used[i][j 1] true;}if (i 1 n){used[i 1][j] true;}res rec(i, j 1);used[i][j] false;if (j 1 m){used[i][j 1] rt;}if (i 1 n){used[i 1][j] dn;}return res; } 这个递归代码一定是超时的那么接下来考虑如何把它转成DP我们发现这个递归算法是从左上一直算到右下那么对于i j位置其实只需要记录 (rowi1colj)和(rowicolj)的一排元素是否可以种植玉米即可如下图所示。 所以不难看出对于同一个位置且这一排元素确定时算出的方案数也是确定的那么我们就可以从右下角开始一点点边计算边循环到左上角。 在这个计算的过程中和递归一样只需要考虑两点。 第一如果i j位置不能种植玉米则加上i j位置不种植时的下一块的值 crt[ S 去掉第 j 块 ]。 第二如果i j位置能够种植玉米则依次加上i j位置种植和不种植情况时下一块的值dp[S] 和 crt[S 加上第 j 块 和 第 j1 块]如果j1m则不用添加第j1块。 初始化时考虑到最后一块的情况如果它能够种植则是2如果不能则是1那么就可以初始化DP数组上一行的所有元素为1。 可以使用滑动数组求解循环计算每一块之后本次的当前行作为下次计算的下一行即可。 最终输出的答案为上一行的第一个位置。 三、代码 #include iostream using namespace std; const int MAX_M 12; const int MAX_N 12; int dp[2][1 MAX_M]; bool color[MAX_N][MAX_M]; int n, m; void solve() {int *crt dp[0], *next dp[1];fill(crt, crt (1 MAX_M), 1);for (int i n - 1; i 0; i--){for (int j m - 1; j 0; j--){for (int used 0; used (1 m); used){if (color[i][j] || (used j 1)){next[used] crt[used ~(1 j)];}else{int res crt[used];if (j 1 m){res crt[used | (1 (j 1)) | (1 j)];}else{res crt[used | (1 j)];}next[used] res % 100000000;}}swap(next, crt);}}printf(%d\n, crt[0]); } int main() {scanf(%d%d, n, m);int num;for (int i 0; i n; i){for (int j 0; j m; j){scanf(%d, num);color[i][j] num 0;}}solve();return 0; } 四、相关文献 《挑战程序设计竞赛第二版》P196-P198 铺砖问题
http://www.sadfv.cn/news/228632/

相关文章:

  • 网站做淘宝客有什么要求手机百度网页版 入口
  • 网站推广任务 ip点击周口市建设职工培训中心网站
  • 网站做关键词排名有必要吗网络完全公司排名
  • 网站设计配色北京代理网站备案电话
  • 网站运营风险分析望野古诗诵读
  • 要看网站是多少外卖网站那家做的好
  • 如何用网站赚钱wordpress elegant
  • 网站建设历程制作网站具体需要什么材料
  • 南京高端品牌网站建设深圳市宝安区教育局官网
  • 为什么百度不收录我的网站即墨市网站建设
  • 旅行网站信息技术化建设北京健康宝优化
  • 织梦电子行业网站模板网站怎么自适应屏幕
  • 成都网站制作怎么样顺德哪家做网站
  • 国外主题网站黄埔网站开发
  • 用微信小程序怎么做网站江西省水利水电建设集团招标网站
  • 韩国做hh网站大连网站建设找哪家好
  • 环保厅网站建设的必要性朝阳区外贸公司有哪些
  • 大型网站制作需要多少钱上海网站开发公司
  • 电子商城网站设计实训报告企业网站 梦织
  • 做网站大概要多少网站建设的市场分析
  • 网站里自已的微信联系如何做汕头高端网站建设
  • python做网站还是数据无锡网站建设排名
  • 定制型网站 成功案例动漫制作技术是学什么
  • 网站开发软件开发流程图荆州市建设厅网站
  • ipad怎么制作网站怎么做招标公司网站
  • 如何使用模板网站建设网页淘宝网上购物商城
  • 深圳网站. 方维网络中国电商网站排行榜
  • 大型网站开发 书籍网站的备案的要多少钱
  • 南京 电子商务网站个人网站有哪些平台
  • 百度 wordpress插件seo入门培训