原题链接

思路:

对每棵树进行拓扑排序,同一时间可以采摘的进行暴力即可,代码写得有点丑陋…

#include<iostream>
#include<vector>
#include<queue>
using namespace std;
#define ll long longint val[1005];
vector<int>ve[1005];
int indeg[1005];
queue<int>q1,q2;
vector<int>ans;
int main()
{int n;scanf("%d",&n);for(int i=1;i<=2*n;i++){scanf("%d",&val[i]);}for(int i=1;i<=2*n;i++){int t;scanf("%d",&t);if(t==0)continue;ve[i].push_back(t);indeg[t]++;}for(int i=1;i<=n;i++){if(indeg[i]==0)q1.push(i);}for(int i=n+1;i<=2*n;i++){if(indeg[i]==0)q2.push(i);}for(int i=0;i<n;i++){int ap=-1,pr=-1;int q1SIZE=q1.size(),q2SIZE=q2.size();for(int j=0;j<q1SIZE;j++){int apple=q1.front();q1.pop();for(int k=0;k<q2SIZE;k++){int pear=q2.front();q2.pop();q2.push(pear);if(ap==-1){ap=apple;pr=pear;}else if((val[apple]^val[pear])>(val[ap]^val[pr])){ap=apple;pr=pear;}else if((val[apple]^val[pear])==(val[ap]^val[pr])){if(val[apple]>val[ap]){ap=apple;pr=pear;}else if(val[apple]==val[ap]){if(apple>ap){ap=apple;pr=pear;}else if(apple==ap){if(pear>pr){ap=apple,pr=pear;}}}}}q1.push(apple);}ans.push_back(val[ap]^val[pr]);for(int j=0;j<q1SIZE;j++){int tmp=q1.front();q1.pop();if(tmp==ap){for(int k=0;k<ve[tmp].size();k++){indeg[ve[tmp][k]]--;if(indeg[ve[tmp][k]]==0){q1.push(ve[tmp][k]);}}}else{q1.push(tmp);}}for(int j=0;j<q2SIZE;j++){int tmp=q2.front();q2.pop();if(tmp==pr){for(int k=0;k<ve[tmp].size();k++){indeg[ve[tmp][k]]--;if(indeg[ve[tmp][k]]==0){q2.push(ve[tmp][k]);}}}else{q2.push(tmp);}}}for(int i=0;i<n;i++){if(i!=n-1)cout<<ans[i]<<" ";else cout<<ans[i]<<'\n';}
}

【CCSP真题】第一题 摘水果(拓扑排序)相关推荐

  1. leetcode剑指offe刷题-第一题-用两个栈实现队列

    leetcode剑指offe刷题-第一题 文章目录 leetcode剑指offe刷题-第一题 前言 一.用两个栈实现队列 1.思路 2.代码如下 总结 前言 记录一下自己刷算法的路程. leetcod ...

  2. 计算机三级 网络技术 大题第一题 答题技巧分享

    最近在准备计算机三级网络技术考试,一边刷题,一边看了一些大佬的答题技巧分享,感觉挺有用的,就自己总结了一下给大家分享一下. 这一篇是大题第一题的技巧分享 先放个例题: 拿到题目的第一步,先把子网掩码转 ...

  3. 2018美团点评编程题第一题

    晚上参加美团的笔试,今天从坐了一天的车,到了学校匆忙吃了饭,然后就开始了.确实是,脑子有点不灵光. 编程的第一题: 给定一个序列,输出这个序列子串的和为K的倍数的子串的长度,如果有重复,输出最大长度. ...

  4. 奇虎360_2017校园招聘笔试编程题第一题

    今晚做了360的校招笔试题,编程题难度适中,在这里跟大家分享一下编程题的第一题. 1. 题目 2. 输入输出及样例 3. 我的思路 这题应该看题目理解一下就有思路,最简单粗暴的就是创建一个二维数组in ...

  5. 第一届蓝桥杯国际赛真题第一题仓库布局

    仓库布局 问题描述 小明管理着一个仓库,他要在仓库里摆放一些货柜.货柜比较高,不能上下堆叠,底面是正方形,有一个侧面为正面,用于取放货物. 小明将仓库划分成了n x m的方格,其中南北方向n格,东西方 ...

  6. 2020年第十届C/C++ B组第一场蓝桥杯省赛真题第一题:跑步训练(5分

    题目描述 小明要做一个跑步训练. 初始时,小明充满体力,体力值计为 10000 .如果小明跑步,每分钟损耗 600 的体力.如果小明休息,每分钟增加 300 的体力.体力的损耗和增加都是均匀变化的. ...

  7. 楼教主男人八题(第一题)

    楼天城,1986 年出生,高中毕业于杭州十四中. 2004 年保送进清华大学计算机系.2008年进入姚期智院士领导的清华大学理论计算机中心攻读博士. 2017年初,创办小马智行(pony.ai).楼天 ...

  8. 04737 c++程序设计 第二章 课后程序设计题 第一题

    /* * 04737 c++ 自学考试2019版 第二章课后练习 * 程序设计题 1 * 需求:设计并实现一个类Course.它代表学校中的一门课程..... *///标准流 #include< ...

  9. 2021华为杯D题第一题完整代码

    文章目录 防查重 方法一的代码 别的方法 防查重 代码可以复制粘贴,一定要注意:复制粘贴运行成功后,把代码的变量改一改,然后加上自己的注释. 不会加注释?matlab官网搜一些相关函数,或者百度mat ...

  10. 攻防世界MISC新手题第一题第三题

    1.this_is_flag 直接复制即可 flag{th1s_!s_a_d4m0_4la9} 3如来十三掌 下载附件后得到文档 打开与佛论禅网站,发现解密不出来 我们可以在文本开头加上"佛 ...

最新文章

  1. 5G NPN 行业专网 — 解决方案
  2. fiddler抓取https请求
  3. 互联网大鳄的成长模式
  4. 不能连接到 mysql_怎么无法连接到数据库?
  5. 电商平台实战经验:电商中的Hadoop生态系统应用
  6. TCP和UDP报文头格式(转)
  7. css中的@符号的用处
  8. 易考防作弊功能有哪些_浙江考试院发公告,上百名考生考研违规,你可以不努力但不能作弊...
  9. 概率论07 联合分布
  10. win10开启Linux蓝屏,win10启动蓝屏_Win10怎么开启蓝屏记录
  11. Fortran:if语句
  12. 闪存flash进阶知识
  13. 【bzoj3162】独钓寒江雪
  14. 光纤猫连接路由器_CodingPark编程公园
  15. swing添加按钮监听后,面板监听失效
  16. PGP在加密技术中的应用
  17. 第三方打码平台超级鹰图文识别,md5算法加密
  18. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java大学生学科竞赛管理系统t16zl
  19. ios表格添加底纹_如何在Word中的表格单元格中添加底纹
  20. 双系统苹果Mac笔记本如何切换windows系统?

热门文章

  1. 计算机绘图实训日志通用篇,cad制图实习日记范文:
  2. php json字符串转为数组或对象
  3. 日本自由行签证申请所需资料
  4. 用关键字搜索lazada商品详情
  5. 求一元二次方程ax2+bx+c=0的根
  6. 自考计算机网络原理简答题,自考计算机网络原理简答题汇总.doc
  7. 计算机控制炉温实验,计算机控制(炉温控制)实验报告.pdf
  8. 直立两轮平衡车核心代码
  9. 如果你在寻找投资人……
  10. 华为路由器实现负载均衡和冗余备份