zoukankan      html  css  js  c++  java
  • 结题报告--P2441角色属性树

    题目:点此

                                        题目描述

    绪萌同人社是一个有趣的组织,该组织结构是一个树形结构。有一个社长,直接下属一些副社长。每个副社长又直接下属一些部长……。

    每个成员都有一个萌点的属性,萌点属性是由一些质数的萌元素乘积构成(例如,猫耳的值是2,弱气的值是3,黄毛的值是5,病娇的值是7,双马尾的值是11等等)

    举个例子,正妹是双份的猫耳,而且有一份弱气,她的属性值为2*2*3=12。

    现在组员关心一个问题,希望知道离自己最近且有相同萌元素上司是谁,例如,属性值为2、4、6、45这样的属性值都算是和正妹有相同的属性。

    然而,组员可能会随时变化自己的属性。啊。。感觉好麻烦啊。。

                                         思路

    请大家记住:遇到题目先暴力!!!再优化!!!

    所以,这道题就可以向上遍历,如果找到根还没找到具有同萌元素的上司,输出-1。

    接着,什么是具有同萌元素?按照题目里来说,就是都有相同的质因数,就是最大公约数>1,辗转相除随便上!

    最后main函数就是这几个函数的结合。

    然后…暴力就这样神奇的过了。

                                     犯的错误

    1.存树只用一个parent数组就行了(存双亲)

    2.为避免错,尽量数组下标从1开始,应为输入的编号99%从1开始,存储时从0开始会导致出错。

    3.gcd(辗转相除函数)中不用交换a和b,举个例子,7、14,7%14=7,14%7=0。

    4.puts函数会自动换行,不用在里边加 。

    5.数组int a={-1},会初始化成{-1,0,0,0……},所以用memset最有效。补充:memset(a,-1,sizeof(a)只能将a里的数据全部变成负数而不是-1,因为memset是以字节为单位的,都变成-1会让每一个元素变成10000001 100000001 100000001 100000001(int四字节),即-2122219135(不信你计算器算一遍)

                                        收获

    1.拿到题,先想树是邻接表还是逆邻接表,还是结合?逆邻接表parent数组,邻接表vector,结合就是两者都要。

    2.数组下标尽量从1开始。

    3.gcd函数中不用交换。

    4.puts函数会自动换行。

    5.初始化数组尽量用memset,不行就循环。‬

  • 相关阅读:
    (待续)【转载】 Deep Reinforcement Learning Doesn't Work Yet(这里有一篇深度强化学习劝退文)
    【转载】 深度强化学习走入「死胡同」,继续死磕电子游戏还是另辟蹊径?
    【转载】 Docker-关于docker cpu的限制后,实际效果的研究
    个人常用的 matplotlib 绘图模板
    【转载】共轭梯度法(视频讲解) 数值分析6(3共轭梯度法) ——苏州大学
    【转载】 向量,标量对向量求导数
    【转载】 Linux Hang Task 简介
    AOC U2790PC对比上一代的AOC U2790PQU怎么样?
    屏幕ppi
    ubuntu杀死进程
  • 原文地址:https://www.cnblogs.com/eason66-blog/p/P2441--luogu.html
Copyright © 2011-2022 走看看