Codeforces Round 980 (Div. 2)
1.Codeforces Round 955 (Div. 2)2.AtCoder Beginner Contest 3633.AtCoder Regular Contest 182(A B C)4.暑假集训CSP提高模拟15.暑假集训CSP提高模拟26.暑假集训CSP提高模拟77.暑假集训CSP提高模拟58.暑假集训 加赛19.暑假集训CSP提高模拟410.暑假集训CSP提高模拟1811.暑假集训CSP提高模拟1712.暑假集训CSP提高模拟 1613.暑假集训CSP提高模拟 ∫[0,6] (x^2)/6 dx14.暑假集训CSP提高模拟1115.暑假集训SCP提高模拟1016.暑假集训PVZ提高模拟917.暑假集训CSP提高模拟818.暑集假训SCP提高拟模2119.[CL-FOOL] CLOI 愚人赛的部分官方题解与小杂谈20.トヨタ自動車プログラミングコンテスト2024#7(ABC 362)21.寒假集训测试2 题目转存22.HEOI2024 题目转存23.高一小学期224.张江蔡25.高一高考集训总结赛26.高一下二调题目转存27.CSP提高组模拟128.Atcoder Beginner Contest 36729.[R18][中国語翻訳]HDKのABC370赛試(ABC370)30.[30] CSP 加赛 131.[33](CSP 集训)CSP-S 模拟 432.[34](CSP 集训)CSP-S 联训模拟 133.[35] (CSP 集训) CSP-S 模拟 534.[36](CSP 集训)CSP-S 模拟 635.AtCoder Beginner Contest 37336.[37](CSP 集训)CSP-S 模拟 737.[39] (多校联训) A层冲刺NOIP2024模拟赛0138.[40](CSP 集训)CSP 联训模拟 239.[42] (多校联训) A层冲刺NOIP2024模拟赛0340.[41] (CSP 集训) CSP-S 模拟 941.[44] (多校联训) A层冲刺NOIP2024模拟赛0442.[45] (多校联训) A层冲刺NOIP2024模拟赛0543.[46] (多校联训) A层冲刺NOIP2024模拟赛0644.パナソニックグループ プログラミングコンテスト2024(ABC 375)45.[47] (CSP 集训) CSP-S 模拟 1146.[49 & 50] (多校联训) A层冲刺NOIP2024模拟赛08 | CSP-S 模拟 1247.[51] (多校联训) A层冲刺NOIP2024模拟赛0948.Atcoder Beginner Contest 376
49.Codeforces Round 980 (Div. 2)
50.[54] (多校联训) A层冲刺NOIP2024模拟赛1251.[57] (多校联训) A层冲刺NOIP2024模拟赛1552.[61] (多校联训) A层冲刺NOIP2024模拟赛1853.[62] (NOIP 集训) NOIP2024加赛 254.[63] (多校联训) A层冲刺NOIP2024模拟赛1955.[68] (炼石计划) NOIP 模拟赛 #2056.[68] (NOIP集训) NOIP2024 加赛 557.[72] (多校联训) A层冲刺NOIP2024模拟赛2558.[73] (NOIP集训) NOIP2024 加赛 759.[75] (NOIP集训) NOIP2024 加赛 8糖丸了,什么沟史比赛
A.Profitable Interest Rate
初始有
个硬币,可以花费硬币开通盈利账户与非盈利账户
- 开通盈利账户需要至少花费
个金币 - 开通非盈利账户没有限制
- 每在非盈利账户花费
元,盈利账户的限制 就减少 元 求最大的在盈利账户上的花费
设盈利花费
,即
根据这两个条件选择最大的
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int t;cin>>t;while(t--){
int a,b;cin>>a>>b;
int tmp=2*a-b;
tmp=max(0,tmp);
tmp=min(a,tmp);
cout<<tmp<<'\n';
}
}
B.Buying Lemonade
有一些按钮和一些售货机,你知道每个售货机装的柠檬汁数量,但是你不知道哪个按钮对应哪个售货机
你可以进行如下操作
- 选一个按钮按下去,如果这个按钮对应的售货机里还有柠檬汁,你就会得到一瓶,否则你什么都不会得到
求出买
瓶柠檬汁所需的最小按按钮次数 注意你可以根据售货机的情况调整结果,比如如果你按一个按钮没有得到柠檬汁,那么你就不会再按这个按钮了
模一组数据,比如 1 1 5 3 3,首先你知道所有的售货机里的柠檬汁都不少于一个,因此你应该先把每个按钮都按一次,然后你会去尝试哪个是空的,假如你足够倒霉,两个 1 都试出来了,那么你就可以确定剩下的售货机里的剩余柠檬汁都不少于
模拟这个过程即可,排序后开桶存储
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[200001];
struct node{
int cnt,val;
};
vector<node>v;
signed main(){
ios::sync_with_stdio(false);
int t;cin>>t;while(t--){
int n,k;
cin>>n>>k;
for(int i=1;i<=n;++i){
cin>>a[i];
}
sort(a+1,a+n+1);
v.clear();
for(int i=1;i<=n;++i){
if(v.empty()) v.push_back({1,a[i]});
else if(v.back().val==a[i]) v.back().cnt++;
else v.push_back({1,a[i]});
}
int tot=0,cost=0,lst=0,rem=n;
for(node i:v){
int tmp=(i.val-lst)*rem;
if(tot+tmp>=k){
cost+=k-tot;
break;
}
tot+=tmp;
lst=i.val;
cost+=tmp+i.cnt;
rem-=i.cnt;
}
cout<<cost<<'\n';
}
}
C.Concatenation of Arrays
给你
个数对,你需要把数对首位拼接起来,最小化逆序对个数
看上去很对的假了的做法:
注意到两个数对交换对全局没有影响,因此写一个 cmp 比较两个数对拼接后的最优拼法,直接排序后输出
看上去很假的对了的做法:
将数对按最大值排序,相等则按最小值排序
不知道为啥这个对了,看上去确实是比较对,等题解出了补一下证明
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
pair<int,int> a[100001];
int c[5];
bool cmp(pair<int,int>a,pair<int,int>b){
if(max(a.first,a.second)==max(b.first,b.second))
return min(a.first,a.second)<min(b.first,b.second);
return max(a.first,a.second)<max(b.first,b.second);
}
signed main(){
ios::sync_with_stdio(false);
int t;cin>>t;while(t--){
cin>>n;
for(int i=1;i<=n;++i){
cin>>a[i].first>>a[i].second;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;++i){
cout<<a[i].first<<' '<<a[i].second<<' ';
}
cout<<'\n';
}
}
D.Skipping
P10381
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!