BZOJ 1602 [Usaco2008 Oct]牧场行走 dfs
题意:id=1602">链接
方法:深搜暴力
解析:
这题刚看完还有点意思,没看范围前想了想树形DP,只是随便画个图看出来是没法DP的,所以去看范围。
woc我没看错范围?果断n^2暴力啊。想个卵。
于是写了暴力,暴力预处理每两个点间距离就好了。
尽管比别人慢了100ms?无卵用。
然后查了下正解,正解是求lca,最好还是设1为根,dis[i]代表根到i的距离,则对于询问x,y的答案就是dis[x]+dis[y]-2*dis[lca(x,y)]。
看起来好高端,然而暴力大法好!
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 1010
using namespace std;
int n,q,cnt;
int map[N][N];
int head[N];
struct node
{
    int from,to,val,next;
}edge[N<<1];
void init()
{
    memset(head,-1,sizeof(head));
    cnt=1;
}
void edgeadd(int from,int to,int val)
{
    edge[cnt].from=from,edge[cnt].to=to,edge[cnt].val=val;
    edge[cnt].next=head[from],head[from]=cnt++;
}
void dfs(int now,int fa,int root,int lenth)
{
    map[root][now]=lenth;
    for(int i=head[now];i!=-1;i=edge[i].next)
    {
        int to=edge[i].to;
        if(to==fa)continue;
        dfs(to,now,root,lenth+edge[i].val);
    }
}
int main()
{
    init();
    scanf("%d%d",&n,&q);
    for(int i=1;i<n;i++)
    {
        int x,y,z;
        scanf("%d%d%d",&x,&y,&z);
        edgeadd(x,y,z),edgeadd(y,x,z);
    }
    for(int i=1;i<=n;i++)dfs(i,0,i,0);
    for(int i=1;i<=q;i++)
    {
        int x,y;
        scanf("%d%d",&x,&y);
        printf("%d\n",map[x][y]);
    }
}
BZOJ 1602 [Usaco2008 Oct]牧场行走 dfs的更多相关文章
- bzoj 1602 [Usaco2008 Oct]牧场行走(LCA模板)
		
1602: [Usaco2008 Oct]牧场行走 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 379 Solved: 216[Submit][Sta ...
 - BZOJ 1602: [Usaco2008 Oct]牧场行走( 最短路 )
		
一棵树..或许用LCA比较好吧...但是我懒...写了个dijkstra也过了.. ---------------------------------------------------------- ...
 - BZOJ——1602: [Usaco2008 Oct]牧场行走 ||  洛谷—— P2912 [USACO08OCT]牧场散步Pasture Walking
		
http://www.lydsy.com/JudgeOnline/problem.php?id=1602 || https://www.luogu.org/problem/show?pid=2912 ...
 - BZOJ 1602: [Usaco2008 Oct]牧场行走 倍增裸题
		
Description N头牛(2<=n<=1000)别人被标记为1到n,在同样被标记1到n的n块土地上吃草,第i头牛在第i块牧场吃草. 这n块土地被n-1条边连接. 奶牛可以在边上行走, ...
 - LCA || BZOJ 1602: [Usaco2008 Oct]牧场行走 || Luogu P2912 [USACO08OCT]牧场散步Pasture Walking
		
题面:[USACO08OCT]牧场散步Pasture Walking 题解:LCA模版题 代码: #include<cstdio> #include<cstring> #inc ...
 - bzoj 1602: [Usaco2008 Oct]牧场行走【瞎搞】
		
本来想爆手速写个树剖,然而快下课了就手残写了了个n方的短小-- 暴力把查询的两个点中深的一个跳上来,加上边权,然后一起跳加边权就行了 #include<iostream> #include ...
 - BZOJ 1602 USACO2008 Oct 牧场行走
		
翻翻吴大神的刷题记录翻到的... 乍一看是一个树链剖分吓瓜我...难不成吴大神14-10-28就会了树剖?orz... 再一看SB暴力都可过... 然后一看直接树上倍增码个就好了... 人生真是充满着 ...
 - 1602: [Usaco2008 Oct]牧场行走
		
1602: [Usaco2008 Oct]牧场行走 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1211 Solved: 616 [Submit][ ...
 - 【BZOJ】1602: [Usaco2008 Oct]牧场行走(lca)
		
http://www.lydsy.com/JudgeOnline/problem.php?id=1602 一开始以为直接暴力最短路,但是n<=1000, q<=1000可能会tle. 显然 ...
 
随机推荐
- 【Java】java注解@Transient的作用, 配合JPA中时间段的查询
			
java注解@Transient的作用 @Transient标注的属性,不会被ORM框架映射到数据库中. 用于数据库表字段和java实体属性不一致的时候,标注在属性上使用. 例如时间段的查询 查询 R ...
 - JAVA常见算法题(十八)
			
package com.xiaowu.demo; /** * 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人,以抽签决定比赛名单. 有人向队员打听比赛的名单:a说他不和x比 ...
 - EOS,RTOS,GUI
			
RTOS:(实时多任务操作系统) Real-time Operation System EOS:(嵌入式操作系统) Embedded Operation System GUI:(图形用户接口) G ...
 - 求逆序对数总结 & 归并排序
			
用归并排序方式 最原始的方法的复杂度是O(n^2). 使用归并排序的方式,可以把复杂度降低到O(nlgn). 设A[1..n]是一个包含N个非负整数的数组.如果在i〈 j的情况下,有A〉A[j],则( ...
 - 联想Y430P  CentOS 7.3 无线网络的配置
			
# uname -a # 查看内核/操作系统/CPU信息的Linux系统信息命令 [root@www ~]# uname -a Linux www SMP Tue Nov :: UTC x86_64 ...
 - Python<1>List
			
list里的元素以逗号隔开,以[]包围,当中元素的类型随意 官方一点的说:list列表是一个随意类型的对象的位置相关的有序集合. 它没有固定的大小(1).通过对偏移量 (2)进行赋值以及其它各种列表的 ...
 - 单片机小白学步系列(十三) 点亮第一个LED——好的開始,成功的一半
			
前面介绍了非常多概念知识.做了非常多准备工作,从这一节開始,我们正式開始单片机的学习.我们将使用单片机完毕一项非常easy的工作:点亮一个发光二极管(即LED:Light-Emitting Diode ...
 - Shell 进度条效果的一个实现
			
#!/bin/bash processBar() { now=$ all=$ percent=`awk BEGIN'{printf "%f", ('$now'/'$all')}'` ...
 - 使用file_get_contents下载图片
			
<?php /* 当你在搭建网站时,从远程服务器下载某张图片并且将其保存在自己的服务器上,这一操作会经常用到.代码如下: */ $image = file_get_contents('h ...
 - 【Excle】使用&拼接,拼接后复制到文本编辑器存在引号(“”)问题
			
1.错误的操作 如下图:拼接 拼接后,复制到文本编辑器: 1.1错误原因 出现上述问题的原因:是由于在拼接字符串的时候, INSERT INTO CST(ID,NAME)values( 上述这段字符& ...