私信TA

用户名:Praguetramp

访问量:29421

签 名:

等  级
排  名 19
经  验 19948
参赛次数 0
文章发表 130
年  龄 0
在职情况 待业
学  校
专  业

  自我简介:

aura

解题思路:       数组模拟就行
    
注意事项:       题目的n和环形根本没限制好……,AC只需数组开完就行

参考代码:

import java.util.Scanner;

/**
 * 2021年2月16日  下午8:32:46
 * @author praguetramp
 */
public class Main {
	
	@SuppressWarnings("resource")
	public static void main(String []args) {
		Scanner in =new Scanner(System.in);
		int n=in.nextInt();   //晾衣架的长度,与n无关……
		while(in.hasNext()) {
			int flag [] = new int [100005],index=0;
			int m=in.nextInt();  //表示有几件衣服
			for( int i=0;i<m;i++) {
				int len=in.nextInt(); //每件衣服的长度
				if(i==0) {   //第一件衣服
					for(int k=0;k<len;k++) {    //第一件衣服所占的格子数目  
						flag[index+k]=1;
					}
//					flag[n-1]=2;    环形是个啥?没作用……
					flag[index+len]=2;  //间隔格子
					index=0+len+1;    //置为1,并移动到下次开始的位置,0表示起点,i表示长度,1表示单个间隔格子
				}
				else {
					for(int k=0;k<len;k++){    //第i件衣服
						flag[index+k]=1;
					}
					flag[index+len]=2;
					index=index+len+1;
				}
					
			}
			int q=in.nextInt()-1;  //需要查询的位置
			if(q<0)
				return ;
			System.out.println(flag[q]);
		}
		in.close();
 	}
}


 

0.0分

2 人评分

  评论区