首页 > 其他分享 >CF(2E) Keshi in Search of AmShZ (图论,最短路,建边权值变形)

CF(2E) Keshi in Search of AmShZ (图论,最短路,建边权值变形)

时间:2023-03-28 23:55:28浏览次数:40  
标签:Search int CF cin 2E deg 权值 define dis

 

 思路: 

  • 关键是操作2的性质: 随机找->找一个路径最长的点
  • 操作1,阻止建边顾名思义, 
  • 发现和最短路很想, 从n到每一个点的权值嘛
  • 改变权值更新方式, 边的权值为: val[i]+前面那个点是第几大的, (这里每一个出度的点都要算) ->满足题目要求
  • 然后 这个第几大,利用出度来优化, 更新一个后就du- - ; 
#pragma GCC optimize("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define fir first
#define sec second
#define mkp make_pair
#define pb emplace_back
#define For(i,j,k) for(int i=(j),i##_=(k);i<=i##_;i++)
#define Rof(i,j,k) for(int i=(j),i##_=(k);i>=i##_;i--)
#define ckmx(a,b) a=max(a,b)
#define ckmn(a,b) a=min(a,b)
#define Fi(s) freopen(s,"r",stdin)
#define Fo(s) freopen(s,"w",stdout)
#define Fre(s) Fi(s".in"),Fo(s".out")
#define debug cerr<<"Line#"<<__LINE__<<endl
#define ll long long
const ll mod=1;
inline ll pw(ll x,ll y){ll r=1;while(y){if(y&1)r=r*x%mod;x=x*x%mod;y>>=1;}return r;}
#define int long long
#define N 200010
const int inf=1e9;
struct node{
    int id,dis;
    friend bool operator<(node x,node y){
        return x.dis>y.dis;
    }
};
int dis[N],deg[N],n,m;
priority_queue<node> q;
vector<int> e[N];
int32_t main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cin>>n>>m;
    For(i,1,n) dis[i]=inf;
    dis[n]=0;
    int x,y;
    For(i,1,m){
        cin>>x>>y;
        e[y].pb(x);
        deg[x]++;
    }
    q.push({n,dis[n]});
    while(!q.empty()){
        x=q.top().id;
        y=q.top().dis;
        q.pop();
        if(dis[x]!=y) continue;
        for(int i:e[x]){
            if(dis[x]+deg[i]<dis[i]){
                dis[i]=dis[x]+deg[i];
                q.push({i,dis[i]});
            }
            deg[i]--;
        }
    }
    cout<<dis[1]<<endl;
return 0;}
View Code

 

标签:Search,int,CF,cin,2E,deg,权值,define,dis
From: https://www.cnblogs.com/Lamboofhome/p/17267266.html

相关文章

  • CF(2D) (树上贪心)
      思路:关键性质是赋值是由跟到某个点,然后权值是不减序列从叶子节点进行回推,由于是不减序列,而且为了然后父亲节点能够白嫖,于是让儿子节点的权值尽量大就行了,......
  • CF429D Tricky Function 题解 分治/平面最近点对
    题目链接:http://codeforces.com/problemset/problem/429/D题目大意:给定一个长度为\(n\)的数列\(a_1,a_2,\ldots,a_n\)。用\(s\)表示\(a\)的前缀和数组,即\(s_......
  • OpenKruise 成为 CNCF 孵化项目:为大规模采用 Kubernetes 打开大门
    作者:OpenKruise社区近期,CNCFTechnicalOversightCommittee(TOC)根据OpenKruise的发展以及社区的接受程度,通过投票决定将OpenKruise升级为CNCF孵化项目。**OpenKruise......
  • elasticsearch-head 安装
    概念elasticsearch-head是elasticsearch的可视化工具,能够比较简便的查看、删除索引,查看索引数据,执行查询命令。它需要安装node和grunt才能使用安装ubuntu安装:下......
  • Gourmet choice CF1131D
    给你对于任意一个ai,bj的大小关系的判断,让你构造a,b序列满足条件。无解输出No 拓扑排序+并查集 #include<iostream>#include<cstring>#include<queue>usi......
  • macOS Ventura 13.3 (22E252) 正式版发布,ISO、IPSW、PKG 下载
    macOSVentura13正式版现已发布!请访问原文链接:https://sysin.org/blog/macOS-Ventura/,查看最新版。原创作品,转载请保留出处。2023年3月27日(北京时间28日凌晨),m......
  • CF743B Chloe and the sequence 题解 分治
    题目链接:http://codeforces.com/problemset/problem/743/B题目大意:对于一个n-序列,如果n==0,那么它是一个空的序列(也就是说空序列中没有元素)。然后会进行i次操作,每次......
  • CF768B Code For 1 题解 分治
    题目链接:http://codeforces.com/problemset/problem/768/B解题思路:分治。本题和的解题思路相似。tips:如果如果\(n\)对应的区间完全被\([l,r]\)覆盖了,则区间\([......
  • Mahmoud and a Dictionary CF766D
    给一些单词,它们可能是同义或者反义,给出一些关系定义,从前面的定义开始建立关系,如果有的关系定义和之前的冲突输出NO,否则输出YES。然后查询q次单词x和单词y的关系。 扩......
  • CF:D. Shocking Arrangement
    掉大分补提D点击查看代码#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<int,int>PLL;#defineIOScin.tie(nullptr)->sync_wit......