清理水域--枚举
8.清理水域 - 蓝桥云课 (lanqiao.cn)https://www.lanqiao.cn/problems/2413/learning/?page=1&first_category_id=1&second_category_id=3&tags=2023 小蓝有一个n × m大小的矩形水域,小蓝将这个水域划分为n行m列,行数从1到n标号,列数从1到m标号。每行和每列的宽度都是单位1。 现在,这个水域长满了水草,小蓝要清理水草。每次,小蓝可以清理一块矩形的区域,从第r1行(含)到第r2行(含)的第c1列(含)到c2列(含)。经过一段时间清理后,请问还有多少地方没有被清理过。
#include<iostream>
using namespace std;
const int N=1e2+10;
int a[N][N];
int main() {
int n,m;
cin>>n>>m;
int t;cin>>t;
while(t--)
{
int r1,c1,r2,c2;
cin>>r1>>c1>>r2>>c2;
for(int i=r1;i<=r2;i++)
{
for(int j=c1;j<=c2;j++)
{
a[i][j]=1;
}
}
}
int cnt=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(a[i][j]==1)
cnt++;
}
}
cout<<n*m-cnt;
return 0 ;
}
附近最小
10.附近最小 - 蓝桥云课 (lanqiao.cn)https://www.lanqiao.cn/problems/2415/learning/?page=1&first_category_id=1&second_category_id=3&tags=2023 小蓝有一个序列a[1], a[2],.., a[n]. 给定一个正整数k,请问对于每一个1到n之间的序号i,a[i一], a[i一 k+1], .... a[i+厨]这2k+1个数中的最小值是多少? 当某个下标超过1到n的范围时,数不存在,求最小值时只取存在的那些值。
暴力法--通过80%用例
#include<iostream>
#include<climits>
using namespace std;
const int N = 1e6 + 10;
int a[N];
int main() {
int n, k;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
cin >> k;
for (int i = 1; i <= n; i++) {
int mn = INT_MAX;
for (int j = i - k; j <= i + k; j++) {
if (j >= 1 && j <= n) {
mn = min(mn, a[j]);
}
}
cout << mn << " ";
}
return 0;
}
判断蓝桥
11.判断蓝桥 - 蓝桥云课 (lanqiao.cn)https://www.lanqiao.cn/problems/2417/learning/?page=1&first_category_id=1&second_category_id=3&tags=2023
判断一个不区分大小写的字符串是否与某一个小写字符串相等,利用c++11特性结合tolower函数将每一个字符全部变成小写,在判断两个小写字符串是否相等。
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
cin >> input;
// 将字符串转换为小写
for (char &c : input) {
c = tolower(c);
}
if (input=="lanqiao") {
cout << "yes" << endl;
} else {
cout << "no" << endl;
}
return 0;
}