(思维)(必要做题步骤)(皮卡丘与 Codeforces )D - 先来签个到

简介: (思维)(必要做题步骤)(皮卡丘与 Codeforces )D - 先来签个到

题目链接

D - 先来签个到(真心换真心)

皮卡丘与 Codeforces - Gym 103478A - Virtual Judge (csgrandeur.cn)

一些话

比赛时觉得很怪的一道题,为什么觉得很怪呢?因为我是傻逼。


wa5发纯纯的做题习惯与思维方式有问题


1.是比赛时在纠结分数小于0的能不能参加比赛,


2.是分数可不可以小于0还是到了0再扣分还是0


关于1,题目分数范围是-1e4~+1e4,全给负分账号是合法的,如果全给负分的话,怎么参加比赛?


关于2,还是题目分数范围的问题,初始分数都可小于0了,还在纠结分数可不可以小于0?还纠结扣到0再扣分的结果?


因为纠结这些东西,所以在关键的wa1后,又往上面纠结的情况做了尝试,然后出现4wa


至于最关键的1wa,是由于没有注意题目的边界数据引发的特殊情况,因为太久没遇到此类边界特殊情况的题,所以一直忽略了这个步骤,经过这次罚时应该得到教训,不要因为贪快而忽略解题步骤。


流程


题目要账号中的最大分数账号的分数最大,所以理所当然会想到能加分的比赛就用它来打,不能加分的比赛就用别的号。先找出最大分值,再将读到的正值加到最大分值中最后再输出即可,但这只是一般情况。


通过观察题目给的账号数目的数据范围可以发现,账号数是可以为1的,此时无论比赛加分还是扣分,你都只能拿同一个账号来打,所以流程就变为将读到的值加入账号分值中最后再输出


套路

必要做题步骤,无条件

考虑完一般情况后,观察题目边界值是否会导致题目出现特殊情况


ac代码

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
ll f[N];
int main(){
    ll n,m;
    cin >>n >>m;
    for(int i = 1;i <= n;i++){
        scanf("%lld",&f[i]);
    }
    sort(f+1,f+n+1);
    if(n > 1){
        while(m--){
        ll x;
        scanf("%lld",&x);
        if(x > 0) {
            f[n] += x;
        }
        }
    }   
    else if(n == 1){
        while(m--){
            ll x;
            scanf("%lld",&x);
            f[n] += x;
        }
    }
    cout << f[n] << endl;
    return 0;
}
目录
相关文章
|
10月前
学C的第八天(完成猜字谜游戏复习之前的内容;了解goto转向语句;补充知识点;练习,学习试除法和辗转相除法)-2
3.写一个代码,打印100-200之间的素数:(新思路:试除法) (判断i是否为素数:用 2到i-1 之间的数字去试除 i,如果能整除则i不是素数)
|
6月前
|
算法
代码随想录算法训练营第二十四天 | LeetCode 77.组合
代码随想录算法训练营第二十四天 | LeetCode 77.组合
65 0
|
9月前
|
算法
[算法刷题题解笔记] 洛谷 P1008 [NOIP1998 普及组] 三连击 [枚举|模拟]
[算法刷题题解笔记] 洛谷 P1008 [NOIP1998 普及组] 三连击 [枚举|模拟]
|
10月前
|
C语言
学C的第八天(完成猜字谜游戏复习之前的内容;了解goto转向语句;补充知识点;练习,学习试除法和辗转相除法)-1
复习之前学C的内容: 猜数字游戏: 1. 电脑会随机生成一个数 2. 猜数字: a> 猜大了,提醒猜大了,继续猜 b> 猜小了,提醒猜小了,继续猜 c> 猜对了,恭喜你,猜对了,结束游戏 3. 玩完一把不过瘾可以继续玩,不用退出程序
|
11月前
常见智力题汇总(建议收藏)(下)
常见智力题汇总(建议收藏)(下)
248 0
|
11月前
|
安全
常见智力题汇总(建议收藏)(上)
常见智力题汇总(建议收藏)(上)
194 0
|
11月前
离散数学笔记_第一章:逻辑和证明(1)(上)
离散数学笔记_第一章:逻辑和证明(1)(上)
75 0
|
11月前
离散数学笔记_第一章:逻辑和证明(1)(下)
离散数学笔记_第一章:逻辑和证明(1)(下)
78 0
|
12月前
|
算法 C++
【每日算法Day 99】你们可能不知道只用20万赢到578万是什么概念
【每日算法Day 99】你们可能不知道只用20万赢到578万是什么概念
|
移动开发 JavaScript 前端开发
第03/90步《番外篇》第1章认识计算机世界第6课
今天学习《番外篇》第1章认识计算机世界的第6课,认识网页开发基础概念。这是这一章的最后1课,学完它代表概念准备阶段完成。
46 0

热门文章

最新文章