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,不行就循环。‬

  • 相关阅读:
    charles安装以及手机端的设置
    ON DUPLICATE KEY UPDATE 用法与说明
    亿级流量架构之网关设计思路、常见网关对比
    灰度发布系统架构设计
    Jmeter 并发测试
    springboot --- Swagger UI初识
    TortoiseGIT 一直提示输入密码的解决方法!
    MySQL 5.6 参数详解
    LVS 轮询调度详解
    MongoDB 权限
  • 原文地址:https://www.cnblogs.com/eason66-blog/p/P2441--luogu.html
Copyright © 2011-2022 走看看