description
input
on the first line one positive number: the number of test cases, at most 100. after that per test case:
output
per test case:
sample input
2sample output3hat headgear
sunglasses eyewear
turban headgear
3mask face
sunglasses face
makeup face
53不管前面的名字,直接記錄後面每種型別的個數就好了,
對於每種型別i,有a[i]個,則有a[i]+1種選擇,拿其中乙個或者不拿,
所以一共有sum=(a[i]+1)的乘積再減去1,因為有一種情況是所有的都不拿,不符合要求。
初始化:a初始化為0
然後題目每給出一種型別,我們就在 a[該型別]++
而型別給我們的是字串,所以要hash。
注意,hash的時候取余時的mod要大一點,不然很可能會重複。
1 #include2 #include3view codeusing
namespace
std;45
const
int maxn=3500;6
7 unsigned int bkdrhash(char*s)815
return (hash%maxn); //
題目這裡最大的n是30,但是wa了,因為mod開小了可能會重複16}
1718
int a[maxn+5
];19
20int
main()
2136
int sum=1;37
for(int i=0;i5;i++)
3841 sum--;
42 cout
44return0;
45 }
第123場周賽
1,989.陣列形式的整數加法 方法一 逐位相加 思路 讓我們逐位將數字加在一起。舉乙個例子,如果要計算 123 與 912 的和。我們順次計算 3 2 2 1 1 9。任何時候,當加法的結果大於等於 10 我們要將進製的 1 加入下一位的計算中去,所以最終結果等於 1035。演算法 我們可以對以上...
第191場周賽
class solution return res 這裡有個注意的點,maxh maxw這兩個int的值的乘積會超過int的範圍,所以要先轉換為double class solution maxh maxh h horizontalcuts hcut 1 maxh h horizontalcuts ...
第193場周賽
class solution return res class solution map maps new treemap int len arr.length int max 1 for int i 0 i else int totoalnum maps.size arraylist sorted...