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

帝国cms调用网站地址福州免费项目建设管理系统

帝国cms调用网站地址,福州免费项目建设管理系统,如何快速搭建网站,手机流畅优化软件UVa1408/LA4018 Flight Control 题目链接题意分析AC 代码 题目链接 本题是2007年icpc亚洲区域赛成都赛区的F题 题意 有一个N行M列的数组(1 ≤ N ≤ 50, 1 ≤ M ≤ 9)记录机场各个航班的飞行传感数据,其每个元素都是整数。如果某元素小于等于0,则其一定不…

UVa1408/LA4018 Flight Control

  • 题目链接
  • 题意
  • 分析
  • AC 代码

题目链接

  本题是2007年icpc亚洲区域赛成都赛区的F题

题意

  有一个N行M列的数组(1 ≤ N ≤ 50, 1 ≤ M ≤ 9)记录机场各个航班的飞行传感数据,其每个元素都是整数。如果某元素小于等于0,则其一定不是航班的飞行数据。如果某个元素大于0,则其可能是一个航班的飞行数据,也可能和所在行(或列)连续严格递增(或严格递减)的子序列一起构成一个航班的飞行数据。不同航班的传感数据不能重叠,求数组最少代表的航班数。

分析

  首先想到利用轮廓线动态规划处理覆盖问题的思路来求解,状态是4进制M位:每一位代表所在航班往上、下、左、右飞行。那么状态转移一共 4 M ∗ M ∗ N 4^M*M*N 4MMN次,最高达到 10 8 10^8 108(117964800),这种原始做法会超过3s限时。

  对取值为左、右的状态位,可以发现仅仅在其为状态的末尾时才有可能影响当前的状态转移决策,末尾之前的那些状态位取值为左、右时无法影响当前的状态转移决策。因此,可以将状态定义成3进制(上、下、水平)再加上末尾是否为左右即可。这时状态转移一共 2 ∗ 3 M ∗ M ∗ N 2*3^M*M*N 23MMN次,最高达到 10 7 10^7 107(17714700),3s内应该能过,写出此版本的代码验证发现大约运行2s:

#include <iostream>
#include <cstring>
using namespace std;#define M 9
#define N 50
#define T 39366
int a[N][M], d[2][T], p[] = {1, 3, 9, 27, 81, 243, 729, 2187, 6561, 19683}, m, n, kase = 0;void solve() {memset(d[0], 0, sizeof(d[0]));int c = 0, t = p[m]<<1, r = p[max(m-1, 0)], ans = m*n;for (int i=0; i<n; ++i) for (int j=0; j<m; ++j, c^=1) {int v, f = i ? a[i-1][j] : 0, l = j ? a[i][j-1] : 0;cin >> v; a[i][j] = v = max(v, 0); memset(d[c^1], 1, sizeof(d[0]));for (int k=0; k<t; ++k) {int h = (k>>1)/r, s = (k>>1)%3, e = (k>>1)%r, b = k&1;int &w = d[c^1][6*e], &x = d[c^1][6*e+1], &y = d[c^1][6*e+2], &z = d[c^1][6*e+4];w = min(w, d[c][k] + (v && (!l || s || l>=v || b)));x = min(x, d[c][k] + (v && (!l || s || l<=v || !b)));y = min(y, d[c][k] + (v && (!f || h!=1 || f>=v)));z = min(z, d[c][k] + (v && (!f || h!=2 || f<=v)));}}for (int i=0; i<t; ++i) ans = min(ans, d[c][i]);cout << "Case " << ++kase << ": " << ans << endl;
}int main() {while (cin >> n >> m && (m || n)) solve();return 0;
}

  更进一步,由于利用行内连续3个元素(或者列内连续3个元素)可以判定能否水平(或者竖直)飞行以及飞行方向,那么状态可以用未定(代表当前位置为新航班)、水平、竖直这样的3进制来表示。状态转移一共 3 M ∗ M ∗ N 3^M*M*N 3MMN次,时间又缩短一半,并且可以利用备忘录dp来进一步优化时间。这种方法要注意一点:如果正上方位置取值是未定,而右上取值是水平,则当前位置决策时不能取到竖直

AC 代码

