首页 > 其他分享 >对于vector容器中,存储的是int类型,但若不开long long 就ER

对于vector容器中,存储的是int类型,但若不开long long 就ER

时间:2023-01-29 12:11:05浏览次数:65  
标签:int dfs st vector long 100010

牛客暑期训练1 F dfs鸡玩炸弹人

#include<iostream>
#include<vector>

using namespace std;

typedef long long ll;

//计算有炸弹的连通块的数量。在一个连通块内不论炸弹怎样分布,都可以达到目的。
//若数量为0,直接sizi*sizi*sizj*sizj;若为1,输出有炸弹连通块内的siz*siz

vector<int> g[100010];
bool st[100010];
int have_bomb,c[100010];
int n, m,sz;

void dfs(int u)
{
    if(c[u])
        have_bomb = 1;
    st[u] = true;
    sz++;
    for(auto a:g[u])
    if(!st[a])     dfs(a);
}

int main()
{
    cin>>n>>m;
    int u, v;
    for (int i = 0; i < m;i++)
    {
        scanf("%d%d", &u, &v);
        g[u].push_back(v);
        g[v].push_back(u);
    }

    for (int i = 1; i <= n;i++)   scanf("%d", &c[i]);

    int bomb = 0,last_bomb=0;
    vector<ll> p_size;    //---------------------------------------------------疑问在这里!!!----------------------------------------------------------------------
    for (int i = 1; i <= n;i++)
    {
        if(!st[i])
        {
            sz=have_bomb = 0;
            dfs(i);
            bomb += have_bomb;
            p_size.push_back(sz);
            if(have_bomb) last_bomb = p_size.size()-1;
        }
    }

    if(bomb==0)
    {
        ll ans=0;
        for(auto a:p_size) ans+=(a*a);
        printf("%lld", ans);
    }
    else if(bomb==1)   printf("%lld", (ll)p_size[last_bomb] * p_size[last_bomb]);
    else   printf("%d", 0);
    return 0;
}

标签:int,dfs,st,vector,long,100010
From: https://www.cnblogs.com/ccag/p/17072335.html

相关文章

  • vite设置eslint
    vite设置eslint设置vue的基础规则,有一系列的集合设置vue关于ts的一些高级规则vite的plugin插件安装://viteeslint的插件"@vitejs/plugin-vue":"^4.0.......
  • 7.17 SQL Server INTERSECT(交集)
    SQLServerINTERSECT(交集)目录SQLServerINTERSECT(交集)简介示例简介SQLServerINTERSECT组合了两个或多个查询的结果,并返回多个查询相同的行。语法:query_1INTERSEC......
  • Python 内置界面开发框架 Tkinter入门篇 乙
    *以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/2GFLTstDC7w6u3fTJxflNA本文大概 1685 个字,阅读需花 6 分钟......
  • 获取Wifi的InterfaceGuid
    internalclassProgram{staticvoidMain(string[]args){//ShowNetworkInterfaces();wifi.EnumerateAvailableNetwo......
  • C++ const pointer
    在C++中const限定的指针类型常常令人困惑,现整理如下,以整型为例,主要区分如下三个例子constint*p;int*constp;constint*constp;其实就是2种情况,const在int前......
  • java面试技巧:Integer和int的那些事⼉
    最近在招聘⾯试的过程中,考察⼀些候选⼈的基础掌握能⼒中发现,还是有⼤多数⼲了有1~3年的开发者在基础这块⼉掌握的不够牢靠,没有去思考过为什么这样做,以及这样做的原因是什么?......
  • Delete `␍`eslint(prettier/prettier) 错误
    拉完代码之后所有行尾报错Delete␍,查询了一下,是因为mac和windows换行符差异问题,最简单的方法是在根目录下添加.editorconfig文件,大概是个统一缩进符、换行符之类的代码风......
  • 如何关闭eslint验证
    在项目根目录下新建一个js文件,文件名字必须是vue.config.js  然后代码如下: module.exports={//关闭eslintlintOnSave:false}不关闭的话有可能造成项目......
  • DATETIME和INTERVAL的ANSI SQL标准格式
    TheANSISQLstandardsspecifyqualifiersandformatsforcharacterrepresentationsofDATETIMEandINTERVALvalues.ThestandardqualifierforaDATETIMEvalue......
  • postgresql/lightdb中对应ctas的select into
    在postgresql/lightdb中,可以使用​​SELECTINTO(它不是ISOSQL的一部分,但是因为历史原因存在)​​​创建一个新表并且用一个查询计算得到的数据填充它。这些数据不会像......