> 文章列表 > 【天梯赛补题】

【天梯赛补题】

【天梯赛补题】

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不在本蒟蒻的能力范围之内,如果有简单的再说叭~~