這一次是華東師範大學出的題目
出題人說 一不小心出成了 沒人ac數量最多的一場多校
我最開始看的就是e題 想了好久 以為自己找到規律了 (其實並沒有)到比賽結束也沒人a這題
靠川醬carry全場
大意:一共有n道題目,總分為m,學生為了得到x分的成績需要學習x+1小時,他需要對k道題目,求他最少複習多少時間。
不知道每道題目對應的分值,可以先假設,k-1道題目的分數都是 0 分,
那麼他需要再對一道題目就可以了
用 m+1 的時間複習 (n-k+1)道題目,其中每道題目的複習時間為(m+1)/(n-k+1)
剩下的 k-1 題所用的時間必須比(n-k+1)所需的時間多 所以是(m+1)/(n-k+1)*(k-1)
還有一題的分值必須比 m 分多 所以需要(m+1)
參考:
#include #include using namespace std;
int mod = 1e9 + 7;
#define ll long long
int main()
ll ans = p * (k - 1) + m + 1;
printf("%lld\n", ans);
}return 0;
}
題目大意:對於每乙個等級,可以花 ai 元,有 ri/si 概率公升級,如果公升級失敗就退到xi級,問從 l 級公升到 r 級的錢數期望每一級都有成功和失敗兩種可能
需要判斷在 i 級公升級失敗時退到 xi 級時 需要多少再回到 i 級
得到下列式子
左右兩邊化簡 可得
**如下:
#include #include using namespace std;
int mod = 1e9 + 7;
#define ll long long
ll dp[1000005];
ll quickpow(ll x, ll n)
res = (res % mod) * (res % mod);
n = n >> 1;
}return ans;
}int main()
for (int i = 0; i < m; i++)
}return 0;
}
ps:要注意加減的時候要先加上模數在取模後來寫了題解: 2019暑假多校訓練第二場 部分題解
這次沒有爆零 有點感動 題目大意 有乙個數x 在範圍0 2 n 1 內 詢問 乙個數 y 給出答案 x y y 可以詢問多次 詢問之後 一起給出回答 可以簡單證明得到 範圍是 0 2 n 1時 需要n個數得到最小的方案數 因為兩個方案的詢問次序不同可算作兩種方案 所以 答案是 n ps 當n 100...
2019牛客暑期多校訓練營(第七場)
b題 示例1輸入22 1 2 1 21 0 1 輸出no yes就差一點點就打出來了嚶嚶嚶 include include include include include define ll long long using namespace std intmain else if n 1 else...
2019牛客暑期多校訓練營(第七場)H Pair
數字dp。這次是針對 和 的,所以數字變成了二進位制位數。針對二進位制從高到低位進行搜尋即可。include include include include include include include include include include include include include...