import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Stack;
/**
* 功能描述:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向
* 队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单
* @author Administrator
*
*/
public class Compare {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Team teamA=new Team();//A队
Man a=new Man("a");
teamA.addTeamMem(a);
a=new Man("b");
teamA.addTeamMem(a);
a=new Man("c");
teamA.addTeamMem(a);
Team teamB=new Team();//B队
a=new Man("x");
teamB.addTeamMem(a);
a=new Man("y");
teamB.addTeamMem(a);
a=new Man("z");
teamB.addTeamMem(a);
//假设两组队员和对方队员全部PK,当然这是不可能的
for(int i=0;i<teamA.getTeamSize();i++){
Man man=teamA.getTeamMem(i);
for(int j=0;j<teamB.getTeamSize();j++){
man.addMatch(teamB.getTeamMem(j));
}
}
for(int i=0;i<teamB.getTeamSize();i++){
Man man=teamB.getTeamMem(i);
for(int j=0;j<teamA.getTeamSize();j++){
man.addMatch(teamA.getTeamMem(j));
}
}
//根据条件排除A队队员的对手
for(int i=0;i<teamA.getTeamSize();i++){
Man man=teamA.getTeamMem(i);
if(man.getName()!=null&&man.getName().equals("a")){
Man notMach=man.getMatchByName("x");
if(notMach!=null){
notMach.deleteMatch("a");
}
man.deleteMatch("x");
}else if(man.getName()!=null&&man.getName().equals("c")){
Man notMach=man.getMatchByName("x");
if(notMach!=null){
notMach.deleteMatch("c");
}
man.deleteMatch("x");
notMach=man.getMatchByName("z");
if(notMach!=null){
notMach.deleteMatch("c");
}
man.deleteMatch("z");
}
}
//如果两个队中队员的假设的对手只为一个,那么已经找到对手,并且该对手就是该队员的最终对手
for(int i=0;i<teamA.getTeamSize();i++){
Man man=teamA.getTeamMem(i);
if(man.listMatch().size()==1){
Man match=man.listMatch().get(0);
man.setRealMatch(match);match.setRealMatch(man);
}
}
for(int i=0;i<teamB.getTeamSize();i++){
Man man=teamB.getTeamMem(i);
if(man.listMatch().size()==1){
Man match=man.listMatch().get(0);
man.setRealMatch(match);match.setRealMatch(man);
}
}
//如果队员没有找到对手,那么他就去找对方没有找到对手的队员PK
for(int i=0;i<teamA.getTeamSize();i++){
Man man=teamA.getTeamMem(i);
if(man.getRealMatch()==null){
for(int j=0;j<teamB.getTeamSize();j++){
Man manp=teamB.getTeamMem(j);
if(manp.getRealMatch()==null){
man.setRealMatch(manp);
}
}
}
}
//查看A队队员的真正对手
for(int i=0;i<teamA.getTeamSize();i++){
Man man=teamA.getTeamMem(i);
System.out.println("A队中"+man.getName()+"队员对B队中"+man.getRealMatch().getName()+"队员");
}
}
}
/**
* 队类
* @author Administrator
*
*/
class Team{
private Stack<Man> menbers=new Stack<Man>();//队员列表
public void addTeamMem(Man man){
this.menbers.push(man);
}
public Man getTeamMem(int index){
return this.menbers.elementAt(index);
}
public int getTeamSize(){
return menbers.size();
}
}
/**
* 队员类
* @author Administrator
*
*/
class Man{
private String name;//队员名称
private Map<String, Man> match=null;//待定比赛对手队员范围
private Man realMatch=null;//最终决定的对手
public Man getRealMatch() {
return realMatch;
}
public void setRealMatch(Man realMatch) {
this.realMatch = realMatch;
}
public Man(String name) {
this.name = name;
this.match = new HashMap<String, Man>();
}
public Man getMatchByName(String name){
if(match!=null&&match.containsKey(name))return match.get(name);else return null;
}
public List<Man> listMatch(){
List<Man> l=new ArrayList<Man>();
for (Map.Entry<String,Man> m:match.entrySet()){
l.add(m.getValue());
}
return l;
}
public void deleteMatch(String name){
if(match!=null&&match.containsKey(name))match.remove(name);
}
public void addMatch(Man man){
match.put(man.getName(), man);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
分享到:
相关推荐
【口风与胆识训练】是一项针对新入职员工,尤其是保险行业新人的专项能力提升训练。这项训练的主要目的是提升参与者的沟通技巧、自信心、自我控制力以及团队协作能力,帮助他们在面对客户时展现出专业且有说服力的...
演奏口风琴曲欢乐颂串词参考.doc
监管提示购房者“防诱导”贷款中介口风趋紧但仍表示“可操作”.pdf
在相同入料条件下,对双欣矿业有限公司选煤厂的立式刮刀卸料离心机和卧式振动卸料离心机工艺效果进行了评定,同时对离心液中携带的次生煤泥增量作了简要对比;结果表明,前者脱水产物水分低、脱水率及脱水效率高,但离心...
因此,演奏者需根据乐曲需求灵活调整口风大小和气速,以达到理想的音色效果。 此外,舌头的运用技巧也是关键。竹笛演奏中有双吐、单吐和花舌等技巧,通过舌头的快速运动,可以实现音符的清晰分离或流畅连贯,进一步...
课程内容分为多个单元,第一单元重点是培训师的“演”技能,包括克服紧张情绪、台风训练、口风训练和结构化语言表达。克服紧张情绪是培训师必须面对的重要挑战,紧张可能出现在上场、开场、被提问等多个环节,可以...
RaiseDreams意为众筹梦想。... 众筹将成互联网金融领域的“弄潮儿” 淘宝众筹“淘星愿”;京东的JD 营销计划和京东众筹;还有百度早就放出口风要推众 筹平台。且不说没有“亲爹”的众筹平台,单就
4. **第一单元:培训师的“演”技能**:这是培训课程的重要组成部分,主要教授如何克服紧张情绪、提升台风和口风训练。克服紧张的关键在于充分准备、调整心态、进行身体活动以及与听众的互动。台风训练包括表情管理...
系统的结构中,氢冷却器是关键组件,通常设置在发电机定子机座的四个角落,每组有两个,总共8组。冷却器的停用会影响发电机的负荷能力,当部分冷却器停用时,需要密切监测发电机的振动和温度,以防止不平衡造成的...
- **知识点解析:** 脐风的别称包括脐带风、四六风、七日风、锁口风等,而“马脾风”不是脐风的别称。 **31. 咳嗽近一周的诊断** - **答案选项:** D. 痰湿咳嗽 - **知识点解析:** 根据患儿的症状描述,表现为痰多、...
还有百度早就放出口风要推众 筹平台。且不说没有“亲爹”的众筹平台,单就BAT大牛们进军众筹这一领域,即可窥视出2015年的众筹在互联网金融领域的饕餮盛宴。没有“亲爹”寻找 “干爹”的创业型众筹网站、互联网大...
还有百度早就放出口风要推众 筹平台。且不说没有“亲爹”的众筹平台,单就BAT大牛们进军众筹这一领域,即可窥视出2015年的众筹在互联网金融领域的饕餮盛宴。没有“亲爹”寻找 “干爹”的创业型众筹网站、互联网大...
还有百度早就放出口风要推众 筹平台。且不说没有“亲爹”的众筹平台,单就BAT大牛们进军众筹这一领域,即可窥视出2015年的众筹在互联网金融领域的饕餮盛宴。没有“亲爹”寻找 “干爹”的创业型众筹网站、互联网大...
吹箫机器人的控制主要包括两个部分:洞音的控制即手指的控制;口风的控制即吹气口气流的控制。口风控制就是人工肺的设置,其主要目标是能吹出不同大小的气流,来控制笛声的高低。这样笛子就可以演奏出不同音域的乐曲...
还有百度早就放出口风要推众筹平台。且不说没有“亲爹”的众筹平台,单就BAT大牛们进军众筹这一领域,即可窥视出2015年的众筹在互联网金融领域的饕餮盛宴。没有“亲爹”寻找“干爹”的创业型众筹网站、互联网大巨头...
还有百度早就放出口风要推众 筹平台。且不说没有“亲爹”的众筹平台,单就BAT大牛们进军众筹这一领域,即可窥视出2015年的众筹在互联网金融领域的饕餮盛宴。没有“亲爹”寻找 “干爹”的创业型众筹网站、互联网大...
以己17-22260工作面为例,该工作面位于己二扩大采区西翼第三区段,煤层厚度0.8~6.8m不等,平均厚度为4.2m,煤层倾角在10°到27°之间变动,同时还存在两条落差8~10m的逆断层。这些因素导致切眼内巷道起伏、倾角...
- 胶带上山与9103胶带顺槽口风桥墙体长8.5米;轨道上山交叉点处风桥墙体长8.3米。 - 基础深度:400毫米。 - 墙厚:800毫米。 - 墙后用矸块充填密实。 - **顶部结构**: - 采用6米长的24Kg钢轨制成的横梁,并用...
### 一年级语文知识点详解:数字与不同的量词组词 #### 一、基础知识概述 本文档主要介绍了一年级学生在学习语文过程...此外,教师和家长还可以根据实际情况,引导孩子进行更多的练习,以便更熟练地掌握这些知识点。
- 天花、换气口风叶除尘:每月至少一次。 ##### 3. 棋牌室 - 麻将台整理、桌椅擦拭:每日至少一次。 - 地毯、沙发吸尘:每周至少一次。 - 窗户、玻璃、装饰物件清洁:每月至少一次。 - 天花、地毯清洗:每季至少一...