蓝桥杯第三天:2023蓝桥杯省赛 第 1 题

ops/2025/3/15 3:42:01/

1、总价格要开 long 数据类型

2、直接贪心就行(优先找当前价格最贵的两个,然后再找当前能赠的价格最高的),找赠品的时候记得用二分(不然超时)

3、贪心不总是能找到最优解,但不能找最优解的情况不在测试用例里面 ,例如示例 6 12 23 25 25 50 50 输出 160 结果 150

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
import java.util.Arrays;
public class Main {public static void main(String[] args) {Scanner scan = new Scanner (System.in);int a[][] =new int[500005][2];int a1[] = new int[500005];int n = scan.nextInt();for(int i =0;i<n;i++)a1[i] = scan.nextInt();Arrays.sort(a1,0,n);for(int i = 0;i<n;i++) {a[n-1-i][0] = a1[i];}for(int i = 0;i<n;i++) {//System.out.print(a[i][0]+" ");}System.out.println();int count  = 0;long sum = 0;int m = 0;//最小的int aa = 0,bb=0;for(int i = 0;i<n;i++) {if(a[i][1]==1)continue;else if(aa==0) {aa =  a[i][0];a[i][1] = 1;sum += a[i][0];//System.out.print(a[i][0]+" ");count++;}else if(bb==0&&aa!=0) {bb = a[i][0];a[i][1] = 1;sum += a[i][0];//System.out.print(a[i][0]+" ");count++;if(bb>aa)m = aa;else m = bb;int r = n-1;int l = 0;//l这边是数字大的一边int mid = 0;while(l<=r) {mid = (r+l)/2;if(a[mid][0]>(m/2))l = mid+1;else          r =mid-1;}if(a[l][1]==1) {while(a[l][1]==1&&l<n) {//必须要满足l<n,多加一个条件没坏处l++;//往小的找if(l<n&&a[l][1]==0&&l<n) {count++;a[l][1]=1;//System.out.print(a[l][0]+" ");break;}}}else if(a[l][1]==0&&a[l][0]<=m/2&&l<n){//必须要满足l<n,多加一个条件没坏处count++;a[l][1]=1;//System.out.print(a[l][0]+" ");}aa = 0;//复原bb = 0;}if(count==n)break;}System.out.println(sum);}
}//  8 4    2     7  5  1      1


http://www.ppmy.cn/ops/165835.html

相关文章

数组逆序重存放(信息学奥赛一本通-1105)

【题目描述】 将一个数组中的值按逆序重新存放。例如&#xff0c;原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。 【输入】 两行&#xff1a;第一行数组中元素的个数n&#xff08;1<n<100)&#xff0c;第二行是n个整数&#xff0c;每两个整数之间用空格分隔。 【输出】 一行…

Haskell爬虫:为电商运营抓取京东优惠券的实战经验

一、需求分析&#xff1a;为什么抓取京东优惠券&#xff1f; 京东作为中国领先的电商平台之一&#xff0c;拥有海量的商品和丰富的优惠券资源。这些优惠券信息对于电商运营者来说具有极高的价值。通过分析竞争对手的优惠券策略&#xff0c;运营者可以更好地制定自己的促销方案…

DAY33 贪心算法Ⅱ

122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 想到把整体利润分解为每天的利润&#xff0c;就豁然开朗了。 class Solution { public:int maxProfit(vector<int>& prices) {int result0;for(int i1;i<prices.size();i){resultmax(0,pric…

idea更新git代码报错No Git Roots

idea更新git代码报错&#xff1a; No Git Roots None of configured Git roots are under Git. The configured directory must have ".git directory in it.但是本地项目里是存在.git文件的&#xff0c;就是突然间不能更新代码了 然后尝试重新拉新项目代码提示: Git i…

初阶数据结构(C语言实现)——5.3 堆的应用(1)——堆排序

目录 1 堆的应用1.1 堆排序1.1.1 思路1.1.2 代码实现 1.2 建堆的时间复杂度1.2.1 向下调整1.2.1 向上调整1.2.3 结论 学习堆的应用之前&#xff0c;欢迎学习下堆。 这是博主之前的文章&#xff0c;欢迎学习交流 初阶数据结构&#xff08;C语言实现&#xff09;——5.2 二叉树的…

hadoop集群配置-rsync命令

rsync主要用于备份和镜像 在100中新建文件夹 在conf中新建四个文件 输入命令&#xff1a; rsync -av conf/ roothadoop101:/opt/conf/

使用Mermaid语法绘制的C语言程序从Linux移植到Windows的流程图

以下是使用Mermaid语法绘制的C语言程序从Linux移植到Windows的流程图&#xff1a; graph TDA[开始移植] --> B[代码兼容性检查]B --> C[检查系统调用差异\nfork/exec -> CreateProcess]B --> D[检查文件路径格式\n/ vs \\]B --> E[检查依赖库兼容性\nPOSIX vs …

JVM的垃圾回收器都有哪些?

在 Java 虚拟机&#xff08;JVM&#xff09;中&#xff0c;不同的垃圾回收器采用不同的算法和策略&#xff0c;以满足不同应用场景的性能需求。以下为你详细介绍常见的 JVM 垃圾回收器&#xff1a; 新生代垃圾回收器 1. Serial 收集器 特点&#xff1a;单线程的垃圾回收器&a…