1. 程式人生 > >1261 字串數(JAVA)

1261 字串數(JAVA)

題目:

Description

一個A和兩個B一共可以組成三種字串:"ABB","BAB","BBA". 
給定若干字母和它們相應的個數,計算一共可以組成多少個不同的字串. 

Input

每組測試資料分兩行,第一行為n(1<=n<=26),表示不同字母的個數,第二行為n個數A1,A2,...,An(1<=Ai<=12),表示每種字母的個數.測試資料以n=0為結束. 

Output

對於每一組測試資料,輸出一個m,表示一共有多少種字串. 

Sample Input

2
1 2
3
2 2 2
0

Sample Output

3
90

簡單的排列問題。

如果是4個數a,b,c,d那麼結果就是(a+b+c+d)!/a!/b!/c!/d!,以此類推。

程式碼:

importjava.util.*;
importjava.math.BigInteger;
public classMain {

	public static BigIntegerf(int k)
	{
		BigIntegers=newBigInteger("1");
		for(int i=1;i<=k;i++)s=s.multiply(BigInteger.valueOf(i));
		return s;
	}
	
    public static void main(String[] args) {
        Scannercin = newScanner(System.
in); while(true) { int n=Integer.parseInt(cin.next()); if(n==0)break; BigIntegers=newBigInteger("1"); int sum=0; while(n-->0) { int k=Integer.parseInt(cin.next()); s=s.multiply(f(k)); sum+=
k; } BigIntegerr=f(sum); System.out.println(r.divide(s)); } } }

相關推薦

1261 字串JAVA

題目:Description一個A和兩個B一共可以組成三種字串:"ABB","BAB","BBA". 給定若干字母和它們相應的個數,計算一共可以組成多少個不同的字串. Input每組測試資料分兩行,第一

HDU 1261 字串大數階乘 除法 組合 java

生平第一次用java A題 這個題目明顯的一個全排列除以相同元素的排列數 import java.util.*; import java.math.*; public class Main { public static void main(St

《劍指offer》系列 醜Java

連結 牛客:醜數 題目描述 把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 思路 醜叔一定是2 3 或是 5的倍數 i2 i3 i5

《劍指offer》系列 把陣列排成最小的Java

連結 牛客:把陣列排成最小的數 題目描述 輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。 思路 1、全排列 求出陣列中所有數字的全排列

劍指offer:醜java

package Second; /** * 題目: * 把只包含質因子2、3和5的數稱作醜數(Ugly Number)。 * 例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。

leetcode:字串相乘java

package LeetCode; import java.util.ArrayList; import java.util.List; public class Multiply { /* 思路:乘法運算的時候每一個都要相乘也就是n*n 當被乘數到達第二位的時候乘以乘數的

卡特蘭JAVA

Game of Connections Description This is a small but ancient game. You are supposed to write down the numbers 1, 2, 3, ... , 2n - 1, 2n

藍橋杯 ADV-188 演算法提高 排列java 深度優先搜尋 DFS

 演算法提高 排列數   時間限制:1.0s   記憶體限制:256.0MB 問題描述   0、1、2三個數字的全排列有六種,按照字母序排列如下:   012、021、102、120、201、210   輸入一個數n   求0~9十個數的全排列中的第n個(

LeetCode 9.迴文Java

題目描述: 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。

字串排序Java

字串排序 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 輸入3個字串,按字典序從小到大進行排序。 Input

出現次數最多的java,ccf考試模擬題

import java.util.Scanner; public class Main {   public static void main(String[] args) {       Scanner sc = new Scanner(System.in);     

藍橋杯 演算法提高VIP 五次方java

對一個數十進位制表示時的每一位數字乘五次方再求和,會得到一個數的五次方數 例如:1024的五次方數為1+0+32+1024=1057 有這樣一些神奇的數,它的五次方數就是它自己,而且這樣的數竟然只有有限多個 從小到大輸出所有這樣的數 

HDU 2010&CSU 1261 水仙花暴力

傳送門 初中的時候覺得這題好難,懷念一下o(^▽^)o 除10模10取位暴力╮(╯-╰)╭ Description 春天是鮮花燦爛的季節,水仙花就是其中最迷人的代表,數學上有個水仙花數,他是這樣

藍橋杯-K好java

藍橋杯練習題—K好數 問題描述 如果一個自然數N的K進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是K好數。求L位K進位制數中K好數的數目。例如K = 4,L = 2的時候,所有

牛客:劍指offer:孩子們的遊戲(圓圈中最後剩下的) Java

轉自:http://blog.csdn.net/crazy__chen/article/details/45115911 題目描述: 解法1:找規律。首先定義最初的n個數字(0,1,…,n-1)中最後剩下的數字是關於n和m的方程為f(n,m)。在這n個數字中,第一個被刪除

筆試面試演算法經典-找到陣列中出現次數大於N/k的Java

【題目】 給定一個整型陣列arr,再給定一個整數k,列印所有出現次數大於 N/K 的數。如果沒有這樣的數,列印提示資訊。 【要求】 時間複雜度為O(N*K),額外空間複雜度為O(K)。 【思路】 每次從陣列中刪除 K 個不同的數,如果某個數的次數大

基本字串壓縮Java

利用字元重複出現的次數,編寫一個方法,實現基本的字串壓縮功能。比如,字串“aabcccccaaa”經壓縮會變成“a2b1c5a3”。若壓縮後的字串沒有變短,則返回原先的字串。 給定一個string iniString為待壓縮的串(長度小於等於3000),保證串內字元均由大小寫英文字母組成,返回一個str

劍指offer:把陣列排成最小的java

題目:輸入一個正整數陣列,把數組裡面所有的數字拼接排成一個數,列印能拼接出的所有數字中的一個。例如輸入陣列{3,32,321},則打印出這3個數字能排成的最小數字321323.     這個題目最直接的做法應該是先求出這個陣列中的所有數字的全排列,然後把每個排列拼接起來,

把陣列排成最小的java

題目描述: 輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。 解題思路: 一開始自己沒想到,便去看了別人的題解,沒想到可以巧妙的使用比較器進行

劍指offer-醜Java

題目描述 把只包含因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 思路