首页 > 其他分享 >Acwing 5475. 聚会 ( BFS )

Acwing 5475. 聚会 ( BFS )

时间:2024-03-30 16:23:00浏览次数:14  
标签:GCC int LL functions BFS 5475 pragma optimize Acwing

https://www.acwing.com/problem/content/5478/

输入样例1:
5 5 4 3
1 2 4 3 2
1 2
2 3
3 4
4 1
4 5
输出样例1:
2 2 2 2 3
输入样例2:
7 6 3 2
1 2 3 3 2 2 1
1 2
2 3
3 4
2 5
5 6
6 7
输出样例2:
1 1 1 2 2 1 1
#pragma GCC diagnostic error "-std=c++11"
#pragma GCC target("avx")
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
const LL MAXN=1e18,MINN=-MAXN,INF=0x3f3f3f3f;
const LL N=100200,M=2020;
LL n,m,k,s;
LL a[N];
vector<LL> g[N],v[N];
LL dist[N][110];//干草到某个地点的距离
queue<int> q;
void bfs()
{
    memset(dist,-1,sizeof dist);
    for(int i=1;i<=k;i++)//k种干草
    {
        for(auto vv:v[i])//存储的是地点
        {
            q.push(vv);
            dist[vv][i]=0;//标记每个节点到该存量的位置都是0
        }
        //添加进来一种干草就迅速更新其它地点的距离
        while(q.size())
        {
            auto t=q.front();//抛出一个地点
            q.pop();
            for(auto gg:g[t])//该地点的连接边
            {
                if(dist[gg][i]==-1)//未标记
                {
                    dist[gg][i]=dist[t][i]+1;
                    q.push(gg);
                }
            }
        }
    }
}
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        cin>>n>>m>>k>>s;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            v[a[i]].push_back(i);//装草粮的位置
        }
        for(int i=1;i<=m;i++)
        {
            int x,y;
            cin>>x>>y;
            g[x].push_back(y);
            g[y].push_back(x);
        }
        bfs();
        int ans=0;
        for(int i=1;i<=n;i++)
        {
            ans=0;
            sort(dist[i]+1,dist[i]+1+k);
            for(int j=1;j<=s;j++)//一共需要s种干草
            {
                ans+=dist[i][j];
            }
            cout<<ans<<" ";
        }
        cout<<endl;
    }
    return 0;
}

标签:GCC,int,LL,functions,BFS,5475,pragma,optimize,Acwing
From: https://www.cnblogs.com/Vivian-0918/p/18105652

相关文章

  • Acwing 1050. 鸣人的影分身
    https://www.acwing.com/problem/content/1052/输入样例:173输出样例:8#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<int,int>PII;constLLMAXN=1e18,MINN=-MAXN,INF=0x3f3f3f3f;constLLN=200200,M=2020;LLn,m;LL......
  • 搜索与图论(二)bfs---以题为例
    给定一个 n×m的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m)处,至少需要移动多......
  • AcWing 799. 最长连续不重复子序列
    原题链接:https://www.acwing.com/problem/content/801/题目分析用数组记录每个元素出现的次数,遍历以第i个元素为结尾的[i,j]区间的最长长度显然[i-1,j]必然达到最大,所以每次重复会发生在新增添的a[i]上,j右移直到到达i和暴力做法的区别就在于指针不会回退代码细节每次先把......
  • AcWing 800. 数组元素的目标和
    原题链接:https://www.acwing.com/problem/content/802/题目分析数组是升序的,a[i]从小变大,b[j]从大变小。a代表目前可能匹配的a中最小值,若与目前b之和仍然大于k则必然j--;i从0开始从前往后遍历;j从m-1开始从后向前遍历;和纯暴力的O(n2) 算法的区别就在于:j指针不会......
  • AcWing刷题-空调
    空调差分:N=int(input())p=list(map(int,input().split()))t=list(map(int,input().split()))d,s=[0]*100010,[0]*100010foriinrange(N):d[i]=p[i]-t[i]foriinrange(N):s[i]+=d[i]s[i+1]-=d[i]ans=0foriinrange(N+1):......
  • AcWing—最短Hamilton路径
    91.最短Hamilton路径-AcWing题库所需知识:二进制状态压缩,动态规划假设现在有六个点:j/i012345002451312065312460832355805441335035312430起点为0终点为5,假设现在走到终点前一点,不妨设该点为4,即现在要确定从0到4,最少要走多远,起点为1终点为4,现有六条路可以选择:first:0–......
  • Acwing 129. 火车进栈
    https://www.acwing.com/problem/content/description/131/输入样例:3输出样例:123132213231321#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<int,int>PII;constLLMAXN=1e18,MINN=-MAXN,INF=0x3f3f3f3f;constLLN=......
  • [正常题解]Acwing.5308 公路
    ​首先需要理解一个证明:​ 假设我们有三个点,前两个点价格为\(a_1,\a_2\),距离为\(v_1,\v_2\)那么就有式子:\(\frac{a_1\timesv_1}{d}+\frac{a_2\timesv_2}{d}\式①\),和式子\(\frac{a_1\timesv_1}{d}+\frac{a_1\timesv_2}{d}\式子②\)$\rightarrow\frac{1}{d}(......
  • Acwing 1111. 字母
    https://www.acwing.com/problem/content/1113/#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<int,int>PII;constLLMAXN=1e18,MINN=-MAXN,INF=0x3f3f3f3f;constLLN=200200,M=2020;LLn,m,maxn=1;charc[M][M];ma......
  • Acwing 1491. 圆桌座位
    https://www.acwing.com/problem/content/1493/输入样例1:4112输出样例1:2输入样例2:10512345678910输出样例2:112512#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<int,int>PII;constLLMAXN=1e18,MINN=-MAXN,I......