SDUT2013级測试赛_D

题目描写叙述

给出一棵含有n个点的树。每一个点权值为wi。求从根节点到叶子结点权值和最大的那条路经的权值和是多少。

输入

n(1<= n && n <= 10000)。

接下来n+1行,每行两个整数w(w
<= 1000)。

第i个节点的父节点为w,若 i为根节点。600组数据。

输出

对于每组数据,输出一个数代表答案。

演示样例输入

3
0 5
1 5
1 6

演示样例输出

11

提示

来源

解题报告

求从根节点出发到叶子的最长路。

。非常像数塔。。

我暴力dfs过了.怒搜全部数枝,搜完答案就有了。

。。

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
struct node
{
    int v,next;
} edge[100000];
int head[10010],cnt,vv[10010],vis[10010],n,maxx;
void add(int u,int v)
{
    edge[cnt].v=v;
    edge[cnt].next=head[u];
    head[u]=cnt++;
}
void dfs(int s,int d)
{
    int i,j;
    for(i=head[s]; i!=-1; i=edge[i].next)
        dfs(edge[i].v,d+vv[edge[i].v]);
    if(d>maxx)
        maxx=d;
}
int main()
{
    int i,j,v,w;
    while(~scanf("%d",&n))
    {
        maxx=0;
        cnt=0;
        memset(edge,0,sizeof(edge));
        memset(vv,0,sizeof(vv));
        memset(head,-1,sizeof(head));
        for(i=0; i<n; i++)
        {
            scanf("%d%d",&v,&w);
            add(v-1,i);
            vv[i]=w;
        }
        dfs(0,vv[0]);
        printf("%d\n",maxx);
    }
    return 0;
}

学长标程好像跟数塔类似,从下至上的找最大的。。

以下是啸爷的标程。。。

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <queue>
#include <cmath>
#include <stack>
#include <map>

#pragma comment(linker, "/STACK:1024000000");
#define EPS (1e-8)
#define LL long long
#define ULL unsigned long long
#define _LL __int64
#define _INF 0x3f3f3f3f
#define Mod 9999991

using namespace std;

int head[10010];

struct E
{
    int v,next;
}edge[10010];

int Top;

int Link(int u,int v)
{
    edge[Top].v = v;
    edge[Top].next = head[u];
    head[u] = Top++;
}

int value[10010];

int dfs(int root)
{
    int temp = 0;

    for(int p = head[root];p != -1; p = edge[p].next)
    {
        temp = max(temp,dfs(edge[p].v));
    }

    value[root] += temp;

    return value[root];
}

int main()
{
    freopen("data1.in","r",stdin);
    freopen("data1.out","w",stdout);
    int n,i,j,v,w;

    while(scanf("%d",&n) != EOF)
    {
        memset(head,-1,sizeof(head));
        Top = 0;

        for(i = 1;i <= n; ++i)
        {
            scanf("%d %d",&v,&w);
            Link(v,i);
            value[i] = w;
        }

        printf("%d\n",dfs(1));
    }
    return 0;
}
时间: 2024-12-31 21:47:18

SDUT2013级測试赛_D的相关文章

计蒜之道 測试赛

题目链接:http://www.jisuanke.com/minicourse/63 绿色能源 蒜头又要改变世界了. 这次他将为一些恶劣地形环境设计太阳能取电方案. 在最新的设计中,太阳能板被设置在一些太阳能塔上,与塔同高. 这一次,将有 n 座太阳能塔被设置.这些塔已经被提前制作完毕.当中 i 号塔高为 hi,如今project师须要确定将塔安置在哪些位置.以获得最大的总能量. 太阳能塔被安置的地形环境由 m 个点的多边形来表示.多边形的每一个点将会给出相应的坐标(xi, yi).xi < x

測试赛D - The War(有控制范围的贪心)

D - The War Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Status Description A war had broken out because a sheep from your kingdom ate some grasses which belong to your neighboring kingdom. The counselor of your k

SDUT2013级测试赛_D

