Ex 5_26 变量约束是否能同时满足(并查集)_第九次作业

利用并查集进行处理,定义一个维护数组components,components[i]表示变量序号为i的变量所处的集合,首先处理相等的变量,把它们放入同一个集合中,最后再处理不相等变量,若两个不相等的变量处于同一个集合中,则不满足约束条件。
package org.xiu68.ch05.ex9;
public class Ex5_26 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//变量约束集合,先给出相等约束,再给出不相等约束
Constraint[] constraint=new Constraint[]{
new Constraint(0,1,true),
new Constraint(1,2,true),
new Constraint(3,4,true),
new Constraint(4,5,true),
new Constraint(2,3,true),
new Constraint(0,5,false)
};
checkConstraint(6, constraint); //约束不能同时满足
}
//varNum:变量的个数
//constraint:变量约束集合
public static void checkConstraint(int varNum,Constraint[] constraint){
int[] components=new int[varNum]; //并查集
for(int i=0;i<varNum;i++)
components[i]=i;
boolean isConstraint=true;
for(int i=0;i<constraint.length;i++){
int v1=constraint[i].value1;
int v2=constraint[i].value2;
//变量相等,放入同一个并查集中
if(constraint[i].isEqual==true){
for(int j=0;j<components.length;j++){
if(components[j]==v2)
components[j]=components[v1];
}
}else{
//变量不相等且位于同一个并查集中,则不满足约束条件
if(components[v1]==components[v2]){
System.out.println("约束不能同时满足");
isConstraint=false;
break;
}
}
}
if(isConstraint==true)
System.out.println("约束能同时满足");
}
}
class Constraint{
public int value1; //第value1个变量
public int value2; //第value2个变量
public boolean isEqual; //是否相等
public Constraint(int value1, int value2, boolean isEqual) {
super();
this.value1 = value1;
this.value2 = value2;
this.isEqual = isEqual;
}
}
Ex 5_26 变量约束是否能同时满足(并查集)_第九次作业的更多相关文章
- BZOJ.4500.矩阵(差分约束 SPFA判负环 / 带权并查集)
BZOJ 差分约束: 我是谁,差分约束是啥,这是哪 太真实了= = 插个广告:这里有差分约束详解. 记\(r_i\)为第\(i\)行整体加了多少的权值,\(c_i\)为第\(i\)列整体加了多少权值, ...
- bzoj1202: [HNOI2005]狡猾的商人(并查集 差分约束)
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4127 Solved: 1981[Submit][Sta ...
- Sql中常用的创建表 约束 主外键 增删改查的语句
创建数据库 USE master; GO --日记数据库 create database DiaryBase on ( name=DiaryBase_Dat,--逻辑名称 FILENAME='c:\D ...
- BZOJ 1202 狡猾的商人 差分约束or带权并查集
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1202 题目大意: 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的 ...
- [HNOI 2005]狡猾的商人
Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3...n-1,n), .当 ...
- JLOI2018 记
2018JL省选记 又是一年省选.今年的我,依然好菜啊... [Day 0] 呼...好紧张,明天就省选了.下周就有学长退役了吧,机房又该恢复冷清了吧.只剩下为数不多的几个i7接送着来来往往的OIer ...
- Sql Server系列:键和约束
1 约束的类型 约束可以分为3大类:实体约束.域约束和参照完整性约束. 1.1 实体约束 实体约束都是关于比较行的,实体约束并不关心整体列中的数据,它只对特定行感兴趣. 1.2 域约束 域约束处理一个 ...
- boost库(条件变量)
1相关理念 (1)类名 条件变量和互斥变量都是boost库中被封装的类. (2)条件变量 条件变量是thread库提供的一种等待线程同步的机制,可实现线程间的通信,它必须与互斥量配合使用,等待另一个线 ...
- 深度学习Trick——用权重约束减轻深层网络过拟合|附(Keras)实现代码
在深度学习中,批量归一化(batch normalization)以及对损失函数加一些正则项这两类方法,一般可以提升模型的性能.这两类方法基本上都属于权重约束,用于减少深度学习神经网络模型对训练数据的 ...
随机推荐
- JS循环语句!
<1> for(1.初始值(初始值只有一次):2.判断条件:4.状态改变){ 3.执行语句: //如果判断条件为true,则进入死循环:不设执行语句浏览器会未响应: } <2> ...
- P1186 玛丽卡 删边最短路最大值
反正蛮水的一道题. 胡雨菲一句话让我的代码减少了10行还A了,之前的是个错的. 思路:先求出最短路,然后依次删去最短路上的每一条边,跑最短路求最大值. 关于删边:我的想法是当作链表删除,把last的n ...
- 【POJ1734】Sightseeing Trip 无向图最小环
题目大意:给定一个 N 个顶点的无向图,边有边权,如果存在,求出该无向图的最小环,即:边权和最小的环,并输出路径. 题解:由于无向图,且节点数较少,考虑 Floyd 算法,在最外层刚开始遍历到第 K ...
- 使用html5获取当前手机的经纬度,并接入百度地图API,查询出当前位置
最近项目需要,稍微研究一下html5获取当前地理位置的问题. 获取当前位置的经纬度很简单,一句代码就搞定 navigator.geolocation.getCurrentPosition(functi ...
- hiho一下 第144周(机会渺茫)解题报告及拓展
题目1 : 机会渺茫 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在追求一名学数学的女生小Z.小Z其实是想拒绝他的,但是找不到好的说辞,于是提出了这样的要求: ...
- EOJ2018.10 月赛(B 数学+思维题)
传送门:Problem B https://www.cnblogs.com/violet-acmer/p/9739115.html 题意: 找到最小的包含子序列a的序列s,并且序列s是 p -莫干山序 ...
- (大数 求余) Large Division Light OJ 1214
Large Division Given two integers, a and b, you should check whether a is divisible by b or not. We ...
- Dubbo协议
参考dubbo官方文档http://dubbo.apache.org/zh-cn/docs/user/references/protocol/dubbo.html dubbo共支持如下几种通信协议: ...
- Spark2.1.0编译
1.下载spark源码包 http://spark.apache.org/downloads.html 2.安装Scala与maven,解压spark源码包 安装Scala: tar zxf scal ...
- NOI2018场外游记
鬼晓得APIO以后我经历了些什么 Day 0 好像没什么要记的 Day 1 下午去参加开幕式 神tm大型落地柜装风扇空调下放冰块 开幕式,,,hot chocolate是真的hot(强制在线?卡常?) ...