Technology Tree

简介: Technology Tree

解题思路:

运用结构体解题,将晶体矿和高能瓦斯的数量分别放在两个数组里。再根据第i个(1≤i<n)正整数fi(1≤fi<i)表示建筑i+1的前置建筑为fi,将数组里的数进行求和即可。

注意题目中说道,在科技树中,只有一个建筑是不需要前置建筑的,我们把这个建筑的编号设为1。其他的建筑,有且仅有一个前置建筑。因此我们应该注意 下标问题……(即注意i,j,f,x的关系)

另外还要注意,这一个测试用例里面有3个循环……

#include<stdio.h>
#include<string.h>
typedef struct
{
    int jing;
    int gao;
}construction;
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n,q;
        construction con[20000];
        scanf("%d %d",&n,&q);
        for(int i = 1;i <= n;i++)//从1开始!!
        {
            scanf("%d",&con[i].jing);
            scanf("%d",&con[i].gao);
        }
        for(int j = 2;j <= n;j++)//从2开始!!
        {
            int f;
            scanf("%d",&f);
            con[j].jing += con[f].jing;
            con[j].gao += con[f].gao;
        }
        while(q--)
        {
            int x;
            scanf("%d",&x);
            printf("%d %d\n",con[x].jing,con[x].gao);
        }
    }
    return 0;
}
PS:结构体 举个例子……
#include <stdio.h>
#include <string.h>
typedef struct
{
    char name[100];
    int age;
}student;
int main()
{
    student stu[10];
    char name[] = "feifei";
    strcpy(stu[0].name,name);
    printf("%s",stu[0].name);//第一种,字符类型
    stu[0].age = 100;
    stu[1].age = 120;
    printf("%d %d",stu[0].age,stu[1].age);//第二种,整数类型
  student stu[3];
    for(int i = 0;i < 3;i++)
    {
        scanf("%s",stu[i].name);
        scanf("%d",&stu[i].age);
        printf("%s %d\n",stu[i].name,stu[i].age);//第三种,两种类型同时出现
    }
    return 0;
}


相关文章
《Sora: A Review on Background, Technology, Limitations...》--Science and Technology - Reading Notes
《Sora: A Review on Background, Technology, Limitations...》--Science and Technology - Reading Notes
76 0
读书笔记系列 - Operating Systems: Three Easy Pieces - Virtualization - Chapter 4: Processes
读书笔记系列 - Operating Systems: Three Easy Pieces - Virtualization - Chapter 4: Processes
126 0
读书笔记系列 - Operating Systems: Three Easy Pieces - Virtualization - Chapter 4: Processes
读书笔记系列 - Operating Systems: Three Easy Pieces - Intro
读书笔记系列 - Operating Systems: Three Easy Pieces - Intro
166 0
【读书笔记】Algorithms for Decision Making(8)
解决存在模型不确定性的此类问题是强化学习领域的主题,这是这部分的重点。解决模型不确定性的几个挑战:首先,智能体必须仔细平衡环境探索和利用通过经验获得的知识。第二,在做出重要决策后很长时间内,可能会收到奖励,因此必须将以后奖励的学分分配给以前的决策。第三,智能体必须从有限的经验中进行概括。
244 0
【读书笔记】Algorithms for Decision Making(8)
2020 SIGMOD:BinDex A Two-Layered Index for Fast and Robust Scan 笔记
目前的查询扫描主要归类为两种方法,一种是顺序扫描 如全表扫描,一种是通过索引扫描 如b-tree等。1. 顺序扫描可能需要访问大量的无用的数据,特别是当选择率低的时候。2. 索引扫描在选择率较高的时候,可能会导致大量的随机内存访问。这些都会导致性能的下降,所以在执行查询操作时,需要根据具体的查询情况(如选择率的高低),选择合适的方法(选择顺序扫描,还是索引扫描)用于查询。但随着数据库查询负载变得复杂,很难去选择合适的方法应对特定的查询(到底是选顺序扫描?还是索引扫描?)。 因此本文提出了一种新的索引方案—BinDex(后面简称BD),可在不同的选择率情况下,同样能够快速地进行查询。 BinDe
Efficiently Compiling Efficient Query Plans for Modern Hardware 论文解读
这应该是SQL查询编译的一篇经典文章了,作者是著名的Thomas Neumann,主要讲解了TUM的HyPer数据库中对于CodeGen的应用。 在morsel-driven那篇paper 中,介绍了HyPer的整个执行框架,会以task为单位处理一个morsel的数据,而执行的处理逻辑(一个pipeline job)就被编译为一个函数。这篇paper则具体讲如何实现动态编译。
482 0
Efficiently Compiling Efficient Query Plans for Modern Hardware 论文解读
论文笔记系列-Simple And Efficient Architecture Search For Neural Networks
摘要 本文提出了一种新方法,可以基于简单的爬山过程自动搜索性能良好的CNN架构,该算法运算符应用网络态射,然后通过余弦退火进行短期优化运行。 令人惊讶的是,这种简单的方法产生了有竞争力的结果,尽管只需要与训练单个网络相同数量级的资源。
1768 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等