自学图论的码队弟弟

试图写非递归求解,然后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. clientdataset 读取excel 如果excel 文件不存在的时候 相应的gird 会不显示数据, 鼠标掠过 gird 格子 才会显示数据。 这是一个bug 哈哈

    clientdataset 读取excel   如果excel 文件不存在的时候   相应的gird 会不显示数据, 鼠标掠过 gird 格子 才会显示数据.   这是一个bug 哈哈

  2. 前端框架React入门课程【视频】

    视频教程列表: http://v1.mukewang.com/1a8228ac-5f7f-48de-b1c5-7d1b8bce9c77/L.mp4 1-1 React入门课程介绍 http://v1. ...

  3. 【ABAP系列】SAP ALV 导出报表数据 始终使用选定的格式”,一旦勾上,就再也不会弹出选择框了。

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ALV 导出报表数据 始 ...

  4. Spring MVC配置文件

    都说开发Spring Web程序的配置文件很繁琐,所以就写了一篇配置博客, 首先是pom.xml文件 <project xmlns="http://maven.apache.org/P ...

  5. oracle--对象权限

    sys用户查询ww用户创建的表(已经commited) select * from ww.wwTable; 普通用户lisi查询ww用户的表 grant select on wwTable to li ...

  6. node.js—创建、删除、追加文件等方法汇总

    使用Node.js的fs模块必须在electron项目里 /* 1. fs.stat 检测是文件还是目录(目录 文件是否存在) 2. fs.mkdir 创建目录 (创建之前先判断是否存在) 3. fs ...

  7. redis两种持久化的方法

    Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集(diff ...

  8. [2019杭电多校第四场][hdu6614]AND Minimum Spanning Tree(贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6614 题目大意是有一张n个点的完全图,n个点点权为1-n,边权为两点点权按位与(&).求最小生 ...

  9. ES6判断当前页面是否微信浏览器中打开

    1.使用jq判断是否用微信浏览器打开页面 var is_weixin = (function(){return navigator.userAgent.toLowerCase().indexOf('m ...

  10. NIO的缓冲区、通道、选择器关系理解

    Buffer的数据存取    一个用于特定基本数据类行的容器.有java.nio包定义的,所有缓冲区都是抽象类Buffer的子类.   Java NIO中的Buffer主要用于与NIO通道进行交互,数 ...