当前位置:网站首页>练习16-两道模拟题
练习16-两道模拟题
2022-08-02 09:33:00 【伊利达雷审判官】
3474. 坠落的蚂蚁
一根长度为 11 米的木棒上有若干只蚂蚁在爬动。
它们的速度为每秒一厘米或静止不动,方向只有两种,向左或者向右。
如果两只蚂蚁碰头,则它们立即交换速度并继续爬动。
三只蚂蚁碰头,则两边的蚂蚁交换速度,中间的蚂蚁仍然静止。
如果它们爬到了木棒的边缘(00 或 100100 厘米处)则会从木棒上坠落下去。
在某一时刻蚂蚁的位置各不相同且均在整数厘米处(即 1,2,3,…991,2,3,…99 厘米),有且只有一只蚂蚁 AA 速度为 00,其他蚂蚁均在向左或向右爬动。
给出该时刻木棒上的所有蚂蚁位置和初始速度,找出蚂蚁 AA 从此时刻到坠落所需要的时间。
输入格式
第一行包含一个整数表示蚂蚁的个数 NN,之后共有 NN 行,每一行描述一只蚂蚁的初始状态。
每个初始状态由两个整数组成,中间用空格隔开,第一个数字表示初始位置厘米数 PP,第二个数字表示初始方向,−1−1 表示向左,11 表示向右,00 表示静止。
输出格式
蚂蚁 AA 从开始到坠落的时间。若不会坠落,输出 Cannot fall!
。
数据范围
2≤N≤992≤N≤99,
1≤P≤991≤P≤99
输入样例:
4
10 1
90 0
95 -1
98 -1
输出样例:
98
code:
//这里填你的代码^^
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6;
int a[N],b[N];
struct stu
{
int aa;
int bb;
}stus[1001];
bool cmp(stu q,stu w)
{
if(q.aa<w.aa)
return true;
else
return false;
}
int main()
{
ios::sync_with_stdio(false);
int t;
cin >> t;
int cat;
for (int c = 1; c <= t; c ++ )
cin>>stus[c].aa>>stus[c].bb;
sort(stus+1,stus+t+1,cmp);
for (int c = 1; c <= t; c ++ )
{
a[c]=stus[c].aa;b[c]=stus[c].bb;
}
for (int c = 1; c <= t; c ++ )
if(b[c]==0)
cat=c;
vector<int>v1,v2;
for (int c = 1; c <= t; c ++ )
{
if(b[c]==1&&c<cat)
v1.push_back(a[c]);
if(b[c]==-1&&c>cat)
v2.push_back(a[c]);
}
/*for (int c = 1; c <= t; c ++ )
{
if(b[c]==1&&c<cat||b[c]==-1&&c>cat)
cout << a[c]<<' '<<b[c]<<endl;
}*/
if(v1.size()==v2.size())
cout << "Cannot fall!";
if(v1.size()>v2.size())
cout << 100-v1[v1.size()-v2.size()-1];
if(v1.size()<v2.size())
cout << v2[v1.size()];
}
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
作者:编程小猫
链接:https://www.acwing.com/activity/content/code/content/3950168/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
3307. 破纪录者
Isyana 获得了其当地主题公园连续 NN 天的游客人数。
其中第 ii 天的游客人数为 ViVi。
如果某天能够同时满足以下两个条件,则这一天被视为破纪录的一天:
- 这一天的游客人数严格大于以前每一天的游客人数。
- 这是最后一天,或者这一天的游客人数严格大于下一天的游客人数。
请注意,第一天也可以是破纪录的一天。
请帮助 Isyana 找出破纪录的天数。
输入格式
第一行包含整数 TT,表示共有 TT 组测试数据。
每组数据第一行包含整数 NN。
第二行包含 NN 个整数,其中第 ii 个表示 ViVi。
输出格式
每组数据输出一个结果,每个结果占一行。
结果表示为 Case #x: y
,其中 xx 为组别编号(从 11 开始),yy 为破纪录的天数。
数据范围
1≤T≤1001≤T≤100,
0≤Vi≤2×1050≤Vi≤2×105,
对于每个测试点,满足 1≤N≤2×1051≤N≤2×105 的数据一定不超过 1010 组,其余数据则满足 1≤N≤10001≤N≤1000。
输入样例:
4
8
1 2 0 7 2 0 2 0
6
4 8 15 16 23 42
9
3 1 4 1 5 9 2 6 5
6
9 9 9 9 9 9
输出样例:
Case #1: 2
Case #2: 1
Case #3: 3
Case #4: 0
样例解释
对于测试样例 11,第二天和第四天破了纪录。
对于测试样例 22,只有最后一天破了纪录。
对于测试样例 33,第一天、第三天和第六天破了纪录。
对于测试样例 44,没有一天破了纪录。
code:
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6;
int a[N],b[N];
int main()
{
ios::sync_with_stdio(false);
int t;
cin >> t;
for (int c = 1; c <= t; c ++ )
{
int n;
cin >> n;
int cnt=0;
for (int i = 0; i < n; i ++ )
cin >> a[i];
int mx=-1;
a[n]=-1;
for (int i = 0; i < n; i ++ )
{
if(a[i]>mx)
{
mx=a[i];
if(a[i]>a[i+1])
cnt++;
}
}
cout <<"Case #"<<c<<": ";
cout <<cnt<<' ';
cout << endl;
}
}
边栏推荐
猜你喜欢
动态规划每日一练(3)
js防抖函数和函数节流的应用场景
node封装一个图片拼接插件
The god-level Alibaba "high concurrency" tutorial "basic + actual combat + source code + interview + architecture"
线程池的使用及ThreadPoolExecutor源码分析
Re22:读论文 HetSANN An Attention-based Graph Neural Network for Heterogeneous Structural Learning
Scala类型转换
1对1视频源码——快速实现短视频功能提升竞争力
堪称神级的阿里巴巴“高并发”教程《基础+实战+源码+面试+架构》
裁员趋势下的大厂面试:“字节跳动”
随机推荐
spark:热门品类中每个品类活跃的SessionID统计TOP10(案例)
XML简介
AutoJs学习-AES加解密
从零开始入门单片机(一):必会背景知识总结
Naive Bayesian Method of Li Hang's "Statistical Learning Methods" Notes
LeetCode_2357_使数组种所有元素都等于零
自定义View实现波浪荡漾效果
向量点积(Dot Product),向量叉积(Cross Product)
MySQL安装与卸载详细教程
膜拜,Alibaba分布式系统开发与核心原理解析手册
软件exe图标变记事本或浏览器、360压缩打不开的几种应急解决方法
AutoJs学习-存款计算器
【SeaTunnel】从一个数据集成组件演化成企业级的服务
用汇编实现爱心特效【七夕来袭】
The use of thread pool and analysis of ThreadPoolExecutor source code
Fiddler(七) - Composer(组合器)克隆或者修改请求
function call to print lua internal structure
Jenkins--基础--6.1--Pipeline--介绍
system_error错误处理库学习
SAP 云平台上一种 Low Code Development(低代码开发)解决方案