当前位置:网站首页>练习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;
}
}边栏推荐
猜你喜欢
随机推荐
typeinfo类型支持库学习
剑指offer专项突击版第17天
Re22:读论文 HetSANN An Attention-based Graph Neural Network for Heterogeneous Structural Learning
记某社区问答
Daily practice of dynamic programming (2)
在全志V853开发板试编译QT测试
刷题错题录1-隐式转换与精度丢失
Redis数据结构
net start mysql MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。
js引擎运行中的预解析(变量提升和函数提升)及相关实操案例
软件exe图标变记事本或浏览器、360压缩打不开的几种应急解决方法
让电商运营10倍提效的自动化工具,你get了吗?
Navicat连接MySQL时弹出:1045:Access denied for user ‘root’@’localhost’
EdrawMax Crack,多合一的图表应用程序
STL中list实现
Jenkins--基础--5.4--系统配置--全局工具配置
十、 网络管理
每天花2小时恶补腾讯T8纯手打688页SSM框架和Redis,成功上岸美团
Rust 从入门到精通03-helloworld
Daily practice of dynamic programming (3)