题目描述 给出一棵含有n个点的树,每个点权值为wi,求从根节点到叶子结点权值和最大的那条路经的权值和是多少. 输入 n(1<= n && n <= 10000). 接下来n+1行,每行两个整数w(w <= 1000). 第i个节点的父节点为w,若 i为根节点.600组数据. 输出 对于每组数据,输出一个数代表答案. 示例输入 3 0 5 1 5 1 6 示例输出 11 提示 来源 解题报告 求从根节点出发到叶子的最长路...很像数塔... 我暴力dfs过了.怒搜所有数枝,

ios的单元測试OCUnit以及更新了之后的XCTestCase

1.像一般创建项目的步骤一样.创建一个用于測试的项目或者打开一个待測试的项目. (oc是5.0之前所使用的測试,如今用的是XCtestCase,默认会创建一个主的測试类.曾经版本号可能非常多步骤省去) 例如以下:我们能够看到一个text中的測试文件,如今全部測试类都是继承XCTestCase类. 2.写入对应的測试用例在測试类,測试类中对要測试的类须要进入对应的类的头文件,这个是理所应当的.然后执行"执行測试".快捷键:command+U或者product-> test. 以下是

sqlite3树形结构遍历效率对照測试

sqlite3树形结构遍历效率对照測试 一.缘起 项目数据结构:本人从事安防行业,视频监控领域.项目中会遇到监控点位的组织机构划分.暂时划分的巡逻点位等.这些相机点位.连同组织机构,它们在逻辑关系上构成了一个树形结构. 又因为不论什么一个点位属于一个组织机构,也可能属于一个被暂时创建的视频巡逻计划中,因此,能够看出,不论什么一个节点,包含相机节点和组织机构节点,都有可能有至少一个父级节点,且不论什么一个组织机构节点也会有多个下级子节点.这中逻辑关系又构成了图. 数据量规模:一个市级别的管理平台,

软件安全性能測试(转载)

近来,在我负责的公司某软件产品的最后測试工作,经常被问到这样一个问题:在做測试过程中,我们的软件产品在安全性方面考虑了多少?应该怎样測评一个软件究竟有多安全? 这个软件因为涉及客户商业上重要的信息资料,因此用户关心的核心问题始终环绕“这个软件安全吗”.一个因为设计导致的安全漏洞和一个因为实现导致的安全漏洞,对用户的终于影响都是巨大的.我的任务就是确保这个软件在安全性方面能满足客户期望. 一.什么是软件安全性測试 (1)什么是软件安全 软件安全属于软件领域里一个重要的子领域.在曾经的单机时代,安全

Marlin固件之—:基础入门与測试

一.Marlin的简介 Marlin固件是一个3D打印的开源固件,3D打印固件有很多,Marlin最为健全和强大,当然相对也会复杂一些.使用Gcode控制爱.Gcode是数控机床等工控控制使用范围较广的一种指令协议. 在这里介绍一些Marlin的入门经验. Marlin固件的下载地址:https://github.com/MarlinFirmware/Marlin Marlin配置与软件具体解释: http://wenku.baidu.com/link?url=6SpLLAaNvEk5KCjpk

熊猫猪新系统測试之二:Mac OS X 10.10 优胜美地

在第一篇windows 10技术预览版測试之后.本猫为大家呈现还有一个刚刚才更新的mac操作系统:"优胜美地".苹果相同一改以猫科动物为代号命名的传统.在10.9的Mavericks之后,第二次使用景点名称的命名方式新的10.10操作系统:Mavericks是美国加尼福尼亚州的一处海滩.而Yosemite则是美国约塞米蒂国家公园的大陆译称呀!我老是下意识的把"优胜美地"和本国的某品牌空调广告词乱搭,比較无语呀! 假设说Mavericks仅仅是10.7界面上的小打小闹

星云測试- Android应用深度体检专业平台

星云測试-给你的Android应用做个深度体检   星云測试- Android应用深度体检专业平台 星云在线云測试(简称星云測试www.teststars.cc)是全球第一个公布并商用的数字化精准软件測试平台,与其它软件云測试平台相比.它更关注软件最核心的功能測试.简单的说,我们把软件视同一个生命,为它做全面的X光扫描,而后给出具体体检报告.每个报告数据后面均有精准.无损.可追溯的数据为依托,协助您高速推断软件是否健康.还是须要立马切除病灶. 星云測试使软件測试从过度依赖人工记录.验证,转换为机