首页 > 其他分享 >P8779 [蓝桥杯 2022 省 A] 推导部分和

P8779 [蓝桥杯 2022 省 A] 推导部分和

时间:2024-04-10 21:49:08浏览次数:21  
标签:10 ch int LL while 蓝桥 P8779 2022 getchar

并查集板子题

#include <bits/stdc++.h>
#define R(x) x = read()
#define RLL(x) x = readLL()
using namespace std;

typedef long long LL;
const int N = 1e5 + 5;

inline int read()
{
    int x = 0, f = 1; char ch = getchar();
    while(ch < '0' || ch > '9')
    {
        if(ch == '-')
        {
            f = -1;
            ch = getchar();
        }
    }
    while(ch >= '0' && ch <= '9')
    {
        x = x * 10 + ch - '0';
        ch = getchar();
    }
    return x*f;
}

inline LL readLL()
{
    LL x = 0, f = 1; char ch = getchar();
    while(ch < '0' || ch > '9')
    {
        if(ch == '-')
        {
            f = -1;
            ch = getchar();
        }
    }
    while(ch >= '0' && ch <= '9')
    {
        x = x * 10 + ch - '0';
        ch = getchar();
    }
    return x*f;
}

int n, m, q;
int fa[N];
LL dis[N];

int find(int x)
{
    if(x == fa[x])
        return x;
    int oldFa = fa[x];
    fa[x] = find(fa[x]);
    dis[x] += dis[oldFa];
    return fa[x];
}

void init()
{
    for(int i = 1; i <= n; i++)
        fa[i] = i;
}

void printLL(LL x)
{
    if(x < 0)
    {
        putchar('-');
        x = -x;
    }
    if(x > 9)
        printLL(x/10);
    putchar(x%10+'0');
    return;
}

int main()
{
    R(n);R(m);R(q);
    init();
    for(int i = 1; i <= m; i++)
    {
        int l, r; LL s;
        R(l);R(r);RLL(s);
        l--;
        int fL = find(l), fR = find(r);
        if(fL == fR)
            continue;
        LL a = dis[l], b = dis[r];
        fa[fL] = fR;
        dis[fL] = s + b -a;
    }
    for(int i = 1; i <= q; i++)
    {
        int l, r;
        R(l);R(r);
        l--;
        int fL = find(l), fR = find(r);
        if(fL != fR)
            puts("UNKNOWN");
        else
            {printLL(dis[l] - dis[r]); puts("");}
    }
    return 0;
}

因为想复刻考场的感觉,于是没有用以前的板子,自己重写写了一遍快读,结果大意出锅了!

inline LL readLL()
{
    LL x = 0, f = 1; char ch = getchar();
    while(ch < '0' || ch > '9')
    {
        if(ch == '-')
        {
            f = -1;
        }
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9')
    {
        x = x * 10 + ch - '0';
        ch = getchar();
    }
    return x*f;
}

 

f=-1后面的getchar()一开始忘了加,面对TLE的10个点不知所措——我这不是O(N)算法吗

标签:10,ch,int,LL,while,蓝桥,P8779,2022,getchar
From: https://www.cnblogs.com/smartljy/p/18127532

相关文章

  • P9669 [ICPC2022 Jinan R] DFS Order 2
    P9669[ICPC2022JinanR]DFSOrder2树形dp+回退背包dfs的过程时走到\(u\),如果走进一个子树后要回到\(u\),那么这个子树一定全部遍历了一遍。所以方案数会跟子树遍历的方案数有关,可以预处理。设\(h_u\)表示\(u\)子树的遍历方案,假如\(u\)有\(m\)个儿子,那么有\(h_u=......
  • 在windows2022域控制器中删除已授权的DHCP服务器
    简介:最近这不实验WDS,MDT么,DHCP是配合选项,借着PVE的快照,安装,测试,回滚。结果这DHCP第二次配置的时候就无法授权,无法用,需要将旧的已授权的DHCP服务删除,2016是在站点与服务中,这个2022位置有点深。特此记录。位置:ADSI编辑器--连接配置--展开域名--展开Services--NetServices右侧窗......
  • 蓝桥杯单片机基于西风模板超声波底层
    超声波是外设需要重新自己编写c文件和h文件在c文件中需要编写两个函数一个是波的初始化一个是方波的读取voidWave_Init(){unsignedchari;for(i=0;i<8;i++){TX=1;发送信号Delay(12)us哦Tx=0在延时12us}这样波的初始化就好了}unsignedcharWave_Read(){unsig......
  • 蓝桥杯STM32G431RBT6-各个外设的配置过程
    LED,按键配置LED点亮,按键采集按键值前期准备:通过Cubemx生成一个源文件方便后续直接使用。  源文件准备完毕以后开始进行按键和LED的配置LED对比芯片引脚连接图可以知道8个LED分别连接在GPIOC的如下8个引脚中      Cubemx中......
  • 蓝桥杯-N皇后
    0.题目【题目描述】有一个N*N的矩阵棋盘和N个棋子,现在需要将N个棋子按要求放置在矩阵方格中。要求:1、任意两颗棋子不能在同一行2、任意两个棋子不能在同一列3、任意两个棋子不能在同一对角线上(下面的红线都是对角线)根据以上要求,问N个棋子放置到N*N矩阵中有多少种放置方案......
  • P8661 [蓝桥杯 2018 省 B] 日志统计 题解
    好久没写题解了,水一篇。这里主要想讲的是不同的处理方法,在阅读本篇题解前请确保读完题。详解一,排序这很好理解,题目要求将热帖从小到大输出,同时题目中还有相对的时间这一概念,因此将输入的\(id\)与\(ts\)按照优先\(id\)其次\(ts\)的排序方式从小到大,排序,这样输出时就没......
  • 洛谷 P8949 [YsOI2022] 淀粉树
    洛谷传送门考虑\(d=2\)的部分分。相当于只用\(2\)次操作把\(T\)变成一条链。不妨设最后变成的是一个\(1\simn\)的链,如果不是可以把点重编号。第一次操作考虑以\(n\)为根,每次取每个儿子的子树中的最大值为新的根并和原来的根连边,这样会将整棵树具有堆的性质,即父亲......
  • VS2022 解决方案打不开 .NET Framework 4.0 、 4.5 等老项目
    vs2022开发工具最低支持net4.8,以下的如net3.5、4.0、4.5项目,加载不上怎么处理。一、下载.NETFramework框架.NETFramework4.5.2.NETFramework4.5.1.NETFramework4.5.NETFramework4.0,把框架放到vs安装目录下的对应包中。microsoft.netframework.referenceassemblies.......
  • 蓝桥杯真题代码记录(最优清零方案
    目录1.题目:2.我的代码:小结:1.题目:给定一个长度为N的数列41,42,…,AN。现在小蓝想通过若干次操作将这个数列中每个数字清零。每次操作小蓝可以选择以下两种之一:1.选择一个大于0的整数,将它减去1;2.选择连续区个大于0的整数,将它们各减去1。小蓝最少经......
  • 第十一届蓝桥杯C/C++组C组决赛之思维风暴 快速解题
    十五届蓝桥杯即将开赛,十一届的蓝桥杯国赛的一些巧妙解法。美丽的2 题目描述本题为填空题,只需要算出结果后,在代码中使用输出语包将所填结果输出即可。小蓝特别喜欢2,今年是公元2020年,他特别高兴。他很好奇,在公元1年到公元2020年(包含)中,有多少个年份的数位中包含数字2?......