training11.14
题目:将一系列给定数字顺序插入一个初始为空的小顶堆H[]
。随后判断一系列相关命题是否为真。命题分下列几种:
x is the root
:x
是根结点;x and y are siblings
:x
和y
是兄弟结点;x is the parent of y
:x
是y
的父结点;x is a child of y
:x
是y
的一个子结点。
代码:


- 1 #include<iostream>
- 2 #include<algorithm>
- 3 #include<cstdio>
- 4 #include<cmath>
- 5 #include<cstring>
- 6 using namespace std;
- 7 const int maxx=1e5+2;
- 8 //角标之间的关系已经是知道的了 现在需要数根据已知角标和位置的关系进行补充
- 9 //数之间的位置关系,找的时候也根据角标进行查找就行
- 10 int n;
- 11 int a[1500];
- 12 int find(int x){
- 13 for(int i=1;i<=n;i++){
- 14 if(a[i]==x){
- 15 return i;
- 16 }
- 17 }
- 18 return -1;
- 19 }
- 20 int main(){
- 21 int m;
- 22 scanf("%d %d",&n,&m);
- 23 for(int i=1;i<=n;i++){
- 24 scanf("%d",&a[i]);
- 25 int k=i;
- 26 while(k>1&&a[k/2]>a[k]){
- 27 swap(a[k/2],a[k]);
- 28 k/=2;
- 29 }
- 30 }
- 31 while(m--){
- 32 int num1;
- 33 scanf("%d",&num1);
- 34 string f1;
- 35 cin>>f1;
- 36 if(f1=="and"){
- 37 int num2;
- 38 scanf("%d",&num2);
- 39 string f2;
- 40 getline(cin,f2);
- 41 if(find(num1)/2==find(num2)/2){
- 42 printf("T\n");
- 43 }else{
- 44 printf("F\n");
- 45 }
- 46 }else{
- 47 string f2;
- 48 cin>>f2;
- 49 if(f2=="a"){
- 50 string f3;
- 51 string f4;
- 52 int num2;
- 53 cin>>f3;
- 54 cin>>f4;
- 55 cin>>num2;
- 56 if(find(num1)/2==find(num2)){
- 57 printf("T\n");
- 58 }else{
- 59 printf("F\n");
- 60 }
- 61 }else{
- 62 string f3;
- 63 cin>>f3;
- 64 if(f3=="root"){
- 65 if(find(num1)==1){
- 66 printf("T\n");
- 67 }else{
- 68 printf("F\n");
- 69 }
- 70 }else{
- 71 string f4;
- 72 cin>>f4;
- 73 int num2;
- 74 cin>>num2;
- 75 if(find(num1)==find(num2)/2){
- 76 printf("T\n");
- 77 }else{
- 78 printf("F\n");
- 79 }
- 80 }
- 81 }
- 82 }
- 83 }
- 84 }
思路:角标之间的关系已经是知道的了 现在需要数根据已知角标和位置的关系进行补充数之间的位置关系,找的时候也根据角标进行查找就行。每个数读入以后跟其所在位置根的数之间进行比较。保证根节点的数字是最小的,小于左右节点的数。
training11.14的更多相关文章
- Ubuntu 14.04中Elasticsearch集群配置
Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...
- IIC驱动移植在linux3.14.78上的实现和在linux2.6.29上实现对比(deep dive)
首先说明下为什么写这篇文章,网上有许多博客也是介绍I2C驱动在linux上移植的实现,但是笔者认为他们相当一部分没有分清所写的驱动时的驱动模型,是基于device tree, 还是基于传统的Platf ...
- Angular2 Hello World 之 2.0.0-beta.14
公司现在采用angualrjs开发一些web应用,采用的是angular1,现在angular2已经差不多了,听说最近rc6已经出来了……其实感觉好慢啊!之前也做过一些anglar2的例子,但是没有记 ...
- 14门Linux课程,打通你Linux的任督二脉!
Linux有很多优点:安全.自主.开源--,也正是这些优点使得很多人都在学Linux. 虽说网上有大把的Linux课程资源,但是对很多小白来说网上的课程资源比较零散并不适合新手学习. 正因为此,总结了 ...
- deepsooncms在Ubuntu 14.04上部署教程
deepsooncms在Ubuntu 14.04上部署教程 一.安装mono1.在命令行运行sudo apt-key adv --keyserver keyserver.ubuntu.com --re ...
- ubuntu 14.10 lts 64-bits环境下使用Android Studio
距离google发布android studio 1.0正式版已经两个月左右了.由于一直习惯使用eclipse+ADT的模式,而且曾在windows下试用一次Android Studio预览版,感觉卡 ...
- 在 Ubuntu 14.10 中借用 Windows 的字体
在前一篇随笔中,我详细讨论了字体的分类及用途,也以 Fedora 20 为例,展示了字体配置的思路和方法.我在配置 Fedora 20 系统字体的时候,采用的是一种釜底抽薪的方法,完全抛开了系统原有的 ...
- 转-基于NodeJS的14款Web框架
基于NodeJS的14款Web框架 2014-10-16 23:28 作者: NodeJSNet 来源: 本站 浏览: 1,399 次阅读 我要评论暂无评论 字号: 大 中 小 摘要: 在几年的时间里 ...
- CSharpGL(14)用geometry shader渲染模型的法线(normal)
+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(14)用geometry shader渲染模型的法线(normal) +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 ...
随机推荐
- 08、元组tuple
元组(tuple) 是一个有序且不可变的容器,在里面可以存放多个不同类型的元素 元组是在最后多一个逗号,用于表示它是一个元组 tuple = (11,22,'阿斯顿','媚媚',) #后面多加一个逗号 ...
- 数字转人民币读法-python3
""" 2 把一个浮点数分解成证书备份和小数部分 3 """ 4 def divide(num): 5 intnum = int(num) ...
- E - Recursive sequence HDU - 5950 (矩阵快速幂)
题目链接:https://vjudge.net/problem/HDU-5950 思路: 构造矩阵,然后利用矩阵快速幂. 1 #include <bits/stdc++.h> 2 #inc ...
- 在SSM框架中如何将图片上传到数据库中
今天我们来看看SSM中如何将图片转换成二进制,最后传入到自己的数据库中,好了,废话不多说,我们开始今天的学习,我这里用的编辑器是IDEA 1.导入图片上传需要的jar依赖包 1 <depende ...
- Vulkan移植GpuImage(二)Harris角点检测与导向滤波
Harris角点检测 UI还是用的上次扣像的,只有前后置可以用,别的没有效果,只看实现就好. 相应源码 在实现之前,我先重新整理编译glsl的生成工具,如Harris角点检测中间计算过程需要针对rgb ...
- Java例题_20 前20项之和!
1 /*20 [程序 20 求前 20 项之和] 2 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前 20 项之和. 3 程序分析:请抓住分子与分母的变 ...
- 计算机体系结构——CH2 指令系统
CH2 指令系统 右键点击查看图像,查看清晰图像 X-mind CH2 指令系统 数据表示 定义 指计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型 确定哪些数据类型用哪些数据表示实现,是 ...
- python基础(三):元组
什么是元组 有时候你需要创建一系列不可修改的元素,元组可以满足这种需求.Python将不能修改的值称为不可变的,而不可变的列表被称为元组. 元组的定义和访问 元组使用圆括号来定义,我们已经知道:元组也 ...
- Queue API的几种实现详解
目录 Queue API的几种方法的使用 ArrayBlockingQueue原理及源码解析 ArrayBlockingQueue的成员变量 ArrayBlockingQueue的offer和put方 ...
- Linux/Unix 常用的 15 类别名(alias)
背景 最近在整理 Linux 运维基线,整理记录下常用的 alias 设置. alias alias 命令用于设置指令的别名.用于简化较长的命令. 语法 alias [别名]=[指令名称] 示例:al ...