首页 > 其他分享 >重新振作第8天----日常小记

重新振作第8天----日常小记

时间:2024-11-28 19:44:56浏览次数:5  
标签:单词 const 边界 int cin ---- 振作 op 小记

今天依旧是堕落无比,早起不了一点。因为白天没课,直接睡到三点,除了中午起来背了半小时单词。。。。。

六级单词

学了too much time 的单词,感觉现在有印象,但是估计过几天就忘记了。估计得熟练

数据库实验报告

预计9点到12点写完差不多三分实验报告?

退役者的每日一题3

题目链接:https://atcoder.jp/contests/abc380/tasks/abc380_e

思路分析:
首先,肯定想到是使用并查集进行维护,但是当时看错题了,以为是所有和x相同颜色的格子,结果是祥林的。相邻的其实我并不太会,在参考了别人的题解之后,发现只要额外多开辟两个数组即可。这里总共开辟了五个数组,cnt,fa,l,r,col分别维护区间块的点数、父亲、左边界、右边界以及颜色。对于块的合并,我们需要当这个块的颜色改变后,如果和左右相邻块的颜色是一样的,那我们需要将左块的左边界变成合并后的左边界,右块的右边界要变成合并后的右边界即可。

代码实现:

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N=5e5+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
int fa[N];
int cnt[N],l[N],r[N],col[N];
void init(int n){
    for(int i=1;i<=n;i++){
        fa[i]=l[i]=r[i]=col[i]=i;
        cnt[i]=1;
    }
}
int findfa(int x){
    if(fa[x]!=x)
    return fa[x]=findfa(fa[x]);
    return x;
}
void merge(int x,int y){
    int fx=findfa(x);
    // 中间的
    cnt[col[fx]]-=r[fx]-l[fx]+1;
    col[fx]=y;
    cnt[y]+=r[fx]-l[fx]+1;

    // 问右边
    if(r[fx]!=n){
        int fr=findfa(r[fx]+1);
        if(col[fr]==y){
            r[fx]=r[fr];
            fa[fr]=fx;
        }
    }

    // 问左边
    if(l[fx]!=1){
        int fl=findfa(l[fx]-1);
        if(col[fl]==y){
            l[fx]=l[fl];
            fa[fl]=fx;
        }
    }
    
}
void solve(){
    int n,q;
    cin>>n>>q;
    init(n);
    int op,x,y;
    while(q--){
        cin>>op;
        if(op==1){
            cin>>x>>y;
            merge(x,y);
        }
        else {
            cin>>x;
            cout<<cnt[x]<<endl;
        }
    }
}
signed main(){
    int t;
    t=1;
    //cin>>t;
    while (t--){
        solve();
    }
    return 0;
}

标签:单词,const,边界,int,cin,----,振作,op,小记
From: https://www.cnblogs.com/cdag/p/18575016

相关文章

  • 计算机网络复习数据链路层(第三章)
    数据链路层基本情况主要功能:负责相邻节点间数据帧的传输使用通道:(1)点对点通道即一对一通信(2)广播信道即一对多,也称点对多点连路与数据链路的关系:三个基本问题数据链路层协议有许多种,但有三个基本问题则是共同的。分别为:封装成帧、透明传输和差错检测。分装成帧封装成帧就......
  • 【论文精读】Lora
    【论文精读】Lora:Low-rankadaptationoflargelanguagemodels论文地址:Lora:Low-rankadaptationoflargelanguagemodels年份:2021引用量:8000+关键词:LLM的高效微调目录【论文精读】Lora:Low-rankadaptationoflargelanguagemodels1.背景2.Lora方法3.实验3.1......
  • MAT188 principal components
    MAT188:Homework5BackgroundBelowisanillustrationofthesouthwesternportionofthegreatprovinceofBritishColumbia.Citiesarelabelledinblue,andredcirclesindicatethelocationofpublicweathertations.Includedwiththisassignmentiste......
  • 道法图表类题型解题技巧
    图表类:【题型特点】:一般由“标题、图表(常见有表格式、坐标式、饼状式、柱状式、曲线式)、注释”三部分组成。【特别提醒】:先审设问,后审材料。审图表要注意:(1)看标题。标题直接反映了图表的主题或中心。(2)要“三比”,从对比中发现问题、变化、差距:A.横向比。就是把图表中的同一横栏......
  • 如何快速下载Suno AI平台上的音乐歌曲?保存为MP3格式
    如果你在最近火出圈的SunoAI平台上听到比较喜欢的歌曲,并想要下载到自己的手机电脑上,遗憾的是,SunoAI平台本身并不直接提供下载歌曲MP3的方法。SunoAI怎么下载其他人的音乐到本地?SunoAI获取歌曲直链,充实你的mp3?SunoAI上的歌很好听,我想下载到手机上,怎么下载啊?使用过SunoA......
  • 多校A层冲刺NOIP2024模拟赛27终结篇
    多校A层冲刺NOIP2024模拟赛27终结篇\(T1\)A.【模板】分治FFT\(0pts\)将式子展开后是一个形如\(f_{n}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{i-1}a_{i,j}\)的形式。考虑\(f_{n}\)如何转移。当我们选出一对\((i,j)\)进行合并进入\(n'=n-1\)的子问题,故\(a_{i}......
  • el-upload实现上传图片/pdf,回显图片/pdf功能。
    el-upload实现上传图片/pdf,回显图片/pdf功能。功能背景:上传图片和查看图片要在一个页面。如何回显当前行数据已上传的文件?答:把请求获取的数据赋值给绑定的fileList<el-upload:action="url"multiplelist-type="picture-card":on-preview="handlePictureCar......
  • CTF学习(21)MISC(九连环)
    1.查看属性(无果)--->使用010editor打开后发现存在zip文件2.使用foremost分离文件后获得名为00000038.zip的zip文件--->爆破四位无果后查看是否存在伪加密(第一次知道伪加密还能对zip文件内的zip文件进行修改...)3.解压后获得good-已合并.jpg文件和qwe.zip文件--->在kali中使......
  • SKILL脚本的加密与解密及使用
    SKILL脚本一般是用.il和.ile结尾的文件,一般设置为.ile结尾的文件是加密的,调用的时候需要密码。SKILL脚本的加密:用encrypt函数加密脚本,格式如下:encrypt("/apps/SC/skill-script/migrateDesign/MigrateDesign.il" "/apps/SC/skill-script/migrateDesign/MigrateDesign.ile......
  • 利用树莓派Pico制作迷你小台灯:C++与硬件设计结合的分享
    小台灯是一个经典的电子设计项目,结合了LED和按键的基本应用,适合初学者学习控制逻辑和硬件交互。通过树莓派Pico开发板,本项目实现了用按键控制LED灯的开关功能。以下将详细解析项目内容,并结合C++代码讲解背后的核心技术。一、项目概述1.项目目标学习按键与LED的基本原理......