【天梯赛补题】
175对我这种蒟蒻好难,,,
L1-6剪切粘贴
题目详情 - L1-094 剪切粘贴 (pintia.cn)
天梯赛:L1-094 剪切粘贴_scarecrow133的博客-CSDN博客
本蒟蒻看到字符串就害怕,一看就没思路,果断跳过了……
等佬佬讲了再补叭~
L1-7分寝室
题目详情 - L1-095 分寝室 (pintia.cn)
这题感觉像小学数学应用题。
女生n0,男生n1,一共n间寝室。
我们直接暴力,让i作为女寝个数,自然男寝个数就是(n-i)
要求每个女寝人数相同,男寝人数相同
只要n0能整除女寝个数(男寝同理。)就可以作为备选答案。
然后找出差最小的答案就可以了。
(仔细看题,n0和n1都是正整数,也就男女都有人,所以男女寝室至少都有一个,所以i从2开始走到n-1)
有个点不能过。 (考场上看了挺久都不能a,而且就一分没细究。
然后看了佬。
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,n0,n1;//n 间寝室。等待分配的学生中,有女生 n0,n1男生 int ans1,ans2;
int cha=1e8;
int flag;
signed main()
{cin>>n0>>n1>>n; for(int i=2;i<=n-1;i++){int x=n-i;if(n0%i==0&&n1%x==0){int a=n0/i;int b=n1/x;//代表几人间 if(a==1||b==1) continue;//加上判断是不是一人间int c=a-b;if(abs(c)<cha){cha=abs(c);flag=1;ans1=i;ans2=x;}}}if(flag==0) cout<<"No Solution";else cout<<ans1<<" "<<ans2;return 0;
}
L2-1堆宝塔
题目详情 - L2-045 堆宝塔 (pintia.cn)
感觉是模拟+栈,
考场写的时候第一遍只有15,原因是所有数都看过一遍之后,柱子上剩余的圈圈也可以当成一个塔。只要在最后加个判断就好了
加了判断之后还是只有16,报错?段错误
问了佬。
要记住:
栈采用 pop 或者 top操作 之前一定要 判空!!
然后判断语句里面一定也是要先判空再操作
要 if(!b.empty() && b.top()>num)
先判空!!!
然后就可以AC咯
#include<bits/stdc++.h>
using namespace std;
stack<int> a;
stack<int> b;
int n;
int h=0;
int cnt;
signed main()
{cin>>n;while(n--){int num;cin>>num;if(a.empty()){a.push(num);continue;}if(num<a.top()){a.push(num);continue;}else if(b.empty()||b.top()<num){b.push(num);continue;}else{cnt++;if(a.size()>h){h=a.size();}while(!a.empty()){a.pop();}while(!b.empty()&&b.top()>num){a.push(b.top());b.pop();}a.push(num);}}if(!a.empty()){cnt++;if(a.size()>h){h=a.size();}}if(!b.empty()){cnt++;if(b.size()>h){h=b.size();}}cout<<cnt<<" "<<h;return 0;
}
L2-2 天梯赛的赛场安排
题目详情 - L2-046 天梯赛的赛场安排 (pintia.cn)
蒟蒻骗了个15分,
老实说,看到题是有思路的感觉需要用到堆/优先队列,但本蒟蒻还没用过,慢慢学吧~
L2-3 锦标赛
题目详情 - L2-047 锦标赛 (pintia.cn)
(现在看发现好像直接输出no solution能骗分??
L2-4 寻宝图
题目详情 - L2-048 寻宝图 (pintia.cn)
看数据范围是BFS,太久没写全忘了
L3不在本蒟蒻的能力范围之内,如果有简单的再说叭~~