首页 > 其他分享 >ABC 373(D-F)

ABC 373(D-F)

时间:2024-09-29 19:46:39浏览次数:8  
标签:ABC int dfs vis maxn 373 dis first

https://atcoder.jp/contests/abc373/tasks

D:

搞不清楚dfs还是bfs真的是有点太抽象(一直在想bfs)。每个点只要访问过就不再访问第二次直接dfs可过。

#include<bits/stdc++.h>
using namespace std;

#define int long long
#define pb push_back
#define pii pair<int,int>
#define mkp make_pair
const int maxn=2e5+10;
vector<pii>E[maxn],G[maxn];
bool vis[maxn];
int dis[maxn];

void dfs(int x){
    if(vis[x])return;
    vis[x]=1;
    for(auto i:E[x]){
        if(!vis[i.first]){
            dis[i.first]=dis[x]+i.second;
            dfs(i.first);
        }
    }
    for(auto i:G[x]){
        if(!vis[i.first]){
            dis[i.first]=dis[x]-i.second;
            dfs(i.first);
        }
    }
    return;
}

signed main(){
    int n,m,k;
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        int u,v,w;cin>>u>>v>>w;
        E[u].pb(mkp(v,w));
        G[v].pb(mkp(u,w));
    }
    for(int i=1;i<=n;i++)if(!vis[i])dfs(i);
    for(int i=1;i<=n;i++)cout<<dis[i]<<endl;
}

E:

两个二分暴力可过。

F:

标签:ABC,int,dfs,vis,maxn,373,dis,first
From: https://www.cnblogs.com/lyrrr/p/18440630

相关文章

  • 牛客 9.29 对标 ABC 比赛题面
    ABCDEF(E'shard)输入52214331524G......
  • 「比赛记录」AtCoder abc373 (9.28)
    CTH想看F题解,于是先发出来F.KnapsackwithDiminishingValues属于是翻译官方题解了首先我们设\(dp_{w,j}\)表示从权重为\(w\)或更小的物品中选总重为\(j\)的物品可以得到的最大幸福度。考虑\(dp\)的转移。我们把所有物品按照权重\(w\)分为多组,(每一组中所有物品......
  • ABC373F 题解
    容易发现这是一个完全背包问题,我们设状态\(f_{i,j}\)表示前\(i\)个物品使用了\(j\)个容量的最大价值。容易写出转移方程式:\(f_{i,j}=\max\limits_{k=0}^{\lfloor\frac{j}{w}\rfloor}f_{i-1,j-kw}+kv-k^2\)直接dp是\(O(n^3)\)。考虑对这个dp进行优化。上面的方程容......
  • [ABC373F] Knapsack with Diminishing Values
    AtCoder比较遗憾,E题用了太多时间了,没做出来。当时看到有平方感觉难道是斜率优化之类的?这下猜对了。拜谢WA90。不过官解好像没用斜率优化?不会。设\(f_{i,j}\)表示前\(i\)个物品一共用了\(j\)的体积。直接暴力做是三次方的。当加入一个体积为\(w\),价值为\(v\)的物品......
  • AtCoder Beginner Contest 373
    这场咋这么简单A.September\(\text{diff11}\)给你\(12\)个字符串\(S_1\)到\(S_{12}\),问你有多少字符串满足\(|S_i|=i\)点击查看代码usingnamespacereader;strings[13];intmain(){ for(inti=1;i<=12;++i){ cin>>s[i]; } intans=0; for(inti=1;i<=12......
  • AT_abc_373F Solution
    AT_abc_373FSolution\(O(n^3)\)的dp很容易想到,枚举重量,枚举物品,枚举物品选择数量,我们考虑把它优化到\(O(n^2)\),显然重量与物品的枚举不能避免,所以我们考虑省去数量的枚举。记\(num_{i,j}\)表示总质量为i价值达到最大时,j选择了多少个,对于当前枚举的重量i,我们枚举......
  • AtCoder Beginner Contest 373
    A-September题意给\(12\)个字符串,问长度等于标号的字符串个数。思路模拟。代码点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintmxn=1e6+5;voidsolve(){ intans=0; for(inti=0;i<12;i++) { ......
  • 题解 ABC373G【No Cross Matching】/ POJ3565【Ants】
    题目描述年轻的自然主义者比尔在学校里研究蚂蚁。他的蚂蚁以生活在苹果树上的蚜虫为食。每个蚂蚁群需要自己的苹果树来养活自己。比尔有一张地图,上面标有\(n\)个蚂蚁群和\(n\)棵苹果树的坐标。他知道蚂蚁从它们的蚂蚁群到它们的取食地点,然后返回蚂蚁群,都是使用化学标记的路线......
  • 【Atcoder训练记录】AtCoder Beginner Contest 373
    https://atcoder.jp/contests/abc373/tasks赛后反思B题第一次读错题意,浪费了几分钟,需加强审题能力对于图论有些生疏,D题为简单图论,在76min的时候才AC,需加强训练图论A题给定12个字符串,求字符串长度\(=i\)的个数,直接模拟#include<bits/stdc++.h>#defineintlonglongu......
  • [ABC176F] Brave CHAIN
    [ABC176F]BraveCHAIN题意给你\(3n\)个数字。每次你可以选取前\(5\)个数字,拿走里面任意三个数字,剩下两个,如果拿走的\(3\)个数字相等,得分\(+1\)。问最大得分是多少。思路首先我们想尝试贪心。然而不好贪心,因为你不知道前面会给你留下哪两张牌,留下的方案数很多。题目......