摘自本人洛谷博客,原文章地址:https://www.luogu.com.cn/blog/cjtb666anran/solution-p8109
【洛P8109题解】本题原题目摘录:
本场比赛共有 \(n\) 道题,Cirno 已经精确预测了每道题目的 AC 队伍数 \(a_1\) , \(a_2\) , \(a_3\) ... \(a_n\)。但由于经费限制,主办方 \(n\) 种颜色的气球分别只准备了个 \(b_1\) , \(b_2\) , \(b_3\) ... \(b_n\)。首先,定义两个 \(1e5+1\) 的数组以及一个 \(zh\) 变量计算最多分配气球数量的总和 。
根据题意分析可得:
- 当气球数大于 AC 队伍数时,最多可以分配的气球自然就是 AC 的队伍数量;
- 当 AC 队伍数大于气球数量时,最多可以分配的气球自然就是气球的数量 。
zh+=min(a[i],b[i]);
这里的 \(min\) 函数就是用来实现上述的两种分配可能的 。以下是 AC 代码:
#include <bits/stdc++.h>using namespace std;const int N=1e5+1;int a[N],b[N];inline int read() //快读函数实现{ //这里是模板,在平时优化代码时可以用到,建议收录 char ch=getchar(); long long f=1,res=0; while(ch<'0'||ch>'9') {if(ch=='-') f=-1;ch=getchar(); } while(ch>='0'&&ch<='9')res=(res<<1)+(res<<3)+ch-48,ch=getchar(); return res*f;}int main(){int n;long long zh=0;ios::sync_with_stdio(false);n=read(); //快读函数的调用for(int i=1;i<=n;i++){a[i]=read();}for(int i=1;i<=n;i++){b[i]=read();zh+=min(a[i],b[i]); //实现两种可能的分配防作弊标识~}cout<<zh<<endl;return 0;}
经验总结扩展阅读
- 洛阳只剩我一个人了是什么梗
- 奥拉星手游洛洛离逆元化后装备链接怎么搭配
- Div. 2 CF Round #829 题解
- 洛克王国珍贵的水晶球玩法是什么
- 洛克王国水晶犬的训练怎么个玩法
- 洛克王国水晶犬获取方法是什么
- 洛克王国寒冰进化位置在哪
- 洛克王国雪顶妖兽进化概率是多少
- 洛克王国念珠鹤捕捉位置在哪
- 洛克王国清水女皇什么性格最好