hihocoder-1546-集合計數
時間限制:10000ms
單點時限:1000ms
記憶體限制:256mb
給定乙個包含n個整數的集合s=,以及乙個給定的整數k,請計算有多少個s的子集滿足其中的最大值與最小值的和小於等於k。
例如對於s=以及k=7,滿足的條件的子集有以下4個:, , , 。
第一行包含兩個整數n和k。
第二行包含n個整數a1, a2, ... an。
對於30%的資料,1 <= n <= 20
對於70%的資料,1 <= n <= 1000
對於100%的資料,1 <= n <= 100000, 0 <= ai <= 1000000000, 0 <= k <= 2000000000, a1 ~ an 兩兩不同。
輸出滿足條件的子集數目。由於答案可能非常大,你只需要輸出答案除以1000000007的餘數。
樣例輸入
4 7樣例輸出4 2 5 8
4
總結:(1), 詳細審題,看清題意!!!! 是集合的最大值 + 最小值 <= k
(2), 經過 sort 之後,雙端往裡面掃。
假如 剛好到了 num[i] + num[j] <= k , 那麼,num[i]一定在集合中,保證這個集合的最小值。所以,剩下的 i + 1, i + 2, ..... j, 是隨意在不在這個集合, 則是 2 ^ (j - i) 種集合。
(3),注意 fast_mode 的 取模操作, 同時對 ans 和 b 取模,保證結果 % mod。
#include #include const int maxn = 1e5 + 10;const int mod = 1000000007;
int num[maxn];
int cmp(const void *a, const void *b)
long long fast_mode(long long a, long long b)
a = (a*a) % mod;
b /= 2;
}return ans;
} int main()
if(j >= i)
}printf("%lld\n", ans );
}return 0;
}
python3集合 Python3 集合
集合 set 是乙個無序的不重複元素序列。可以使用大括號 或者 set 函式建立集合,注意 建立乙個空集合必須用 set 而不是 因為 是用來建立乙個空字典。建立格式 parame 或者set value 這裡演示的是去重功能 orange in basket 快速判斷元素是否在集合內 true c...
python3集合 Python3 集合
python3 集合 集合 set 是乙個無序的不重複元素序列。可以使用大括號或者set 函式建立集合,注意 建立乙個空集合必須用set 而不是,因為是用來建立乙個空字典。集合內建方法 add 為集合新增元素 例項 fruits.add orange print fruits 輸出結果為 clear...
2018 3 28 集合框架
1.迭代器的作用 為集合而生,用來專門遍歷集合中的元素 2.collection介面中的iterator 方法返回乙個iterator 通過iterator介面的兩個方法即可方便實現遍歷 hasnext 判斷是否存在另乙個可訪問的元素 next 返回要訪問的下乙個元素 3.map類使用迭代器遍歷元素...