106號房間共有n名居民, 他們每人有乙個重要度。房間的門上可以裝若干把鎖。假設共有k把鎖,命名為1到k。每把鎖有一種對應的鑰匙,也用1到k表示。鑰匙可以複製並發給任意多個居民。每個106房間的居民持有若干鑰匙,也就是1到k的乙個子集。如果幾名居民的鑰匙的並集是1到k,即他們擁有全部鎖的對應鑰匙,他們都在場時就能開啟房門。新的陸戰協定規定,一組居民都在場時能開啟房門當且僅當他們的重要度加起來至少為m。問至少需要給106號房間裝多少把鎖。即,求最小的k,使得可以適當地給居民們每人若干鑰匙(即乙個1到k的子集),使得任意重要度之和小於m的居民集合持有的鑰匙的並集不是1到k,而任意重要度之和大於等於m的居民集合持有的鑰匙的並集是1到k。
第一行兩個整數n和m,0示例1複製複製4 3
1 1 1 1
6
106號房共有4名居民,只有3人在場時才能開啟門。這時共需6把鎖。
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define inf 0x7ffffff
#define p pairtypedef long long ll;
using namespace std;
const ll mod=1e9+7;
int ans;
ll n,m,a[25];
int main()
return 0;
}
有不等式y⋅x3≤ n,已知y為正整數,x為大於1的正整數,問當x和y的解數量剛好為m的時候n的最小值,如果不存在輸出 -1。
多組資料讀入。每組資料乙個數字m,如題所示。
每組資料輸出一行,輸出答案。示例1
複製
1複製
8
當方案恰好只有一種的時候,n的最小值為8,此時y=1,x=2。1 ≤ m ≤ 1016
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define inf 0x7ffffff
#define p pairtypedef long long ll;
using namespace std;
const ll mod=1e9+7;
ll n, m;
ll check(ll num)
int main()
else
l=mid+1;
}if(check(ans)==m)
cout
cout<<"-1"<}
return 0;
}
牛客每日練習 比賽,完全平方數,裝進肚子
你在打比賽,這場比賽總共有12個題 對於第i個題,你的隊伍有a i 的機率解決她 如果解決不了她呢?由於所有人討論的都很大聲 所以你有b i 的概率從左邊那個隊那裡聽會這個題的做法 有c i 的概率從右邊那個隊那裡聽會這個題的做法 請問最終你們隊伍解出0 12題的概率分別是多少 第一行12個數表示a...
基礎練習 回形取數
問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用...
基礎練習 回形取數
基礎練習 回形取數 時間限制 1.0s 記憶體限制 512.0mb 提交此題 錦囊1 錦囊2 問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個...