AtcoderABC246场

news/2024/12/30 0:45:37/

#A - Four PointsA - Four Points

在这里插入图片描述在这里插入图片描述

题目大意

在平面上有一个矩形,矩形的每条边都平行于x轴或y轴,并且它的面积不为零。
给定这个矩形三个顶点的坐标 (x1, y1), (x2, y2), (x3, y3),找到另外一个顶点的坐标。

思路分析

根据矩形的性质可以通过判断顶点的横坐标和纵坐标来确定另外一个顶点的坐标。

时间复杂度

O(1)

可AC代码

#include <iostream>
using namespace std;int main(void)
{int x_1, x_2, x_3, y_1, y_2, y_3, x_ans, y_ans;cin >> x_1 >> y_1;cin >> x_2 >> y_2;  cin >> x_3 >> y_3;if(x_1 == x_2) x_ans = x_3;if(x_2 == x_3) x_ans = x_1;  if(x_3 == x_1) x_ans = x_2;  if(y_1 == y_2) y_ans = y_3;if(y_2 == y_3) y_ans = y_1;  if(y_3 == y_1) y_ans = y_2;cout << x_ans << " " << y_ans << endl;return 0;
}

B - Get CloserB - Get Closer

在这里插入图片描述加粗样式

题目大意

要求在二维平面上从点(0,0)出发,向点(A,B)移动距离为1的距离,然后求移动后的坐标。

思路分析

首先可以根据两点之间的距离公式来求出距离d,其中d = sqrt(A^2 + B^2)。然后可以将坐标(A,B)除以d得到新的坐标(x,y),即(x,y) = (A/d, B/d)。这样就得到了移动后的坐标

时间复杂度

O(1)

可AC代码

#include <iostream>
#include <cmath>int main() {int A, B;std::cin >> A >> B;double d = std::sqrt(A * A + B * B);double x = A / d;double y = B / d;std::cout << x << " " << y << std::endl;return 0;
}

C - CouponC - Coupon

在这里插入图片描述在这里插入图片描述在这里插入图片描述

题目大意

购物问题。有N个商品,在商店里出售。每个商品的价格分别为A1, A2, …, AN。Takahashi有K张优惠券,每张优惠券可以用于一件商品。对于每件商品,你可以使用任意数量的优惠券(包括零张)。使用k张优惠券在价格为a日元的商品上,可以以max(a - kX, 0)日元的价格购买它。现在需要计算Takahashi购买所有商品所需的最小金额。

思路分析

首先,可以使用尽可能多的类型1优惠券,即将优惠券应用于能够带来更大降价的商品上。具体操作如下:首先统计能够使用类型1优惠券的次数m,即对于每个商品,通过将商品价格除以X取整获得能够使用的优惠券数量,然后找到实际可用的优惠券数量m和K中的较小值。接着,将m个优惠券应用于商品,从总成本中减去m*X的金额。然后,对于仍未使用完的优惠券,将使用类型2优惠券,即选择当前价格最高的商品进行折扣。最后,将剩余的优惠券使用完或者商品遍历完后,输出最终的总成本。

知识点标签

  • 数学运算
  • 排序算法

时间复杂度

O(NlogN)

可AC代码

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;ll n, k, x;
ll a[200005];int main(void)
{cin >> n >> k >> x;for(int i = 1; i <= n; i++) cin >> a[i];// 初始化总成本为0ll ans = 0;// 计算总成本,即将所有商品的价格累加到ans中for(int i = 1; i <= n; i++) ans += a[i];// 定义变量m记录可用的类型1优惠券数量,初始化为0ll m = 0;// 根据题意,对于每个商品,通过将商品价格除以X取整获得能够使用的优惠券数量,并累加到m中for(int i = 1; i <= n; i++) m += a[i]/x;// 将实际可用的优惠券数量m和K中的较小值赋值给mm = min(m, k);// 从总成本中减去应用类型1优惠券后的金额,即减去m*Xans -= m*x;// 更新剩余可用的优惠券数量kk -= m;// 对于每个商品,计算其使用类型1优惠券后的价格for(int i = 1; i <= n; i++) a[i] %= x;// 对商品价格进行排序,以便后续应用类型2优惠券sort(a+1, a+n+1);// 从价格最高的商品开始,将剩余的优惠券应用于类型2优惠券,即选择当前价格最高的商品进行折扣for(int i = n; i >= 1; i--){if(k == 0) break;// 将当前商品的价格从总成本中减去ans -= a[i];// 更新剩余可用的优惠券数量kk--;}// 输出最终的总成本cout << ans << endl;return 0;
}

