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

网站建设职业发展前景和现状游戏网站建设方案书

网站建设职业发展前景和现状,游戏网站建设方案书,企业网站的建设目标有哪几种,番禺网站制作价格D:圆 正着求删除的最小代价不好做,采用逆向思维,求选择一些不相交的线段使得构成一个圆的代价尽量大,最后答案就是所有线段权值之和减去最大代价。 那么如何求这个最大代价呢?显然区间DP 老套路:破环成链&#xff0…

D:圆

正着求删除的最小代价不好做,采用逆向思维,求选择一些不相交的线段使得构成一个圆的代价尽量大,最后答案就是所有线段权值之和减去最大代价。

那么如何求这个最大代价呢?显然区间DP

老套路:破环成链,枚举区间长度 len ,枚举区间左端点 i 和右端点 j

很明显没有线段长度为1,故len从2开始

具体的

线段的操作和点的相似但又不完全相同具体看代码即可。

1:不选择以左端点的线段,f[i][j]=f[i+1][j];

2、选择以为左端点的线段。枚举左端点 所能到达的右端点 v,权值为 w,那么当前的答案

由 区间  [i+1,k-1]  的答案加上 区间  [k +1[j]  的答案加上线段  [ i, v ] 的权值构成,即

 f[i][j]=f[i+1][v-1]+f[v+1][j]+val(i,v);

int n, m;
int f[M][M]; // f[i][j]  区间i到j不相交边的最大价值
vector<PII> g[N];
void solve()
{cin >> n >> m;int s = 0;for (int i = 1; i <= m; i++){int x, y, w;cin >> x >> y >> w;if (x > y)swap(x, y);g[x].pb({y, w});g[y].pb({x + n, w});s += w;}for (int len = 2; len <= 2 * n; len++){for (int i = 1; i + len - 1 <= 2 * n; i++){int j = i + len - 1;f[i][j] = f[i + 1][j]; // 不选择以i为左端点的线段for (auto ed : g[i])   // 选择以i为左端点的线段{int v = ed.xx, w = ed.yy;if (v > j) // 已经越过右端点了continue;if (v - 1 > i + 1) //区间端点,不能相同w += f[i + 1][v - 1];if (j > v + 1)w += f[v + 1][j];f[i][j] = max(f[i][j], w);}}}int tmp = 0;for (int i = 1; i <= n; i++)tmp = max(tmp, f[i][i + n - 1]);s = s - tmp;cout << s << endl;
}

类似的题目

Codeforces Round 661 (Div. 3)

F. Yet Another Segments Subset

两个题目非常相似但是又不完全相同。

本题的数据显然如果直接区间dp会超时,但是n却是很小我们想能不能进行离散化。

本题的相交比较上一题有点不同,不同在包含的时候端点可以相交,而不包含时端点不可相交。

很明显,离散化候不同区间值被拉近了距离,但是不相交得还是不相交,所以本题可以离散化。(具体题目具体分析,有的题目可能会有坑)

状态表示:f[i][j]  表示区间  [i,j]  里面满足题意得最大区间数量。

然后我们就想一下转移方程:

具体的还是区间DP的过程,枚举区间长度 len ,枚举区间左端点 i 和右端点 j

我们还是以选不选以 i 为左端点的区间,

1:不选  f[i][j]=f[i+1][j];

2:选  f[i][j]=max(f[i][j],f[i][k],f[k+1][j]);(k<j)

我们看第二个方程,很明显就是我们上面说的;

即只有完全包含端点才可以相同;

我们还要注意一种情况那就是区间恰好等于 [i,j] ,这种情况由于(k<j) ,被跳过了

所以最后加上个数即可完成。

int n;
PII p[N];
vector<int> g[N];
void solve()
{vector<int> t;cin >> n;for (int i = 1; i <= n; i++){int l, r;cin >> l >> r;p[i] = {l, r};t.pb(l);t.pb(r);}sort(t.begin(), t.end());t.erase(unique(t.begin(), t.end()), t.end());for (int i = 1; i <= n; i++){int x = lower_bound(t.begin(), t.end(), p[i].xx) - t.begin() + 1;int y = lower_bound(t.begin(), t.end(), p[i].yy) - t.begin() + 1;g[x].pb(y);}int m = t.size();vector<vector<int>> f(m + 10, vector<int>(m + 10));for (int len = 1; len <= m; len++){for (int i = 1; i + len - 1 <= m; i++){int j = i + len - 1;f[i][j] = f[i + 1][j];int cnt = 0;for (auto ed : g[i]){int v = ed;if (v == j)cnt++;if (v < j)f[i][j] = max(f[i][v] + f[v + 1][j], f[i][j]);}f[i][j] += cnt;}}cout << f[1][m] << endl;for (int i = 0; i <= m + 1; i++)g[i].clear();
}
http://www.yayakq.cn/news/422553/

相关文章:

  • 有了源码然后如何做网站门户网站中综合性程度高的是
  • 企业诚信建设网站saas建站平台源码
  • 石家庄做网站seo上海博大园林建设发展有限公司网站
  • 孝感做网站手机网站开发计划
  • 优惠券网站怎么搭建西安网站建设云阔网络
  • 建设一个网站需要多久多少钱怎么做网站的后台管理系统
  • 古装衣服店网站建设页面历史建筑信息平台
  • 1688代加工官方网站百度 网站 质量度
  • 满城做网站电话个人网站开发技术要求
  • 制作公司网站教程论坛网站制作教程
  • 营销型网站的标准丽水专业网站建设哪家好
  • 四平市城乡建设局网站山东网页设计公司
  • 医院网站建设 不足wordpress 收费主题破解
  • 做excel的网站大坪网站建设
  • 网站的建设成本的账务处理南昌小程序开发哪家公司好
  • 江苏免费建站个人网站可以做产品宣传吗
  • 美食网站的建设目的外贸网站wordpress
  • 二级域名备案流程来宾网站优化
  • 青岛大学网站建设给你一个网站如何做推广
  • 为什么网站数量减少wordpress英文版如何变成中文版
  • 客户端网站建设文档我想在百度上做广告怎么做
  • 怎么做网站教程简单百度网盘app下载安装官方免费下载
  • 建设网站需要的安全设备建设企业网站制作公司
  • 手机网站如何站点管理wordpress文章图片全屏浏览
  • 大图网 网站两学一做网站按钮图片
  • 用手机怎么做网站佛山建网站公司
  • 行业门户网站源码邵阳建设网站公司
  • 网站建设与管理案例教程第三版答案百度网站建设的意义
  • 免费网站空间可访问云南中建西部建设有限公司网站
  • 南宁建站公司有哪些中国光伏企业排行榜