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

适合学生做网页练习的网站素材网

适合学生做网页练习的网站,素材网,如何使用服务器ip做网站,该网站尚未备案 腾讯云【题目链接】 洛谷 P1955 [NOI2015] 程序自动分析 【题目考点】 1. 并查集 2. 离散化 【解题思路】 多组数据问题,对于每组数据,有多个 x i x j x_ix_j xi​xj​或 x i ≠ x j x_i \neq x_j xi​xj​的约束条件。 所有相等的变量构成一个集合&…

【题目链接】

洛谷 P1955 [NOI2015] 程序自动分析

【题目考点】

1. 并查集
2. 离散化

【解题思路】

多组数据问题,对于每组数据,有多个 x i = x j x_i=x_j xi=xj x i ≠ x j x_i \neq x_j xi=xj的约束条件。

所有相等的变量构成一个集合,不相等的变量在不同的集合。可以使用并查集表示集合。
该题的变量编号 i i i j j j最大可达到 1 0 9 10^9 109,无法直接作为并查集fa数组的下标,所以需要先对所有输入的 i i i j j j进行离散化。由于每组数据输入的约束条件的数量 n ≤ 1 0 5 n\le 10^5 n105,每一个约束条件最多新增两个变量编号。因此在对变量编号进行离散化后,最多存在 2 ∗ 1 0 5 2*10^5 2105个元素,离散化后的数值的范围为 1 ∼ 2 ∗ 1 0 5 1\sim 2*10^5 12105,可以作为fa数组的下标。

  • 先遍历所有约束。对于 x i = x j x_i = x_j xi=xj,那么可以认为 x i x_i xi x j x_j xj同属于一个集合,将 x i x_i xi x j x_j xj所在的集合合并。
  • 再次遍历所有约束,对于 x i ≠ x j x_i \neq x_j xi=xj,而且 x i x_i xi x j x_j xj已属于同一集合,那么该问题中的约束条件无法都被满足,输出NO。

当看完所有约束后,如果没有输出NO,则以上约束条件可以同时满足,输出YES。

【题解代码】

#include<bits/stdc++.h>
using namespace std;
#define N 100005
struct Node
{int i, j, e;
};
vector<Node> op;
vector<int> t;
int fa[2*N];//不同的变量编号最多有2N个,因此并查集fa数组长度设为2N 
void init()
{for(int i = 1; i < 2*N; ++i)fa[i] = i;
}
int find(int x)
{return x == fa[x] ? x : fa[x] = find(fa[x]);
}
void merge(int x, int y)
{fa[find(x)] = find(y);
}
void discretization()
{sort(t.begin(), t.end());t.erase(unique(t.begin(), t.end()), t.end());for(Node &p : op){p.i = upper_bound(t.begin(), t.end(), p.i)-t.begin();//离散化后,变量编号范围为1~2*10^5 p.j = upper_bound(t.begin(), t.end(), p.j)-t.begin();}
}
bool isMatch()//是否可以满足给定的所有约束 
{for(Node p : op) if(p.e == 0 && find(p.i) == find(p.j))return false;return true;
}
int main()
{int tn, n, i, j, e;cin >> tn;while(tn--){op.clear();t.clear();init();cin >> n;for(int k = 1; k <= n; ++k){cin >> i >> j >> e;op.push_back(Node{i, j, e});t.push_back(i);t.push_back(j);}discretization();for(Node p : op) if(p.e == 1)//如果是xi=xj merge(p.i, p.j);cout << (isMatch() ? "YES" : "NO") << '\n';}return 0;
}
http://www.dtcms.com/wzjs/338698.html

相关文章:

  • 贵阳网站建设hsyunso百度官网电话
  • 网站开发公司创业策划今天重大新闻头条
  • 网站开发技能有哪些排名第一的助勃药
  • 石家庄发生大事了结构优化设计
  • 镜像网站做排名工具刷网站排刷排名软件
  • 如何做ppt的模板下载网站百度投流
  • 金融网站建设案例谷歌浏览器下载手机版app
  • 温州网络推广公司哪个好网站优化软件哪个好
  • 做网站现在挣钱吗推广价格一般多少
  • 网站做404是什么意思网页自动点击软件
  • 商城网站的基本功能百度文库网页版
  • 网站 创意 方案惠州seo网站推广
  • 内部网站 建设方案搜索引擎优化是什么意思啊
  • 阜南做网站公司济源新站seo关键词排名推广
  • 小程序开发公司网天机seo
  • 新月传媒做网站 怎么样怎样开自己的网站
  • 公司网站设计有基本哪些要求seo教程seo入门讲解
  • 简单的电商网站开发如何做一个网站的seo
  • vi设计说明模板宁波seo搜索平台推广专业
  • 湛江企业自助建站网络营销模式有哪些?
  • 做网站 挣广告联盟的佣金微信如何投放广告
  • 有没有大人和小孩做的网站今日百度小说排行榜风云榜
  • 注册网站地址无锡网站服务公司
  • 贵州网站制作品牌公司企业危机公关
  • 绿色为主色的网站西安发布最新通知
  • 最近流感疫情2020广州seo优化公司
  • 武汉哪里做网站好必应搜索网站
  • 做劫持和攻击网站的手机不能视频吗整站优化推广
  • 17网站一起做网店 发货慢企业推广是做什么的
  • 网站建设冫金手指谷哥十四国内真正的永久免费砖石