Ex 5_28 Alice想要举办一个舞会..._第十次作业

根据总人数建立顶点数量为总人数的无向图,顶点之间有边相连表示两个人相互认识,没有边则表示不认识。对于每一个顶点v,设d(v)表示顶点的度,若d(v)<5,即v认识的人数少于5,则不邀请v,若d(v)>总人数-6,即v认识的人数大于(总人数-6)个,即v不认识的人少于5个,这种情况也不邀请v,给定一个相互配对列表,循环遍历列表,找出不邀请的人,从列表中删除,若找不到删除的人则结束循环,剩下的即为要邀请的人。
package org.xiu68.ch05.ex10;
import java.util.ArrayDeque;
public class Ex5_28 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] guest=new int[13][13];
//0~5之间相互认识,不认识6~11
//6~11之间相互认识,不认识0~5
//12不认识任何一个人
//结果应该邀请除了12之外的所有人
for(int i=0;i<guest.length-1;i++){
if(i<=5){
for(int j=0;j<guest[i].length-1;j++){
if(j<=5 && i!=j)
guest[i][j]=1;
else
guest[i][j]=0;
}
}else{
for(int j=0;j<guest[i].length-1;j++){
if(j>5 && i!=j)
guest[i][j]=1;
else
guest[i][j]=0;
}
}
}//for
maxGuest(guest, 13);
/*运行结果*/
//邀请的客人为:
//0 1 2 3 4 5 6 7 8 9 10 11
}
//guest:客人的相识配对表
//客人总数
public static void maxGuest(int[][] guest,int num){
int invidedNum=num; //记录邀请的人数
boolean[] invided=new boolean[num]; //记录邀请的客人,邀请为true
for(int i=0;i<num;i++)
invided[i]=true;
ArrayDeque<Integer> notInvidedQueue=new ArrayDeque<>(); //记录不邀请的客人
do{
for(int i=0;i<notInvidedQueue.size();i++)
invided[notInvidedQueue.poll()]=false; //将不邀请的客人标记为false
for(int i=0;i<num && invided[i]==true;i++){
int recognizeNum=0; //第i个人相识的人数
for(int j=0;j<num && invided[j]==true;j++){
if(guest[i][j]==1)
recognizeNum++;
}//for2
//如果认识的人数少于5个
//或者如果认识的人数大于(总人数-6)个,即不认识的人少于5个
//则不邀请这个人
if(recognizeNum<5 || recognizeNum>(invidedNum-6)){
notInvidedQueue.add(i);
invidedNum--;
}
}//for1
}while(!notInvidedQueue.isEmpty());
System.out.println("邀请的客人为:");
for(int i=0;i<num;i++){
if(invided[i])
System.out.print(i+" ");
}
System.out.println();
}
}
Ex 5_28 Alice想要举办一个舞会..._第十次作业的更多相关文章
- Ex 5_33 实现一个关于公式长度(其中所有文字总的出现次数)为线性时间的Horn公式可满足性问题_第十次作业
对于所有的蕴含式,生成一张有向图,对于每一个蕴含式,将左边的每一个文字连接到一个中间结点,并用中间结点记录蕴含式左边文字的数量,然后将中间结点连接到蕴含式的右侧结点.例如,对于蕴含式集合 生成的有向图 ...
- 单位分配的IP地址和电脑主机绑定了,我想用设置一个无线路由器,让我的笔记本电脑和手机都能上网?
单位分配的IP地址和电脑主机绑定了,我想用设置一个无线路由器,让我的笔记本电脑和手机都能上网? 配一个无线路由器就可以实现,将电脑IP配置成自动获取,找条网线一头插路由LAN口(路由器上有标明 ...
- 假设我的朋友账号分别是v{1,2,3,4,5},且这五人想要共享一个目录,因此应该加入同一个群组,假设这个群组为vbird,且这五个账号的密码均为password.那该如何建置这五个账号?
假设我的朋友账号分别是v{1,2,3,4,5},且这五人想要共享一个目录,因此应该加入同一个群组,假设这个群组为vbird,且这五个账号的密码均为password.那该如何建置这五个账号?#!/bin ...
- 假如想要建设一个能承受500万PV/每天的网站,服务器每秒要处理多少个请求才能应对?
假如想要建设一个能承受500万PV/每天的网站,服务器每秒要处理多少个请求才能应对?如何计算? 1.PV是什么:PV是page view的简写.PV是指页面的访问次数,每打开或刷新一次页面,就算做一个 ...
- 在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色
原文:在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色 在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色 例如根据学生的年龄来修改,年龄 ...
- VMware 克隆linux后找不到eth0(学习hadoop,所以想快速搭建一个集群)
发生情况: 由于在学习hadoop,所以想快速搭建一个集群出来.所以直接在windows操作系统上用VMware安装了CentOS操作系统,配置好hadoop开发环境后,采用克隆功能,直接克 ...
- 宙斯是一个完整的Hadoop的作业平台[转]
https://github.com/alibaba/zeus 宙斯(zeus)是什么 宙斯是一个完整的Hadoop的作业平台从Hadoop任务的调试运行到生产任务的周期调度 宙斯支持任务的整个生命周 ...
- 《Google想出了一个决定人员晋升的算法,然后就没有然后了......》有感
Prasad Setty 是 Google People Analytics 团队的副总裁.7 年前 Google 成立的这支团队的职责是收集和利用数据来支撑公司的管理实践.其使命很简单,即基于数据和 ...
- 突发奇想想学习做一个HTML5小游戏
前言: 最近一期文化馆轮到我分享了,分享了两个,一个是关于童年教科书的回忆,一个是关于免费电子书的.最后我觉得应该会不敌web,只能说是自己在这中间回忆了一下那个只是会学习的年代,那个充满梦想的年代. ...
随机推荐
- eclipse复制工作空间配置
eclipse复制工作空间配置 eclipse复制工作空间配置 总结一下,复制工作空间配置步骤如下: 1 使用eclipse新建workspace. 2 将新建的workspace下的.metad ...
- css 实现背景图片不跟着滚动条滚动而滚动
效果: 只需要在需要背景不跟着动的div里: div{ background:url(); background-attachment:fixed; } 加上background-attachment ...
- 启动tomcat时报错:java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:A child container failed during start
解决方法:https://www.cnblogs.com/xiangxinhouse/p/6377842.html
- java.lang.ClassCastException:java.util.LinkedHashMap不能转换为com.testing.models.Account
ObjectMapper mapper=new ObjectMapper();POJO pojo = mapper.convertValue(singleObject, POJO.class);
- Spring + Mybatis 读写分离
项目背景:项目开发中数据库使用了读写分离,所有查询语句走从库,除此之外走主库. 实现思路是: 第一步,实现动态切换数据源:配置两个DataSource,配置两个SqlSessionFactory指向两 ...
- Linux 文件管理权限
这里呢我们需要掌握的是两个命令 chmod 和 chgrp和chown 视频地址:http://www.tudou.com/listplay/pA16IH7T_Sc/LuyHbR_7Yp0.html ...
- Hi3519v101-uboot-start.S分析
00032: #include <config.h>00033: #include <version.h> 1)#include <config.h>.config ...
- JAVA-集合类型Set常用操作例子(基础必备)
package com.net.xinfang.reflect; import java.util.Comparator; import java.util.HashSet; import java. ...
- 源码分析之CountDownLatch
https://www.cnblogs.com/leesf456/p/5406191.html
- C# 使用ffmpeg视频截图
<appSettings> <add key="ffmpeg" value="E:\ffmpeg\ffmpeg-20141012-git-20df026 ...