TopcoderArchive
Archive
Algorithm problem

YoudaoIntern

Problem statement, definition, constraints, and public examples.

Problem Statement

æœ‰é“æœ€è¿‘æ‹›è˜äº†ä¸€æ‰¹å®žä¹ ç”Ÿï¼Œç»™ä»–ä»¬å®‰æŽ’åº§ä½æ—¶é‡åˆ°äº†ä¸€ä¸ªæœ‰è¶£çš„é—®é¢˜ã€‚åŠžå ¬å®¤æœ‰N排,每排有Mä¸ªåº§ä½ã€‚ä¸ºäº†æ–¹ä¾¿å®žä¹ ç”Ÿå’Œå ¨èŒå‘˜å·¥æ›´å¥½çš„äº¤æµï¼Œå®‰æŽ’åº§ä½æ—¶ï¼Œæˆ‘ä»¬ä¸è®©ä»»ä½•2ä¸ªå®žä¹ ç”Ÿåº§ä½æ°´å¹³ï¼Œç«–ç›´æˆ–è€ å¯¹è§’çº¿ç›¸é‚»ã€‚

给定一个String[] intern, 把internçš„æ¯ä¸ªå ƒç´ ä¾æ¬¡æ‹¼æŽ¥èµ·æ¥å¾—åˆ°ä¸€ä¸²ä»¥å•ä¸ªç©ºæ ¼éš”å¼€çš„æ•°å­—ã€‚è¿™ä¸²æ•°åˆšå¥½æœ‰N个,第i个数字表示安排在第i排的实习生数量。请计算满足条件的座位安排方案总数。因为总数可能过大,返回方案总数除以1000000007的余数。

Definition

Class:
YoudaoIntern
Method:
numberOfWays
Parameters:
int, String[]
Returns:
int
Method signature:
int numberOfWays(int M, String[] intern)
(be sure your method is public)

Constraints

  • M 在1到15之间,含1和15。
  • intern有1到50ä¸ªå ƒç´ ï¼Œå«1和50。
  • internçš„æ¯ä¸ªå ƒç´ åŒ å«1到50个字符,含1和50。
  • internæ‰€æœ‰å ƒç´ æ‹¼æŽ¥èµ·æ¥åŽï¼Œä¼šå¾—åˆ°ä¸€ä¸²ä»¥å•ä¸ªç©ºæ ¼éš”å¼€çš„æ•°å­—ï¼Œæ•°å­—ä¸ä¼šä»¥0开始,这串数不会以空格开始或结尾,也不会有连续的空格。
  • internå ƒç´ æ‹¼æŽ¥å¾—åˆ°çš„æ•°å­—ä¸²åŒ å«1到200个数字,含1到200,每个数字大小在0到M之间,含0和M。

Examples

  1. 3
    {"2"}
    Returns: 1
    只有一个方案把2个实习生安排在这一排。
  2. 4
    {"1"}
    Returns: 4
    实习生可以被安排在这排的4个座位中任何一个。
  3. 3
    {"1 1"," 1"}
    Returns: 2
    两种方案如下: X.. ..X ..X X.. X.. ..X
  4. 14
    {"2 1","0"}
    Returns: 0
    没有方法可以安排这么多实习生在同一排。注意intern代表int[] {2, 10}。
  5. 4
    {"1 1 1"}
    Returns: 10
Back to all problems