时间限制 1000 ms 内存限制 65536 KB

题目描述

果园大咖圣哲有12个棵树,其中有且仅有一个是有病的,有病的树比真的或轻或重,给出3次天平测量重量的结果,每次告知左侧和右侧的树各有哪几个,以及天平的平衡状态,问第几棵树是生病的,并且请准确说出这棵树是轻是重。

数据保证每次天平的左右两边树数量相等。

输入格式

输入有多组数据,第一行有一个整数T(T≤15)。

每组的数据有三行:

每一行分别为三个字符串S1,S2,S3
S1表示天平左侧放置的树,S2表示天平右侧放置的树,S3表示天平平衡后右侧的状态up,down,even。

S1,S2由ABCDEFGHIJKL组成,分别以此表示12棵树。

输出格式

每组数据输出独占一行,输出是三种可能中的一种:

X is light.

X is heavy.

cannot judge.

输入样例

2
A B up
B A down
A C even
AB CD even
EF GH even
I J even

输出样例

B is light.
cannot judge.

分析

法一:数据小,可以直接暴力枚举病树,以及是轻是重,当只有一种情况符合三次天平结果则有答案。

法二:even时,两边的都是健康的,up时,可能右边的有轻的,或者左边的有重的,down,相反。

  v[i]记录第i棵树可能重或者可能轻的次数,up时,就给天平右边的v[i]--,左边的v[i]++。最后找除了健康的树以外,v[i]绝对值最大的,如果只有一个,那就是答案。健康的数的v[i]赋一个能区分开的值,比如v[i]设为9,如果第一次是even,后面最多减两次,为7,而可能不健康的数v最大为3,这样就可以区分开。

代码

#include<iostream>
#include<cmath>
#include<cstring>
#define l v[s1[j]-'A']
#define r v[s2[j]-'A'] using namespace std; int t,v[];
char ch;
string s1,s2,s3,ans; void solve(int f)
{
for(int j=; j<s1.size(); j++)
{
l+=f;
r-=f;
}
} void judge()
{
ch=;
int max=,maxi=-,t;
for(int i=; i<; i++)
if(v[i]<)
{
t=abs(v[i]);
if(t==max) maxi=-;
else if(t>max)
{
max=t;
maxi=i;
}
}
if(maxi>=)
{
ch=maxi+'A';
if(v[maxi]<) ans=" is light.\n";
else ans=" is heavy.\n";
}
}
int main()
{
cin>>t;
while(t--)
{
memset(v,,sizeof v);
for(int i=; i<; i++)
{
cin>>s1>>s2>>s3;
if(s3=="up") solve();
else if(s3=="down") solve(-);
else for(int j=; j<s1.size(); j++)l=r=;
}
judge();
if(ch) cout<<ch<<ans;
else cout<<"cannot judge.\n";
}
return ;
}

【kAri OJ604】圣哲的树的更多相关文章

  1. 【kAri OJ】621. 廖神的树

    时间限制 3000 ms 内存限制 65536 KB 题目描述 廖神和男神在植树节的时候准备玩一个奇怪的游戏,他们现在有一个被分割成n*n个格子的矩形土地,他们现在准备往这个地里种树,但这个种树游戏必 ...

  2. 【kAri OJ】wzt的树

    时间限制 1000 ms 内存限制 65536 KB 题目描述 改革春风吹满地,中国人民真争气!家庭联产承包责任制以后,全国人民争想发家致富.wzt于是包了一个山头来种植金丝楠木,花了好几年种了N棵树 ...

  3. 【kAri OJ 616】Asce的树

    时间限制 1000 ms 内存限制 65536 KB 题目描述 作为一个东北大老爷们,大A熊以力气大著称,现在有一颗半径为r的树,剖面图如黑色的圆,大A熊决定搬几个半径为R的圆柱形桶将其围住,剖面图如 ...

  4. 【kAri OJ605】陈队的树

    时间限制 1000 ms 内存限制 65536 KB 题目描述 陈队有N棵树,有一天他突然想修剪一下这N棵树,他有M个修剪器,对于每个修剪器给出一个高度h,表示这个修剪器可以把某一棵高度超过h的树修剪 ...

  5. 【kAri OJ620】winoros的树

    时间限制 1000 ms 内存限制 65536 KB 题目描述 winoros 是一个热爱大自然的萌妹子,在植树节的时候,她打算带着集训的朋友们一起去种树. 到了种树的地方,学校给了她们四个不可弯曲. ...

  6. B树——算法导论(25)

    B树 1. 简介 在之前我们学习了红黑树,今天再学习一种树--B树.它与红黑树有许多类似的地方,比如都是平衡搜索树,但它们在功能和结构上却有较大的差别. 从功能上看,B树是为磁盘或其他存储设备设计的, ...

  7. ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单

    前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...

  8. 再讲IQueryable<T>,揭开表达式树的神秘面纱

    接上篇<先说IEnumerable,我们每天用的foreach你真的懂它吗?> 最近园子里定制自己的orm那是一个风生水起,感觉不整个自己的orm都不好意思继续混博客园了(开个玩笑).那么 ...

  9. HDU1671——前缀树的一点感触

    题目http://acm.hdu.edu.cn/showproblem.php?pid=1671 题目本身不难,一棵前缀树OK,但是前两次提交都没有成功. 第一次Memory Limit Exceed ...

随机推荐

  1. hdu-5497 Inversion(滑动窗口+树状数组)

    题目链接: Inversion Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  2. codeforces 713A A. Sonya and Queries(状态压缩)

    题目链接: A. Sonya and Queries time limit per test 1 second memory limit per test 256 megabytes input st ...

  3. HDU 4122 Alice's mooncake shop --RMQ

    题意: 一个月饼店做月饼,总营业时间m小时,只能在整点做月饼,可以做无限个,不过在不同的时间做月饼的话每个月饼的花费是不一样的,假设即为cost[i],再给n个订单,即为在某个时间要多少个月饼,时间从 ...

  4. 第22章 DLL注入和API拦截(1)

    22.1 注入的一个例子(跨进程子类化窗口) ①子类化窗口可以改变窗口的行为,让发往该窗口的消息重新发到我们指定的过程来处理.但这种行为只能在本进程中(如A),对于从一个进程(如B)去子类化另一个进程 ...

  5. java 19 -14 File类的判断并输出案例

    package zl_file; import java.io.File; import java.io.FilenameFilter; /* 需求: 判断E盘目录下是否有后缀名为.jpg的文件,如果 ...

  6. Netty开发UDP协议

    UdpServer package org.zln.netty.five.part07; import io.netty.bootstrap.Bootstrap; import io.netty.ch ...

  7. Oracle11G 7个服务说明

    中的方法成功安装Oracle 11g后,共有7个服务, 这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Service: Oracle卷映射拷贝写入服务,VSS(Volu ...

  8. ASP.Net MVC如何访问的静态页面

    MVC开发中,因为View文件夹下的web.config文件默认会把任何方法的请求的任何文件,路径都交给 System.Web.HttpNotFoundHandler 去处理.起到Controller ...

  9. VBA的一些使用心得

    VBA的知识比较零散,因此开一贴记录一下使用VBA时的一些方法和心得.主要针对Excel,参考在这里 1. Collection Class 大部分情况下,Collection Class是比数组(A ...

  10. Java集合---Arrays类源码解析

    一.Arrays.sort()数组排序 Java Arrays中提供了对所有类型的排序.其中主要分为Primitive(8种基本类型)和Object两大类. 基本类型:采用调优的快速排序: 对象类型: ...