当前位置: 首页 > news >正文

每日两道算法题:DAY3

题目五:棋盘问题

题目五:棋盘问题

1.题目来源:

NOIP1997 普及组第一题,红色入门,签到题。

2.题目描述:

3.题目解析:

求出一个棋盘中有多少长方形(不包括正方形)和正方形。

4.算法原理:

暴力枚举

观察数据范围,本题可以暴力枚举出所有的矩形,再去判断是正方形还是长方形。

固定左上角,枚举右下角。

时间复杂度:O(n ^ 4);100 * 100 * 100 * 100 = 1e8,勉强能过。

加上常数级别的优化(右下角一定在左下角的右下方),就没问题了。

数据范围再大一些的话,就要通过数学推公式的方式解决。

有兴趣的话可以自己下去推一推(计数原理、排列组合)

5.代码实现:

#include <iostream>using namespace std;int n, m;
int ret1, ret2;int main()
{cin >> n >> m; n++; m++;for(int x1 = 1; x1 <= n; x1++)for(int y1 = 1; y1 <= m; y1++)for(int x2 = x1 + 1; x2 <= n; x2++)for(int y2 = y1 + 1; y2 <= m; y2++){if(y2 - y1 == x2 - x1) ret1++;else ret2++;}cout << ret1 << " " << ret2 << endl;return 0;
} 

6.总结反思:

数据范围允许暴力的话就暴力解决,能通过题目的代码都是好代码,考场上不要费时间推公式,赛后再推公式。

通过这道题重点掌握枚举所有矩形的方式。

题目六:混合牛奶 Mixing Milk

题目六:混合牛奶 Mixing Milk

1.题目来源:

USACO1.3,难度橙色,简单题。

2.题目描述:

3.题目解析:

本体容易混淆为背包问题。但实际上并不是背包问题。

背包问题在每一位奶农那里一定是全买的。

本题是一道简单的模拟题。没什么多说的。

4.算法原理:

贪心、模拟

结构体按价格排序,价格低的排前面。

优先选择单价较小的牛奶去购买。

从最便宜的开始买,买够了就 OK 了。

这个贪心策略不用证明,一看就是对的。

5.代码实现:

#include <iostream>
#include <algorithm>using namespace std;const int N = 2e6 + 10, M = 5050;int n, m;
struct node
{int p, a;
}e[M];bool cmp(node& e1, node& e2)
{return e1.p < e2.p;
}int main()
{cin >> n >> m;for(int i = 1; i <= m; i++) cin >> e[i].p >> e[i].a;sort(e + 1, e + 1 + m, cmp);int ret = 0;int sum = 0;for(int i = 1; i <= m; i++){if(sum + e[i].a <= n){sum += e[i].a;ret += e[i].p * e[i].a;}else {ret += (n - sum) * e[i].p;break;}}cout << ret << endl;return 0;} 

6.总结反思:

区别背包问题。

不要看到总量和每个物品的单价就想背包,有可能会更简单。

http://www.dtcms.com/a/336672.html

相关文章:

  • java常见的数据加密
  • 当 AI 开始 “理解” 情感:情感计算技术正在改写人机交互规则
  • Linux 服务:iSCSI 存储服务配置全流程指南
  • 廖雪峰-Java教程-Part02
  • C#高级语法_委托
  • 力扣第463场周赛
  • 17-线程
  • uC/OS - III 系统DEBUG时内核对象统计信息
  • 模拟实现 useEffect 功能
  • 配置 NVIDIA RTX 5090 + sm_120 + flashattention,已跑通一个大模型 ~~
  • clion 如何调试 redis(在 mac 上)
  • AMBA-AXI and ACE协议详解(三)
  • 期望分位数回归模型
  • 利用pypy加速pyxlsbwriter生成xlsb文件
  • 五、redis入门 之 客户端连接redis
  • 日语学习-日语知识点小记-进阶-JLPT-N1阶段蓝宝书,共120语法(3):21-30语法
  • 雷卯针对香橙派Orange Pi Kunpeng Pro开发板防雷防静电方案
  • CloudBeaver:基于浏览器的DBeaver
  • 机器学习案例——对好评和差评进行预测
  • 当AI替我“搬砖”,我的价值是什么?
  • 21.AlexNet
  • 金山办公的服务端开发工程师-25届春招部分笔试题
  • C# Newtonsoft.Json 反序列化子类数据丢失问题
  • DBeaver连接MySQL 8报错连接丢失
  • HTTP协议-3-HTTP/2是如何维持长连接的?
  • JAVA后端开发——Token自动续期机制的必要性
  • 【Linux内核】Linux信号机制
  • 【Linux】五种IO模型
  • JVM学习笔记-----StringTable
  • react 错误边界