gpt4 book ai didi

java - 找到立方体的相邻边

转载 作者:行者123 更新时间:2023-12-01 11:20:08 25 4
gpt4 key购买 nike

我正在尝试做一个关于查找立方体相邻边的在线问题。完整的问题位于 http://www.codechef.com/JULY15/problems/CHCUBE 。它给了我正确的答案,但是当我提交时它会得到错误的答案。

这是我的java代码

 import java.util.*;

class Cube {

public static void main(String[] args)
{
long T;
int blue = 0,black = 0,red=0,green=0,orange=0,yellow=0;

Scanner input=new Scanner(System.in);
T=input.nextLong();
int pos=0,checked=0,answer=0;
String colors[]=new String[6];
while(T>0){

for(int temp=0;temp<6;temp++)
{
colors[temp]=input.next();

if(colors[temp].equals("blue"))
{

blue++;
if(blue>2)
pos=temp;
}
else if(colors[temp].equals("black"))
{black++;
if(black>2)
pos=temp;
}
else if(colors[temp].equals("yellow"))
{yellow++;
if(yellow>2)
pos=temp;
}
else if(colors[temp].equals("orange"))
{orange++;
if(orange>2)
pos=temp;
}
else if(colors[temp].equals("green"))
{green++;
if(green>2)
pos=temp;
}
else if(colors[temp].equals("red"))
{red++;
if(red>2)
pos=temp;
}
}

if(blue>2||black>2||green>2||yellow>2||red>2||orange>2)
{ if(pos%2==0)
{
checked=(pos+2)%6;
}
else{


checked=(pos+1)%6;
}


if(colors[pos].equals(colors[checked] )||colors[pos].equals(colors[(checked+1)%6]) )
{
if(colors[pos].equals(colors[(checked+3)%6]) ||colors[pos].equals(colors[(checked+2)%6]) )
{

answer++;
}

}

}
if(answer==1)
System.out.println("YES");
else
System.out.println("NO");

T--;
}


}



}

最佳答案

我建议您将整个事情建模为图表。

在本例中,图是一种非常灵活的数据结构您也可以使用所有算法,因为问题大小这么少。

图的节点是边,每个节点必须有代表其颜色的属性color

每个节点还有一个相邻边的列表(所以我们是实现具有相邻列表的图,而不是相邻矩阵)。

如果您已经构建了图表,您可以开始计算具有相同颜色的相邻边。有很多不同的方法,我认为在你的情况下可能是最好删除颜色不同的边之间的所有节点。

之后,您可以计算图表中剩余的所有边。由于该图是无向图,因此您必须将结果为 2。

请注意,这种方法不会导致庞大的 main 方法 - 您可以更快地解决和调试问题。

关于java - 找到立方体的相邻边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31346928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com