【寒假每日一题】找硬币(个人练习)详细题解+推导证明(第十二天)
文章目录
- 前言
- 题目
- 详细题解
- 写法1 O ( n ) O(n) O(n)
- 推导证明
- 写法2 O ( n l o g n ) O(nlogn) O(nlogn)
- 推导证明
- 举一反三
- 总结
前言
这个寒假每日一题的系列,难度都是比较低的,属于基础题。
今天的题目是来自PAT甲级真题1048。
题目
伊娃喜欢从整个宇宙中收集硬币。
有一天,她去了一家宇宙购物中心购物,结账时可以使用各种硬币付款。
但是,有一个特殊的付款要求:每张帐单,她只能使用恰好两个硬币来准确的支付消费金额。
给定她拥有的所有硬币的面额,请你帮她确定对于给定的金额,她是否可以找到两个硬币来支付。
输入格式
- 第一行包含两个整数 N 和 M,分别表示硬币数量以及需要支付的金额。
- 第二行包含 N 个整数,表示每个硬币的面额。
输出格式
- 输出一行,包含两个整数 V1,V2,表示所选的两个硬币的面额,使得 V1≤V2 并且 V1+V2=M。
- 如果答案不唯一,则输出 V1 最小的解。
- 如果无解,则输出 No Solution。
数据范围
- 1 ≤ N ≤ 105 , 1≤N≤105, 1≤N≤105,
- 1 ≤ M ≤ 1000 1≤M≤1000 1≤M≤1000
输入样例1:
8 15
1 2 8 7 2 4 11 15
输出样例1:
4 11
输入样例2:
7 14
1 8 7 2 4 11 15
输出样例2:
No Solution
详细题解
写法1 O ( n ) O(n) O(n)
#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_set>using namespace std;const int INF = 10000;int main()
{int n, m;cin >> n >> m;unordered_set<int> hash;int v1 = INF, v2;for (int i = 0; i < n; ++ i ){int a, b;cin >> a;b = m - a;if (hash.count(b)){hash.insert(a);if (a > b) swap(a, b);if (a < v1) v1 = a, v2 = b;}else hash.insert(a);}if (v1 == INF) puts("No Solution");else cout << v1 << " " << v2 << endl;return 0;
}
毫无疑问,这是用空间换时间的做法,利用哈希表进行增删查改,时间复杂度都是 O ( 1 ) O(1) O(1)的,但是相应的空间复杂度都是 O ( n ) O(n) O(n)的。
最后提交,AC
【寒假每日一题】找硬币(个人练习)详细题解+推导证明(第十二天)相关推荐
- 【寒假每日一题】分巧克力(个人练习)详细题解+推导证明(第八天)附带转载程序员壁纸
文章目录 前言 题目 详细题解 写法1 O(nlogn)O(nlogn)O(nlogn) 推导证明 举一反三 总结 前言 话说今天开始准备搞一个秋招的GitHub,算是复习一遍了. 今天还是寒假每日一 ...
- 【寒假每日一题】数字三角形(个人练习)详细题解+推导证明(第二天)
文章目录 前言 题目 详细题解 写法1 O ( n 2 ) O(n^2) O(n2) 推导证明 写法2 O ( n 2 ) O(n^2) O(n2) 推导证明 举一反三 总结 前言 昨天真是人生中奇葩 ...
- 【寒假每日一题】剪绳子(个人练习)详细题解+推导证明(第六天)
文章目录 前言 题目 详细题解 写法1 O(nlogn)O(nlogn)O(nlogn) 推导证明 举一反三 总结 前言 今天终于出核酸检测的结果,还好大家都没事,不然怕是要封城了!!! 今天还是寒假 ...
- 【寒假每日一题】十三号星期五(个人练习)详细题解+推导证明(第十三天)
文章目录 前言 题目 详细题解 写法1 O(n)O(n)O(n) 推导证明 举一反三 总结 前言 这一周的题,真的是很扎实的基础题. 今天的题目是来自usaco training 1.2. 最近在家呆 ...
- 【寒假每日一题】棋盘挑战(个人练习)详细题解+推导证明(第十六天)
文章目录 前言 题目 详细题解 写法1 推导证明 举一反三 总结 前言 今天是经典的深度优先搜索问题,即八皇后问题. 作为经典问题,我发现了一种新的写法,不需要开二维数组即可完成. 题目 给定一个 N ...
- 【寒假每日一题】平方矩阵 II(个人练习)详细题解+推导证明(第十四天)
文章目录 前言 题目 详细题解 写法1 O(n2)O(n^2)O(n2) 推导证明 写法2 O(n2)O(n^2)O(n2) 推导证明 写法3 O(n2)O(n^2)O(n2) 推导证明 举一反三 总 ...
- 倪文迪陪你学蓝桥杯2021寒假每日一题:1.19日(2018省赛A组第7题)
2021年寒假每日一题,2017~2019年的省赛真题. 本文内容由倪文迪(华东理工大学计算机系软件192班)和罗勇军老师提供. 后面的每日一题,每题发一个新博文,请大家每天看博客蓝桥杯专栏: htt ...
- 倪文迪陪你学蓝桥杯2021寒假每日一题:1.26日(2019省赛A组第4题)
2021年寒假每日一题,2017~2019年的省赛真题.本文内容由倪文迪(华东理工大学计算机系软件192班)和罗勇军老师提供.每日一题,关注蓝桥杯专栏: https://blog.csdn.net/w ...
- 倪文迪陪你学蓝桥杯2021寒假每日一题:1.21日(2018省赛A组第9题)
2021年寒假每日一题,2017~2019年的省赛真题. 本文内容由倪文迪(华东理工大学计算机系软件192班)和罗勇军老师提供. 后面的每日一题,每题发一个新博文,请大家每天看博客蓝桥杯专栏: htt ...
最新文章
- Android ndk 安装教程 以及环境变量配置
- POJ-2513 Colored Sticks 字典树,欧拉回路
- stm32f103 spi crc
- 虚拟机克隆Linux操作系统后解决MAC地址冲突
- 1.const关键字.rs
- 搜狐新闻推荐算法原理 | “呈现给你的,都是你所关心的”
- Python全栈开发之并发编程
- k-means算法原理及实战
- 一站式快速实现应用现代化,IBM Cloud Pak做对了什么? | 技术公开课
- 网管警惕:能突破网关限制的七大软件(转)
- 选择SOA平台的标准是什么?
- 一道我根本猜不出来的Trajan
- html5小游戏塔防,HTML5塔防(一)
- 计算机二级交付遇到问题怎么解决,交期延误问题的解决办法 !
- 【金三银四】Java中间件面试题(2021最新版)
- 一些常见的项目管理 KPI
- 学会应对不同的面试官
- 【烟草物流配送系统】项目需求分析
- 4.21 检查SSN
- Monster Tower (堆 二分