当前位置: 首页 > news >正文

Codeforce 980 Div2 A-D 题解

A. Profitable Interest Rate

原题

A. Profitable Interest Rate

思路

易推出公式 2 * a - b

代码

#include <bits/stdc++.h>
//#define int long long#define F(i, a, b) for (int i = (a); i <= (b); i++)
#define dF(i, a, b) for (int i = (a); i >= (b); i--)using namespace std;typedef long long ll;
typedef pair<int, int> pii;const int N = 500005, M = (N << 1), inf = 1e16, mod = 1e9 + 7;int n, m, k, x, y, z, ans, t;
int w[N], f[N];void solve()
{int a, b;cin >> a >> b;if (a >= b)cout << a << endl;else{cout << max(0, (2 * a - b)) << endl;}
}signed main()
{ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;cin >> T;while (T -- ){solve();}
}

B. Buying Lemonade

原题

B. Buying Lemonade

思路

这道题的思维多一点, 我们去求所有饮料机里剩余饮料最少的饮料机还剩多少罐饮料, 设此为 x, 然后所有饮料机都拿 x 罐

每次拿完 x 罐后, 下一次拿就可能会拿到那个空的饮料机, 这里加1

答案是需要的 k 罐饮料加上按倒空饮料机多按的次数

x 可以用差分得到

代码

#include <bits/stdc++.h>
#define int long long#define F(i, a, b) for (int i = (a); i <= (b); i++)
#define dF(i, a, b) for (int i = (a); i >= (b); i--)using namespace std;typedef long long ll;
typedef pair<int, int> pii;const int N = 500005, M = (N << 1), inf = 1e16, mod = 1e9 + 7;int n, m, k, x, y, z, ans, t;
int w[N], f[N];void solve()
{cin >> n >> k;for (int i = 1; i <= n; i ++ ){cin >> w[i];}sort(w + 1, w + n + 1);for (int i = 1; i <= n; i ++ ){f[i] = w[i] - w[i - 1];}ans = 0;x = 0;for (int i = 1; i <= n; i ++ ){if (i != 1) ans ++;x += f[i] * (n - i + 1);if (x >= k) break;}cout << ans + k << endl;
}signed main()
{ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;cin >> T;while (T -- ){solve();}
}

C. Concatenation of Arrays

原题

C. Concatenation of Arrays

 

思路

贪心的排序

按i + j 来排序即可

代码

#include <bits/stdc++.h>
#define int long long
#define F(i, a, b) for (int i = (a); i <= (b); i++)
#define dF(i, a, b) for (int i = (a); i >= (b); i--)using namespace std;typedef long long ll;
typedef pair<int, int> pii;const int N = 200005, M = (N << 1), mod = 1e9 + 7;int n, m, k, x, y, z, ans, t;
int w[N], f[N];pii a[N];bool cmp(pii a, pii b)
{int res1 = 0, res2 = 0;res1 = a.first + a.second;res2 = b.first + b.second;return res1 < res2;
}void solve()
{cin >> n;//	map<pii, int> mm;for (int i = 1; i <= n; i ++ ){cin >> a[i].first >> a[i].second;
//		mm[a[i]] = i;}sort(a + 1, a + n + 1, cmp);for (int i = 1; i <= n; i ++ ){cout << a[i].first << " " << a[i].second << " ";}cout << "\n";
}signed main()
{ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;cin >> T;while (T -- ){solve();}
}

D. Skipping

原题

D. Skipping

思路

这道题想着贪心去做, 浪费了大量时间, 就应该搜索去做

广度优先搜索, dp, 堆优化, 可以解决此题

代码

#include <bits/stdc++.h>
#define int long long#define F(i, a, b) for (int i = (a); i <= (b); i++)
#define dF(i, a, b) for (int i = (a); i >= (b); i--)using namespace std;typedef long long ll;
typedef pair<int, int> pii;const int N = 500005, M = (N << 1), inf = 1e16, mod = 1e9 + 7;int n, m, k, x, y, z, ans, t;
int w[N], f[N];void solve()
{cin >> n;vector<int> a(n);for (int i = 0; i < n; i ++ ) cin >> a[i];vector<int> b(n);for (int i = 0; i < n; i ++ ){cin >> b[i];b[i] --;}vector<int> dp(n, inf);priority_queue<pair<int, int>, vector<pair<int, int>>, greater<>> q;q.emplace(0, 0);while (!q.empty()){auto [d, i] = q.top();q.pop();if (dp[i] != inf){continue;}dp[i] = d;q.emplace(d + a[i], b[i]);if (i > 0){q.emplace(d, i - 1);}}int ans = 0, sum = 0;for (int i = 0; i < n; i ++ ){sum += a[i];ans = max(ans, sum - dp[i]);}cout << ans << endl;
}signed main()
{ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;cin >> T;while (T -- ){solve();}
}

http://www.lryc.cn/news/465355.html

相关文章:

  • 一次代码优化的过程
  • 多线程的学习(1)
  • PyCharm借助MobaXterm跳板机连接服务器
  • 计算机毕业论文基于Android 的签到系统设计与实现
  • 量化学习-02
  • SAP_MM模块-设置业务合作伙伴类型字段必输(多种方案)
  • STM32平台上实现串口接收不定长数据-实际项目中应用
  • AWD入门
  • T3矩阵看功率
  • VLMEvalKit多模态大模型评测工具源码解析
  • 将 Docker 安装到指定目录
  • 哪些企业需要部署SD-WAN?
  • 通信基站类型、频段与网络标准
  • Java IO教程之Java 文件一口气讲完!( *︾▽︾)
  • 如何在 Ubuntu 24 上安装 Vmware Tools
  • 内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)
  • 明星作家都在使用的电子书制作工具,现在向大家介绍
  • 简单认识Maven 3-认识pop.Xml配置文件中的代码
  • LangChain4j系列—OpenAI开发实例
  • Java 中简化操作集合的方法
  • ArcGIS Pro SDK (十七)宗地结构
  • D. Co-growing Sequence
  • docker配置加速器
  • JS事件和DOM
  • CAS 详解
  • AI大模型那么火,教你一键Modelarts玩转开源LlaMA(羊驼)大模型
  • Spring AI Alibaba: 支持国产大模型的Spring ai框架
  • ChatGPT4o、o1 谁才是最佳大模型?
  • [笔记] 关于CreateProcessWithLogonW函数创建进程
  • Ubuntu的Qt编译环境配置