07 2024 档案
摘要:原题链接:https://www.luogu.com.cn/problem/P1083 题意解读:已知第i天有r[i]个教室可以供租借,有m个租借教室的订单,第i订单需要在第s[i]~t[i]天区间内租借d[i]个教室,计算是否全部订单都能满足,如果不满足要输出从第几个订单开始不满足。 解题思路:
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3406 题意解读:1-n个城市共了n段路,第i段路不买卡票价a[i],买卡票价b[i](卡本身花费c[i]),给定一个路程顺序,计算最少的通行费用。 解题思路: 根据路程,计算每段路各走了多少次,然后对于每段路,计算买卡
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3017 题意解读:将一个r*c的矩阵,横向切成a条,每一条纵向切除b块,计算每一块子矩阵之和的最小值最大是多少。 解题思路: 要计算最小值中最大的,直觉上可以采用二分,下面来分析单调性: 给定一个子矩阵块之和的值,值越小
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2004 题意解读:在一个n*m的矩阵中,找到边长为c的正方形,使得正方形范围内的数之和最大,输出正方形的左上角坐标。 解题思路: 二维前缀和的简单应用 第一步:计算二维前缀和 第二步:枚举边长为c的正方形左上角,计算正方
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1884 题意解读:给定n个矩形的平面直角坐标系下左上角、右下角的坐标,计算这n个矩形能覆盖的的格子数。 解题思路: 直观上来看,此题是一个差分应用,针对二维差分数组,将n个矩形区域内每个格子的值加1,然后统计有多少个不为
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1955 解题思路:本题的考察点有两个:并查集、离散化 具体内容参考之前的题解:https://www.cnblogs.com/jcwy/p/18096711
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1496 题意解读:给定n个区间[a,b),计算所有区间覆盖的总长度。 解题思路: 方法1、离散化 先思考一种比较直观的思路: 既然要计算多个区间覆盖的总长度,可以枚举每一个区间[a,b),通过一个桶数组来标记区间中所有的
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3397 题意解读:给定一个n*n的矩阵,每个元素初始值为0,再将m个子矩阵中的元素都增加1,统计每个元素最终的值。 解题思路: 1、暴力法 枚举每一个子矩阵,将对应元素值加1,时间复杂度为1000^3,不可行。 2、二维
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2367 题意解读:对于数组s[],给指定q个区间[x, y]里每个数增加z,计算操作之后最小的数。 解题思路: 1、暴力做法 对于每一个区间[x, y],枚举给每一个数增加z,然后遍历查找最小值,总体时间复杂度为O(N^
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1314 题意解读:计算m个检验值之和,计算与s差值绝对值的最小值。 解题思路: 1、首先要搞懂检验值是如何计算的 如上图,对于每一个区间的检验值yi,表示为:yi = "该区间重量>=W的矿石个数" ✖️ "该区间>=W
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1719 题意解读:在n*n的矩阵中,找到和最大的子矩阵,求最大的子矩阵和。 解题思路: 1、暴力解法 第一步、枚举所有的子矩阵 可以通过枚举子矩阵的左上角(x1,y1)、右下角(x2,y2)来枚举所有子矩阵: for(i
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P8218 题意解读:对于数组a[N],给定m个区间l~r,求每个区间所有元素之和。 解题思路: 先思考暴力做法: 对于每一个区间[l, r],累加a[l] ~ a[r]所有元素,时间复杂度最坏为10^5 * 10^4,不可
阅读全文
摘要:丙组T1:https://www.iai.sh.cn/problem/52 #include <bits/stdc++.h> using namespace std; //枚举法 int main() { int n; cin >> n; int cnt = 10; int day = 3; //星
阅读全文
摘要:丙组T1:https://www.iai.sh.cn/problem/24 #include <bits/stdc++.h> using namespace std; int main() { int a, b, c, d; cin >> a >> b >> c >> d; int cnt = 0;
阅读全文
摘要:丙组T1:https://www.iai.sh.cn/problem/17 #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; n %= 5; if(n >= 1 && n <= 3) cout <<
阅读全文