求助 Java怎么写都是全RE
查看原帖
求助 Java怎么写都是全RE
266636
Captain_Bridge楼主2021/9/7 18:38

这是一开始用ArrayList写的

package _Practice;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Scanner;

public class P1076 {
	
	static class room{
		private int isStairs,number;
		public room(int S,int n) {
			this.isStairs = S;
			this.number = n;
		}
		public int getisStairs() {
			return isStairs;
		}
		public int getnumber() {
			return number;
		}
	}
	
	public static int Caculation(ArrayList<ArrayList<room>> building,int floors,int rooms,int start) {
		int count = 0;
		int nowRoom = start;
		
		for(int i = 0; i < floors ; i++) {
			int stairCount = 0;
			int allStairs = 0;
			for(int j = 0 ; j < rooms;j++) {
				allStairs+=building.get(i).get(j).getisStairs();
			}
			
			int aimNumber = building.get(i).get(nowRoom).getnumber()%allStairs;
			if(aimNumber==0)
				aimNumber=allStairs;
			count+=building.get(i).get(nowRoom).getnumber();
			
			while (true) {
				stairCount+=building.get(i).get(nowRoom).getisStairs();
				if(aimNumber==stairCount) {
					break;
				}
				if(nowRoom ==(rooms-1)) {
					nowRoom = -1;
				}
				nowRoom++;
			}
		}
		
		return count%20123;
	}
	
	public static void main (String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		int M = scan.nextInt();
		ArrayList<ArrayList<room>> building = new ArrayList<>();
		ArrayList<room> oneFloor = new ArrayList<>();
		ArrayList<room> temparyOneFloor = new ArrayList<>();
		for(int j = 0 ; j < N; j++) {
			for(int i = 0 ; i < M ; i++) {
				int isStairs = scan.nextInt();
				int number = scan.nextInt();
				room aNewRoom = new room(isStairs,number);
				temparyOneFloor.add(aNewRoom);
			}
			oneFloor=(ArrayList<room>) temparyOneFloor.clone();
			building.add(oneFloor);
			temparyOneFloor.clear();
		}
		int start = scan.nextInt();
		
		System.out.println(Caculation(building,N,M,start));
	}
}

2021/9/7 18:38
加载中...