http://www.ppmy.cn/news/946613.html

相关文章

恐龙的丁丁长什么样?它们是怎么啪啪啪的?这项研究网友看完直呼涨姿势.........

全世界只有3.14 % 的人关注了 爆炸吧知识 地球霸主的私生活 也藏不住了 昨天下午&#xff0c;超模君码字码得累了&#xff0c;决定放松一下&#xff0c;重温一下经典的《侏罗纪公园》。 当看到恐龙在平原上成群奔跑的画面时&#xff0c;超模君又一次感受到和童年时相同的震撼。…

真菌疾病可能是造成恐龙大灭绝的“元凶”

我国科学家提出&#xff0c;真菌疾病或是恐龙大灭绝的“元凶” 在距今约6500万年前的白垩纪末期&#xff0c;统治地球的霸主恐龙为什么全部灭绝了&#xff1f;这一千古之谜吸引了世界各国科学家为之求索众说纷纭&#xff0c;但至今没有确切说法。 最近&#xff0c;我国科 学家…

灭绝了6500万年的恐龙,居然发声了?

生活在6500万年以前的某种蜥形纲动物,在150多年前首次被发掘出巨大的化石遗骸之后,就迅速引起了人们的兴趣,形成了一股蔚为独特、经久不衰的奇“石”热潮。      我们说的这种动物,就是恐龙。对此,很多人的第一反应就是电影《侏罗纪公园》里威武霸气残忍狡狯的霸王龙,它又叫…

恐龙为何不发明计算机,为什么恐龙没有产生智慧文明,而人类文明反而如此发达?...

原标题&#xff1a;为什么恐龙没有产生智慧文明&#xff0c;而人类文明反而如此发达&#xff1f; 地球已经45亿岁&#xff0c;也经历了五次物种灭绝。在这个漫长的历史长河中&#xff0c;地球上曾经出现过许许多多物种&#xff0c;然而绝大部分物种随着时间推移渐渐地消失得无影…

编程实现恐龙识别系统编程表示

要求&#xff1a; 1.以恐龙识别系统产生式规则为例&#xff1b; 2.用python语言建造规则库和综合数据库&#xff0c;并能对它们进行增加&#xff0c;删除和修改操作。 这是一个Python小实验题目&#xff0c;侵删 部分实现比较笨重&#xff0c;如有更好的方法&#xff0c;可以…

恐龙灭绝的真正原因是什么?撞击事件和火山喷发

导致恐龙灭绝的是小行星撞击还是火山喷发&#xff1f;答案可能是二者的共同作用 新浪科技讯 北京时间2月28日消息&#xff0c;新研究显示&#xff0c;6600万年前撞击地球的小行星或彗星或许不是恐龙灭亡的唯一罪魁祸首。 发表在近期《科学》&#xff08;Scicence&#xff09;杂…

恐龙dio怎么死的_如何从零开始,复活一头6500万年前的恐龙?

因为事实上&#xff0c;DNA可保留不了这么长的时间&#xff0c;就算被树脂层层包裹保护也难逃此劫。 用这种方法&#xff0c;恐龙怕是没有机会重见天日了。 从生物被宣告死亡那一刻起&#xff0c;DNA就会随之逐渐分解。 新西兰的一项新的科学研究表明&#xff0c;DNA的半衰期为…

百变工程之恐龙

文章目录 恐龙一、人员介绍二、引入三、搭建四、反思五、延续六、评价七、板书八、作品效果图九、课程目的及目标 恐龙 一、人员介绍 小朋友们&#xff0c;大家好&#xff0c;今天有几位小朋友在我们的教室上课呢&#xff1f; 好的&#xff0c;有三位对吧&#xff01; 哪位…