蓝桥杯国赛题--仓库布局

Posted on 2020-11-12 23:50  RorinL  阅读(189)  评论(0编辑  收藏  举报

查看更多

package guosai2020;
import java.util.*;

public class A {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();//行
		int m = in.nextInt();//列
		int level[] = new int[n+1];//水平过道2 5 8 11 14 17
		int vertical[] = new int[m+1];//垂直过道6 12 18 22 28 32
		int prohibit[] = new int[n+1];
		level[0] = 2;
		for(int i=1;i<=n;i++) {//水平过道行
			level[i] = level[i-1]+3;
		}
		vertical[0] = 6;
		for(int i=1;i<=m;i++) {//垂直过道列
			vertical[i] = vertical[i-1]+6;
		}
		prohibit[0] = 1;
		for(int i=1;i<=n;i++) {//朝南货柜行
			prohibit[i] = prohibit[i-1]+3;
		}
		
		int cnt = 0;
		for(int i=1;i<=n;i++) {
			//是否是最后一个且朝南
			if(i==n&&Arrays.binarySearch(prohibit,i)>=0) {
				continue;
			}
			//如果是水平过道就跳过下面的列数计算
			if(Arrays.binarySearch(level,i)>=0) {
				continue;
			}
			for(int j=1;j<=m;j++) {
				//如果是不是垂直过道就计数
				if(Arrays.binarySearch(vertical,j)<0) {
					cnt++;
				}
			}
		}
		System.out.println(cnt);
	}

}

 话不投机,立刻暴力解题!!!!

直接列3个表,有更好的解题思路可交流下;

 

样例可以过,其他的就没数据可测了

 

 

 

 

 

 

 

 

来源:

我的个人网站https://www.rfbynet.club