自学图论的码队弟弟

试图写非递归求解,然后TLE了一下午==,全程找不到bug,换成递归,一发AC

判断环写得很丑==

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define P pair<int,int> vector<P> G[];
bool vis[];
int n;
int fa[];
int x[];
bool s[];
bool fx[];
int in=-;
int T=;
int a;
bool dfs(int x)
{
T++;
// if(vis[x])return false;
//if(++T>100000)puts(0);
for(int i=; i<G[x].size(); i++)
{
a=G[x][i].first;
//if(G[a].size()==1)continue;
if((a!=fa[x])&&(!vis[a]))
{
fa[a]=x;
vis[a]=;
if(dfs(a))
{
return true;
}
}
else if((a!=fa[x])&&vis[a])
{
fa[a]=x;
in=a;
return true;
}
}
return false;
}
void solve(int k)
{
fx[k]=;
int n=G[k].size();
for(int i=;i<n;i++){
int a=G[k][i].first;
int b=G[k][i].second;
x[a]=b-x[k]; if(!fx[a])
solve(a);
}
}
int main()
{
scanf("%d",&n);
int a,b,c;
int R=;
for(int i=; i<n; i++)
{
scanf("%d%d%d",&a,&b,&c);
G[a].push_back(P(b,c));
G[b].push_back(P(a,c));
if(G[a].size()>G[R].size())R=a;
if(G[b].size()>G[R].size())R=b;
}
vis[R]=;
dfs(R); int t=in;
int g=,dd=;
int ans=; while((!dd)||t!=in)
{
dd=; for(int i=; i<G[t].size(); i++)
{
if(G[t][i].first==fa[t])
{
ans+=g*G[t][i].second;
g*=-;
t=fa[t];
break;
} }
}
x[in]=ans/;
fx[in]=;
solve(in); /*while(true)
{ /*if(T+10>=100000){
puts(0);
}
bool wa=0;
/*for(int i=1; i<=n; i++)
{
if(!fx[i])
{
wa=1;
break;
}
}
if(!wa)break;
if(t==-1)
{
for(int i=1; i<=n; i++)
{
if(fx[i]&&!(s[i]))
{
t=i;
break;
}
}
if(t==-1)break;
}
k=t;
t=-1;
for(int i=0; i<G[k].size(); i++)
{
int l=G[k][i].first;
int r=G[k][i].second;
x[l]=r-x[k];
fx[l]=1;
if(!s[l]&&t==-1)t=l;
}
s[k]=1; }
*/
for(int i=; i<=n; i++)
{
cout<<x[i]<<'\n';
} }

银联高校极客挑战赛 初赛 第一场 B的更多相关文章

  1. 银联高校极客挑战赛第一场 A.码队女朋友的王者之路[水题]

    目录 题目地址 题干 代码和解释 题目地址 计蒜客回顾比赛 码队女朋友的王者之路 题干 代码和解释 本题难度不大,但是一开始没有读懂题,以为净胜场次是确定的,没有"最高净胜场次"的 ...

  2. MegCup 2017 极客挑战赛 初赛试题

    看着像八卦,数数不是八卦,是29卦 每卦又有29个小弧 所以是29×29个bit 这29×29个bit怎么理解呢?并且从哪一卦开始到哪一卦结束?是先环向层层向里走还是先径向逐卦走? 我想不出来. 我猜 ...

  3. # 「银联初赛第一场」自学图论的码队弟弟(dfs找环+巧解n个二元一次方程)

    「银联初赛第一场」自学图论的码队弟弟(dfs找环+巧解n个二元一次方程) 题链 题意:n条边n个节点的连通图,边权为两个节点的权值之和,没有「自环」或「重边」,给出的图中有且只有一个包括奇数个结点的环 ...

  4. 2019牛客多校第一场 I Points Division(动态规划+线段树)

    2019牛客多校第一场 I Points Division(动态规划+线段树) 传送门:https://ac.nowcoder.com/acm/contest/881/I 题意: 给你n个点,每个点有 ...

  5. 牛客多校第一场 B Inergratiion

    牛客多校第一场 B Inergratiion 传送门:https://ac.nowcoder.com/acm/contest/881/B 题意: 给你一个 [求值为多少 题解: 根据线代的知识 我们可 ...

  6. 2019年牛客多校第一场B题Integration 数学

    2019年牛客多校第一场B题 Integration 题意 给出一个公式,求值 思路 明显的化简公式题,公式是分母连乘形式,这个时候要想到拆分,那如何拆分母呢,自然是裂项,此时有很多项裂项,我们不妨从 ...

  7. 2019年全国高校计算机能力挑战赛初赛C语言解答

    http://www.ncccu.org.cn 2019年全国高校计算机能力挑战赛分设大数据算法赛,人工智能算法赛,Office高级应用赛,程序设计赛4大赛项 C语言初赛解答 1:编程1 16.现有一 ...

  8. 计蒜之道 初赛第一场B 阿里天池的新任务(简单)

    阿里“天池”竞赛平台近日推出了一个新的挑战任务:对于给定的一串 DNA 碱基序列 tt,判断它在另一个根据规则生成的 DNA 碱基序列 ss 中出现了多少次. 首先,定义一个序列 ww: \displ ...

  9. 牛客多校第一场 A Equivalent Prefixes 单调栈(笛卡尔树)

    Equivalent Prefixes 单调栈(笛卡尔树) 题意: 给出两个数组u,v,每个数组都有n个不同的元素,RMQ(u,l,r)表示u数组中[l,r]区间里面的最小值标号是多少,求一个最大的m ...

随机推荐

  1. [USACO 2008 Jan. Silver]架设电话线 —— 最短路+二分

    一道图论的最短路题.一开始连最短路都没想到,可能是做的题太少了吧,完全没有思路. 题目大意: FJ的农场周围分布着N根电话线杆,任意两根电话线杆间都没有电话线相连.一共P对电话线杆间可以拉电话线,第i ...

  2. 工具 - MSF

    #ms17- use auxiliary/scanner/smb/smb_ms17_010 - exploit use exploit/windows/smb/ms17_010_eternalblue ...

  3. oracle--goldengate安装实例

    goldengate命令汉语解析地址:https://blog.csdn.net/eadela/article/details/102668879 实例地址:https://www.jianshu.c ...

  4. java_第一年_JavaWeb(12)

    SimpleTag标签 定义了五个方法:setJspContext.setJspBody.setParent和getParent以及最重要的doTag方法(完成了所有的业务逻辑): setJspCon ...

  5. django的多语言国际化

    介绍 Django 支持国际化,多语言.Django的国际化是默认开启的,如果您不需要国际化支持,那么您可以在您的设置文件中设置 USE_I18N = False,那么Django会进行一些优化,不加 ...

  6. osi七层协议 Open System Interconnection

    一, 操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在"裸机"上的最基本的系统软件,任何其他软件都必 ...

  7. 用命令行远程导出MySQL数据

    mysqldump -h10.10.9.197 -uroot -proot --default-character-set=utf8 0610_eshop >C:/Users/Adm inist ...

  8. Gradle打包问题Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0

    前言 使用gradle打包react native的时候,出现了如下报错,下面和大家说一下解决的具体办法 Deprecated Gradle features were used in this bu ...

  9. vue项目中使用高德地图(根据坐标定位点)

    前言 项目中需要根据坐标定位,将自己的实现过程写下来,废话不多说,上代码 正文 <script> var map,marker; export default { data(){ retu ...

  10. JavaScript深入之从原型到原型链(转载)

    构造函数创建对象 我们先使用构造函数创建一个对象: function Person() { } var person = new Person(); person.name = 'Kevin'; co ...