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个表,有更好的解题思路可交流下;
样例可以过,其他的就没数据可测了

 
 
 
来源:
 
                     
                    
                 
                    
                 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号