Codeforces Round 1078 (Div. 2) A,B,C,D,E,F题解,你能一一解答吗?

摘要:A. 割草机 数学 每个测试时间限制:1秒 每个测试内存限制:256兆字节 夏季别墅的出口由一道栅栏围成,栅栏由 (n) 块木板组成,每块木板宽 (1) 米。出口的左右两侧是其他地块的栅栏。为了建造浴室,需要移除栅栏中的一些木板(可
A. 割草机 数学 每个测试时间限制:1秒 每个测试内存限制:256兆字节 夏季别墅的出口由一道栅栏围成,栅栏由 \(n\) 块木板组成,每块木板宽 \(1\) 米。出口的左右两侧是其他地块的栅栏。为了建造浴室,需要移除栅栏中的一些木板(可能是全部或一块也不移除),同时地块上有一台自动割草机,其宽度为 \(w\) 米,且不能通过栅栏上的缺口离开地块。 如果被移除的木板编号中,存在至少 \(w\) 块连续被移除的木板,割草机就能够离开地块。请确定可以从栅栏中移除的最大木板数量。 输入 每个测试包含多个测试用例。第一行包含测试用例的数量 \(t\)(\(1 \le t \le 10^4\))。接下来是每个测试用例的描述。 每个测试用例仅包含一行,其中有两个整数 \(n\) 和 \(w\)(\(1 \le n \le 10^9\),\(1 \le w \le 10^9\))——分别表示栅栏中的木板数量和割草机的宽度(以米为单位)。 输出 对于每个测试用例,输出一个数字——可以从栅栏中移除的最大木板数量。 思路 通过观察,可以计算出中间需要放置的栅栏有\(\left\lfloor \frac{n}{k} \right\rfloor\)个,因此空出来的栅栏一共有\(n-\left\lfloor \frac{n}{k} \right\rfloor\)个 代码 #include<bits/stdc++.h> using namespace std; #define ll long long #define int ll #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define per(i,a,b) for(int i=(a);i>=(b);i--) void solve() { int n, k;cin >> n >> k; cout << n - n / k << '\n'; } signed main() { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); int t = 1; cin >> t; while (t--)solve(); } B.离岸资金 数学 每个测试时间限制 1.5 秒 每个测试内存限制 256 MB 马克非常喜欢钱,并且他把大部分钱都存在银行里。他在 \(n\) 家不同的银行中存有资金。在第 \(i\) 家银行,他有 \(a_i\) 卢布。 某天,马克决定将他所有的钱集中到一家银行,因此他需要将资金从一个银行账户转移到另一个账户。所有的银行间转账都按照相同的方式进行:他一次只能转账 \(x\) 卢布,并且考虑到所有费用,实际到账金额为 \(y\) 卢布(因为银行要盈利,所以有 \(y \le x\))。 马克可能无法将所有的钱都转移到一家银行,但他希望找到最终任何一家银行中能得到的最大卢布数量。 输入 每个测试包含多个测试用例。第一行包含测试用例的数量 \(t\) \((1 \le t \le 10^4)\)。接下来是每个测试用例的描述。 每个测试用例的第一行包含三个整数 \(n\)、\(x\) 和 \(y\) \((2 \le n \le 2 \cdot 10^5, 1 \le y \le x \le 10^9)\) —— 银行数量、转账金额和实际到账金额。 每个测试用例的第二行包含 \(n\) 个整数 \(a_1, a_2, \dots, a_n\) \((1 \le a_i \le 10^9)\) —— 每家银行初始的卢布金额。 保证所有测试用例的 \(n\) 的总和不超过 \(2 \cdot 10^5\)。 输出 对于每个测试用例,输出一个数字 —— 任何一家银行中能获得的最大卢布数量。 思路 对于一个\(a_{i}\),如果想要把他分给其他银行,那么最好的情况是\(a_{i}\%x==0\),此时可以把\(a_{i}\)完全对答案分出\(\frac{a_{i}}{x}\times y\)的贡献,否则将会有\(r_{i}=a_{i}\%x\)的剩余 对于一个\(r_{i}\neq 0\),如果有别的份额分到了自己身上,可以记为\(r_{i}+t\cdot y\),当\((r_{i}+t\cdot y)\%x==0\)时,当前的\(r_{i}\)被完全消耗完毕 然而,注意到就算使用其他的银行份额\(t\cdot y\)来消耗剩余的\(r_{i}\),最终能够贡献给答案的\(y\)的数量没有发生变化。
阅读全文