#include <iostream>
#include <cstring>
using namespace std;#define M 9
#define N 50
#define T 19683
int a[N][M], d[N][M][T], p[] = {1, 3, 9, 27, 81, 243, 729, 2187, 6561, T}, m, n, kase = 0;bool check(int a, int b, int c) {if (!a || !b || !c || a==b || b==c) return false;return a < b ? b < c : b > c;
}int dp(int i, int j, int s) {if (i == n) return 0;if (j == m) return dp(i+1, 0, s);if (d[i][j][s] >= 0) return d[i][j][s];int &r = d[i][j][s], t = i ? a[i-1][j] : 0, l = j ? a[i][j-1] : 0, h = s / p[m-1], b = s % 3, c = a[i][j];r = dp(i, j+1, s % p[m-1] * 3) + (c != 0);if (c && l && ((!b && c != l) || (b==1 && check(a[i][j-2], l, c))))r = min(r, dp(i, j+1, s % p[m-1] * 3 + 1));if (c && t && ((!h && c != t && (j+1<m ? s/p[m-2]%3 : 0) != 1) || (h==2 && check(a[i-2][j], t, c))))r = min(r, dp(i, j+1, s % p[m-1] * 3 + 2));return r;
}void solve() {memset(d, -1, sizeof(d));for (int i=0; i<n; ++i) for (int j=0; j<m; ++j) cin >> a[i][j], a[i][j] = max(a[i][j], 0);cout << "Case " << ++kase << ": " << dp(0, 0, 0) << endl;
}int main() {while (cin >> n >> m && (m || n)) solve();return 0;
}

文章转载自:

http://5MqQvuxJ.yggwn.cn
http://c5bOpL0g.yggwn.cn
http://0tWChnri.yggwn.cn
http://EcW79UVu.yggwn.cn
http://SAAa3M6z.yggwn.cn
http://InXvG8Kg.yggwn.cn
http://47VhHKs1.yggwn.cn
http://M6217LSU.yggwn.cn
http://zw32za88.yggwn.cn
http://qfKnwMlt.yggwn.cn
http://RKQNmBVw.yggwn.cn
http://7JlBZlvn.yggwn.cn
http://KSREyTPp.yggwn.cn
http://54p8zUhq.yggwn.cn
http://EcRnbB8n.yggwn.cn
http://VR2zo1oz.yggwn.cn
http://VAxx2Le3.yggwn.cn
http://OAHgoN9M.yggwn.cn
http://FOq6FkJK.yggwn.cn
http://1J6RoV8H.yggwn.cn
http://p6yOzwZo.yggwn.cn
http://Em9M0Edt.yggwn.cn
http://bt717HZE.yggwn.cn
http://L6WqoUTl.yggwn.cn
http://GjPlYiF7.yggwn.cn
http://vRToVKfG.yggwn.cn
http://OQlDCLQm.yggwn.cn
http://6AfjlZx5.yggwn.cn
http://roUXJE5k.yggwn.cn
http://Zq6ImnNy.yggwn.cn
http://www.dtcms.com/wzjs/741115.html

相关文章:

  • 房产类网站制作商有错误的wordpress
  • 男生做污污的视频网站桂林微信网站设计
  • 虚拟电子商务网站建设前期规划方案seo外链网
  • 淘宝网站建设特点django做企业级网站
  • 网站建设亿玛酷信赖网站如何设计方案
  • 职友集一家做公司点评的网站杭州企业推广网站
  • 广东网站建设人员成都三合一网站建设
  • 北京在线建站模板永嘉县住房和城乡规划建设局网站
  • 网站数据库怎么备份做网站流行的
  • 怎么做电影网站销售加app安卓下载官网
  • 网站 建设运行情况网站开发技术背景介绍
  • 泰州网站制作公司如何建设网站后台
  • 微信长图的免费模板网站关键词搜索引擎优化推广
  • 南京市住宅建设总公司网站昆明 网站建设兼职
  • 六安商务网站建设电话苏州的网络企业
  • 个人备案的网站能做盈利吗榆次网站建设公司
  • 大连做网站哪家服务好自我介绍网页制作模板
  • 通州网站建设电话湛江网站建设托管
  • 中国银行网站建设wordpress搜索条件
  • 建设大型的企业网站费用网站子站怎么做
  • 北京制作网站公司哪家好如何做超一个电子商务网站
  • 陕西省建设厅申报网站信金在线制作网站
  • 成都网站注册wordpress 空白
  • 宝安做网站怎么样网站备案最快
  • 网站与经营网站微信推广方式有哪些
  • 商业设计网站有哪些做网站云服务器还是云虚拟主机
  • asp.net不适合做网站网页调用 wordpress 图片编辑器
  • wordpress 增加子目录合肥seo优化外包公司
  • 北京网站建设品牌免费网站模板
  • 建设网站需要了解些什么东西哪个网站可以做简历