当前位置: 首页 > news >正文

【套题】大沥2019年真题——第1~3题

01.平方
题目描述
给出两个整数 a 和 b,如果 a*a 大于 b*b,输出 2;如果 a*a 等于 b*b,输出 1;否则输出 0。

输入格式
一行,两个整数 a 和 b。

输出格式
一个整数。

数据范围
80%的数据, -1000<=a,b<=1000。
100%的数据, -100000000000 <= a,b <= 100000000000

题解:很简单的判断。

#include<bits/stdc++.h>
using namespace std;
int main(){
  int a,b;
  cin>>a>>b;
  if(a*a>b*b) cout<<2;
  else if(a*a==b*b) cout<<1;
  else cout<<0;
    
    return 0;
}

02.棋子
题目描述
棋盘从左往右分成 N 个格子。棋盘上有且仅有 1 只白色棋子(‘W’表示白旗)和零个或多个黑色棋子(‘B’ 表示黑旗)。在游戏开始时,白棋放置在棋盘的第 1 个格子上,黑棋放置在其他格子上,一个棋子占据一 个格子。没有棋子的格子为空(用‘-’表示)。
FJ 然后开始移动白棋,他的每一步都可以做以下两件事之一(不能做其他事):
1、如果白旗的右邻居格子为空,FJ 会将白棋向右移动一个格子。
2、如果白旗的右邻居格子是黑棋,且该黑棋的右邻居为空,那么 FJ 会将白棋移动到该黑棋的右邻居。
FJ 一直重复上述操作,直到不能移动为止。
给定棋盘的初始状态,请输出游戏的最终状态。

输入格式
一个长度不超过 50 的字符串 S,表示棋盘的初始状态。‘W’表示白旗,‘B’表示黑旗,-’表示空格子。

输出格式
一个字符串,表示棋盘的最终状态。

题解:模拟算法,只需注意该棋子是否不能移动。

#include<bits/stdc++.h>
using namespace std;
string c;
int main(){
    cin>>c;
    for(int i=0;i<c.size();i++)
    {
        if(c[i]=='W')
        {
            if(c[i+1]=='-') c[i+1]='W',c[i]='-';
            if(c[i+1]=='B'&&c[i+2]=='-') c[i]='-',c[i+2]='W';
        }
    }
    cout<<c;
    return 0;
}

 

03.小偷
题目描述

农场有 8 个牛棚,它们名称分别是:"Hall", "Kitchen", "Ballroom", "Conservatory", "Cellar", "Library", "Lounge", "Study"。
有一只奶牛在时刻 T 在牛棚 R 被偷了。现在有 6 个嫌疑犯,他们的姓名 分别是:"White", "Green", "Peacock", "Plum", "Scarlett", "Mustard"。
一开始,所有的嫌疑犯都在 第 1 个牛棚"Hall"。
然后按照时间顺序依次发生了 N 个事件,第 i 个事件的格式是给出 3 个参数: eventTime[i] 、 eventPerson[i] 、 eventRoom[i] , 表 示 的 意 义 是 : 在 时 刻 eventTime[i], 嫌 疑 犯 eventPerson[i]来到了牛棚 eventRoom[i]。
法官判案的标准是:如果在时刻 T,有且只有 1 个嫌疑犯在牛棚 R,那么这个嫌疑犯就是小偷!否则找不出 谁是真正的小偷。

输入格式
第一行,R 和 T。R 是字符串,表示案发牛棚的名称,R 是 8 个牛棚其中的一个。1 <= T <= 1000。
第二行,一个整数 N。 0 <= N <= 50。
接下来有 N 行,第 i 行是:eventTime[i]、eventPerson[i]、eventRoom[i]。

输出格式
如果能找出小偷,输出小偷的姓名。
如果不能,输出-1。

题解:用人名定义一个映射(没学过映射map的可以去看【数据类型】映射map——学霸小羊 稍微学习一下),代表的是映射值代表的人在键值代表的牛棚。再根据输入得出每个人最后在哪间牛棚,然后再检查事发时间谁在事发牛棚即可。

#include <bits/stdc++.h>
using namespace std;
map<string,string>f1;  
string a,ans;
int t,n;
string b[6]={"White","Green","Peacock","Plum","Scarlett","Mustard"} ;
int main(){
	cin>>a>>t;
	for(int i=0;i<6;i++) f1[b[i]] = "Hall";
	cin>>n;
	for(int i=1;i<=n;i++)
    {
        int a;
        string b,c;
		cin>>a>>b>>c;
		if(a>t) break;
		f1[b]=c;
	}
    int s=0;
    for(int i=0;i<6;i++)
    {
		if(f1[b[i]]==a)
        {
			s++;
			ans=b[i];
		}
	}
	if(s==1) cout<<ans;
	else cout<<"-1";
    return 0;
}

  

相关文章:

  • Python扩展知识详解:lambda函数
  • 实现在Unity3D中仿真汽车,而且还能使用ros2控制
  • 【Yolov8部署】 VS2019+opencv+onnxruntime 环境下部署目标检测模型
  • Spring框架中的IoC(控制反转)
  • 【MachineLearning】生成对抗网络 (GAN)
  • VRRP协议
  • java详细笔记总结持续完善
  • Linux安装Idea
  • Vue3中的Icon处理方案(包括将svg转化为Icon)
  • 单北斗:构筑自主时空基准,赋能数字中国新未来
  • linux0.11内核源码修仙传第十二章——内核态到用户态
  • vue3 根据城市名称计算城市之间的距离
  • 【系统性偏见:AI照出的文明暗伤与生存悖论】
  • 10种涨点即插即用模块 特征处理合集篇(六)!!!(附原文地址+论文+代码)
  • Using SAP an introduction for beginners and business users
  • 磁盘结构损坏防护与应对全解析:从风险预警到数据拯救的关键策略
  • git push origin masterremote: [session-bd46a49f] The token username invalid
  • kaggle共享单车预测
  • 当 EcuBus-Pro + UTA0401 遇上 NSUC1500
  • C++/数据结构:哈希表知识点
  • 代做设计的网站/软文发布的平台与板块
  • 怎么给网站做https/湖南seo网站策划
  • 做一个展示型网站要多少钱/免费找精准客户的app
  • 网站建设的要素/精准客源app
  • 腾云网/快速排名优化怎么样
  • html5个人网站模板/网络营销工具与方法