https://www.dotcpp.com/oj/train/1089/
题目 3150: 蓝桥杯2023年第十四届省赛真题-冶炼金属
题目描述
小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X。这个炉子有一个称作转换率的属性 V,V 是一个正整数,这意味着消耗 V 个普通金
属 O 恰好可以冶炼出一个特殊金属 X,当普通金属 O 的数目不足 V 时,无法继续冶炼。
现在给出了 N 条冶炼记录,每条记录中包含两个整数 A 和 B,这表示本次投入了 A 个普通金属 O,最终冶炼出了 B 个特殊金属 X。每条记录都是独立
的,这意味着上一次没消耗完的普通金属 O 不会累加到下一次的冶炼当中。
根据这 N 条冶炼记录,请你推测出转换率 V 的最小值和最大值分别可能是多少,题目保证评测数据不存在无解的情况。
输入格式
第一行一个整数 N,表示冶炼记录的数目。
接下来输入 N 行,每行两个整数 A、B,含义如题目所述。
输出格式
输出两个整数,分别表示 V 可能的最小值和最大值,中间用空格分开。
样例输入
3
75 3
53 2
59 2
样例输出
20 25
解题思路:
代码:
#include<iostream>
#include<stack>
using namespace std;
int n,a,b,Max,Min,flag;
int main()
{cin >> n;while(n--){cin >> a >> b;if(flag){Max = Max > a/b ? a/b : Max;Min = Min < a/(b+1) ? a/(b+1) : Min;}else{Max = a/b;Min = a/(b+1); flag = 1;}}cout << Min + 1 << " " << Max;return 0;
}
题目 3151: 蓝桥杯2023年第十四届省赛真题-飞机降落
题目描述
N 架飞机准备降落到某个只有一条跑道的机场。其中第 i 架飞机在 Ti 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 Di 个单位时间,即它最早
可以于 Ti 时刻开始降落,最晚可以于 Ti + Di 时刻开始降落。降落过程需要 Li个单位时间。
一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。
请你判断 N 架飞机是否可以全部安全降落。
输入格式
输入包含多组数据。
第一行包含一个整数 T,代表测试数据的组数。
对于每组数据,第一行包含一个整数 N。
以下 N 行,每行包含三个整数:Ti,Di 和 Li。
输出格式
对于每组数据,输出 YES 或者 NO,代表是否可以全部安全降落。
样例输入
2
3
0 100 10
10 10 10
0 2 20
3
0 10 20
10 10 20
20 10 20
样例输出
YES
NO
解题思路:
代码:
#include<iostream>
using namespace std;
const int N = 11;
int t,n,vis[N];struct node{int t,d,l;
}plane[N];bool DFS(int t,int num)
{if(num == n) return true;for(int i = 0; i < n; i++){if(!vis[i] && (plane[i].t+plane[i].d >= t)){vis[i] = 1;if(DFS(max(t,plane[i].t)+plane[i].l , num+1))return true;vis[i] = 0;}}return false;
}int main()
{cin >> t;while(t--){fill(vis,vis+n,0);cin >> n;for(int i = 0; i < n; i++)cin >> plane[i].t >> plane[i].d >> plane[i].l;if(DFS(0,0))cout << "YES" << endl;else cout << "NO" << endl;}return 0;
}