头像

陆修远




离线:9分钟前


最近来访(1880)
用户头像
fishbone
用户头像
flexible
用户头像
ignorant
用户头像
Hard_IINE
用户头像
maolibo
用户头像
Ymg2020
用户头像
AcWing2AK
用户头像
北海没有WA
用户头像
LJN11
用户头像
一无所知的产物
用户头像
今天AC了吗
用户头像
pccc
用户头像
拉电线的EE
用户头像
abc_dot
用户头像
我真的菜的要洗了
用户头像
letsgo
用户头像
optimjie
用户头像
humenglong
用户头像
Acwer
用户头像
如果在冬夜一个旅人

新鲜事 原文

陆修远
19小时前
关于“粟子$ing$”同志是男的却有人“喜欢”他这件事……



陆修远
23小时前

$$\huge{\color{blue}{秋招}\color{red}{每日一题}\color{orange}{(Java 或 C++)\color{tan}{上线啦!!!}}}$$
$$\large\color{red}{暑假每日一题2022题解和打卡代码合集完结啦!!!爷青结!!!}$$


暑假每日一题$2022$叙旧

总共有$52$道题,每一道题目,闫总都非常认真地讲完了,有无数同学在第一时间就完成了这些题目。又一个过去了……


旧的不去新的不来

秋招每日一题是一种全新的体系,应该是以$LeetCode$题和面试题、笔试题为主。


新的活动新的分享

仍然是熟悉的标题,仍然是熟悉的风格……


内容更改通知

由于打卡代码过于基础,并且容易贴错、写错,所以我郑重决定将这部分内容取消,作为“补偿”,我会将题解写得详细一些哦~


题解

(暂未更新)


声明

本分享为作者原创,请勿抄袭!!!




陆修远
23小时前

$$\huge\color{blue}{用户分组\space|\space 多层数据结构叠加简单模拟题}$$
$$\color{red}{英语名称:group\space the\space people\space given\space the\space group\space size\space they\space belong\space to}$$


题目大意

给定一个数组$g$,则元素$i$必须在元素大小为$g_i$的组内。求一种符合题意的方案。


发现

任何元素都有一个归属的组。所以所有组都是“满”的。

证明猜想

如果有一个组缺了一个元素,那么它的元素数量也会相对应的减少一,那么其他在这个组内的元素就不符合题意了。所以不会有组却元素。所有组都是“满”的。(得证)


思路

先用映射储存题目给我们的初步信息,然后根据元素大小分配元素即可。


可能用到的数据结构

映射是肯定需要的,即map
如果我们需要记录一些元素编号的话,需要vector


此类题目的特点

会使用一些简单的数据结构进行“套娃”操作,考察做题者的思维能力和编码能力。此类题目需要熟悉地掌握数据结构、了解它们的特点。


正确代码(C++)展示

class Solution {
public:
    vector<vector<int>> groupThePeople(vector<int>& group) {
        map<int,vector<int>> id;//储存每一个人组对应的索引
        vector<vector<int>> res;//储存答案

        for (int i=0;i<group.size();++i)
            id[group[i]].push_back(i);

        for (auto &[x,t] : id)
        {
            int i=0;
            while(i!=t.size())
            {//枚举当前组中元素 
                vector<int> tmp;//临时记录新的元素
                for(int k=0;k<x;++k,++i) //存x个人
                    tmp.push_back(t[i]);//每次加入一个已经在组内的元素 
                res.push_back(tmp);//每一次将这组元素放入答案中 
            }
        } 

        return res;//返回答案 
    }
};


活动打卡代码 LeetCode 1282. 用户分组

class Solution {
public:
    vector<vector<int>> groupThePeople(vector<int>& group) {
        map<int,vector<int>> id;//储存每一个人组对应的索引
        vector<vector<int>> res;//储存答案

        for (int i=0;i<group.size();++i)
            id[group[i]].push_back(i);

        for (auto &[x,t] : id)
        {
            int i=0;
            while(i!=t.size())
            {//枚举当前组中元素 
                vector<int> tmp;//临时记录新的元素
                for(int k=0;k<x;++k,++i) //存x个人
                    tmp.push_back(t[i]);//每次加入一个已经在组内的元素 
                res.push_back(tmp);//每一次将这组元素放入答案中 
            }
        } 

        return res;//返回答案 
    }
};


新鲜事 原文

爷青结!!!爷青结!!!爷青结!!! 暑假每日一题痛苦终于结束了!!!!! 在评论区统计一下谁现在把“题解(和打卡代码)合集”写完的?写完了扣$1$,没写完扣$2$,没写扣$3$,吃瓜群众扣“吃瓜”哦~



#include<bits/stdc++.h>
using namespace std;
int main ()
{
    int a,b;
    cin>>a>>b;
    cout<<a+b;
    return 0;
}


新鲜事 原文

AcWing《秋招每日一题(Java/C++)》拼团优惠!https://www.acwing.com/activity/content/introduction/2171/group_buy/83416/ 手欠买了呜呜呜



$$\huge\color{blue}{自行车之旅\space|\space直接模拟}$$

题目大意

给定一个序列,请判断其中一个数字比它的两个邻居都小的数量(不包括两端节点)。

思路

直接扫描模拟。

代码

#include<bits/stdc++.h>

using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;//较高精度的浮点数
typedef pair<int,int> PII;
typedef pair<string,int> PSI;

const int N=109;

int n,h[N];

void input ()
{
    cin>>n;
    for (int i=1;i<=n;++i)
        cin>>h[i];
}

void solve (int cs)
{
    int res=0;
    for (int i=2;i<=n-1;++i)
        if (h[i]>h[i-1]&&h[i]>h[i+1])
            ++res;
    cout<<"Case #"<<cs<<": "<<res<<"\n";
}

int main ()
{
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);

    int T;
    cin>>T;
    for (int i=1;i<=T;++i)
    {
        input();
        solve(i);
    }

    return 0;
}


活动打卡代码 AcWing 2070. 自行车之旅

#include<bits/stdc++.h>

using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;//较高精度的浮点数
typedef pair<int,int> PII;
typedef pair<string,int> PSI;

const int N=109;

int n,h[N];

void input ()
{
    cin>>n;
    for (int i=1;i<=n;++i)
        cin>>h[i];
}

void solve (int cs)
{
    int res=0;
    for (int i=2;i<=n-1;++i)
        if (h[i]>h[i-1]&&h[i]>h[i+1])
            ++res;
    cout<<"Case #"<<cs<<": "<<res<<"\n";
}

int main ()
{
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);

    int T;
    cin>>T;
    for (int i=1;i<=T;++i)
    {
        input();
        solve(i);
    }

    return 0;
}



$$\huge\color{blue}{Presentation\space Error是什么鬼?}$$

原题链接
代码如下:

#include<bits/stdc++.h>

using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;//较高精度的浮点数
typedef pair<int,int> PII;
typedef pair<string,int> PSI;

const int N=109;

int n,h[N];

void input ()
{
    cin>>n;
    for (int i=1;i<=n;++i)
        cin>>h[i];
}

void solve (int cs)
{
    int res=0;
    for (int i=2;i<=n-1;++i)
        if (h[i]>h[i-1]&&h[i]>h[i+1])
            ++res;
    cout<<"Case#"<<cs<<": "<<res<<"\n";
}

int main ()
{
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);

    int T;
    cin>>T;
    for (int i=1;i<=T;++i)
    {
        input();
        solve(i);
    }

    return 0;
}

错误为Presentation Error