LuoguP6850 NOI 题解
2024-09-05 07:17:37
Content
小 L 参加了 \(\texttt{NOI}\),现在他告诉你九个数 \(a,b,c,d,e,f,g,h,i\),分别表示——笔试作对的题数、D1T1、D1T2、D1T3、D2T1、D2T2、D2T3 分别得到的分数、是否是 A 类选手(\(1\) 表示是,\(0\) 表示不是)和进队线。已知 \(\texttt{NOI}\) 的计分方式是:
- 笔试基础分为 \(50\),每做对一题加 \(1\) 分。
- 总分为笔试分数加上上机题目每题的分数。
- 如果是 A 类选手还有 \(5\) 分的加成。
请问小 L 是否能够进队。
数据范围:\(0\leqslant a\leqslant 50,0\leqslant b,c,d,e,f,g\leqslant 100,0\leqslant h\leqslant 1,205\leqslant i\leqslant 705\)。
Solution
直接按照上面的规则计算分数,很明显可以推出来分数是 \(a+b+c+d+e+f+g+50+h\times5\)。
这里我来解释一下:
- 为什么要加 \(a,b,c,d,e,f,g\) 不需要讲吧。
- 笔试基础分有 \(50\) 分,需要加上去。
- 因为有 A 类名额的话,\(h=1,h\times5=5\);没有的话,\(h=0,h\times 5=0\)。所以 \(h\times 5\) 就相当于看有没有 A 类名额的加成,没有?那这个 \(h\times 5\) 也是白加。
然后再判断这个分数是否 \(\geqslant i\) 即可。
Code
#include <cstdio>
using namespace std;
int a[17], sum;
int main() {
for(int i = 1; i <= 9; ++i) scanf("%d", &a[i]);
sum = 50 + a[1] + a[2] + a[3] + a[4] + a[5] + a[6] + a[7] + a[8] * 5;
if(sum >= a[9]) printf("AKIOI");
else printf("AFO");
}
最新文章
- .Net 序列化(去除默认命名空间,添加编码)
- BI好比做菜
- Java抛出OutOfMemoryError:Java heap space堆内存溢出错误的分析方案
- 用 highlight.js 为文章中的代码添加语法高亮
- 广东地区电信官方DNS服务器
- ADO.NET笔记——带参数的查询防止SQL注入攻击
- C++11多线程教学(二)
- C#获取URL参数值(NameValueCollection)
- nrf51 SDK自带例程的解读
- iOS 开发设计常用软件及工具整理
- C++基础学习笔记----第十四课(new和malloc的区别、单例模式等深入)
- 利用Openssl进行RSA加密签名算法
- 服务器部署项目出现问题:Unsupported major.minor version 52.0
- 二叉树的序列化和反序列化(Java)
- SQLServer之修改存储过程
- MySQL存储过程实现动态执行SQL
- 异常来自 HRESULT:0x80070057 (E_INVALIDARG)(转)
- Linux内存管理 (10)缺页中断处理【转】
- 伪分布式安装core-site.xml和hdfs-site.xml配置文件
- win10+vs2015编译caffe的cpu debug版本、部署matcaffe