【蓝桥每日一题]-贪心(保姆级教程 篇2)#纪念品分组 #gcd排序

news2024/10/7 14:33:00

目录

题目:纪念品分组

思路:

题目:gcd排序

思路:

题目:纪念品分组

      

          

思路:

贪心思路:先将数据从小到大排序(默认),然后让最左边l和最右边r匹配,如果可以就分成一组,如果不行就让r单独一组。

      
(因为目前最小的都不能和r一组了,所以要放弃r的分组)l继续匹配下一个。直到把所有数据完全分组即可。
  

#include<bits/stdc++.h>                    
using namespace std;
int W,ans=0;
int n,a[30001];
int l,r,i;
int main()
{
    cin>>W>>n;
    for(i=1;i<=n;i++)
      cin>>a[i];
    sort(a+1,a+n+1);
    l=1;  r=n;
    while(l<=r)//一定要有等号,因为如果没等号的话,可能导致最中间的数据无法遍历分组
    {
        if(a[l]+a[r]<=W)   //如果能分就分到一组
          l++,r--,ans++;
        else
          r--,ans++;   //不能就让r单独一组
    }
    printf("%d",ans);
    return 0;
}

   

   

   

题目:gcd排序

 (来自codeforces(893)的一题)题意:将数组1~n进行排列,得到每组的gcd(a[i],a[i+1]),其中不同的数越多,分数越高,问最大分的排列方式

比如输入5:我们应该排列成1 2 4 3 5 然后获得gcd数(1 2 1 1 1)得到分数为2,因为有两个不同的gcd数嘛。无论你再怎么排列也找不到得分更高的了。

        

思路:

cf里面的题比较考思维,主要是枚举简单数据寻找规律就行,我们发现后一个数是前面的倍数时就可以把前面的数取做新的gcd数,所以就按这样排列。

       

啊,听不懂?那举个例子,输入10 开始

   

我们先排列从1开始安排:1 2此时获得gcd(1),那么紧接着安排上4,变成1 2 4就获得了gcd(1 2),然后安排上8,变成gcd(1 2 4),然后没有16,那么8是不可能成为gcd的

    

然后从3开始安排 :3 6 (12没有不管了)

    

然后从5开始安排:5 10

     

然后从7开始安排:7

    

然后从9开始安排:9

    

最后获得排列顺序1 2 4 8 3 6 5 10 7 9,这样就能获得最多的不同的gcd个数

    

       

#include <bits/stdc++.h> 
using namespace std;
const int N=1e5;
int a[N];
int main(){
	int t;cin>>t;
	while(t--){
		int n,cur=0;cin>>n;
		for(int i=1;i<=n;i+=2)//1,3,5,7,9,开始往后翻倍
		  for(int j=i;j<=n;j*=2){//虽然我证明不出来,但是确实所有例子都符合呀
		  	 a[++cur]=j;
		  }
		for(int i=1;i<=n;i++){
			cout<<a[i]<<' ';
		}cout<<'\n';
	}	
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1138227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【QT】点击按钮弹出对话框的注意实现

在stack区创建对话框对象 模态对话框&#xff0c;不可以对其他窗口进行操作。 模态窗口用dlg.exec()显示窗口。 问题代码1: MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);//点击新建按钮&#xff0c;弹出一…

华为eNSP配置专题-IPSec的配置

文章目录 华为eNSP配置专题-IPSec的配置0、概要介绍1、前置环境1.1、宿主机1.2、eNSP模拟器 2、基本环境搭建2.1、终端构成和连接2.2、终端的基本配置 3、IPSec的配置3.1、通过ACL定义需要保护的数据流3.2、配置IPSec安全提议3.3、配置IPSec手动方式安全策略3.3.1、在R1上配置3…

05.大模型大数据量

文章目录 大模型顿悟时刻&#xff1a;Emergent Ability&#xff08;涌动现象&#xff09;Calibration Inverse Scaling PrizeSwitch Transformers 大数据量数据预处理去重 模型大小与训练数据的选择Instruction-tuningHuman TeachingKNN LM 部分截图来自原课程视频《2023李宏毅…

Java流(Stream)式编程

流式编程 Stream作为Java 8的一大亮点&#xff0c;它专门针对集合的各种操作提供各种非常便利&#xff0c;简单&#xff0c;高效的API,Stream API主要是通过Lambda表达式完成&#xff0c;极大的提高了程序的效率和可读性。 流式编程的概念基于函数式编程的思想&#xff0c;旨…

Linux云服务器限制ip进行ssh远程连接

对Linux云服务器限制IP进行SSH远程连接的原因主要有以下几点&#xff1a; 增加安全性&#xff1a;SSH是一种加密的网络传输协议&#xff0c;可以保护数据的机密性和完整性。通过限制SSH连接的IP地址&#xff0c;可以防止未经授权的访问和数据泄露。只有拥有访问权限的IP地址才…

DDOS版-超功能记事本 Ⅲ 8.8源码

DDOS版-超功能记事本 Ⅲ 8.8源码 下载地址&#xff1a;https://user.qzone.qq.com/512526231/main

ESB优势2019-架构师(六十二)

分布式数据数据库系统除了包含集中式数据库系统的模式结构外&#xff0c;还增加了几个模式级别&#xff0c;其中&#xff08;&#xff09;定义了分布式数据库中数据的整体逻辑结构、使得数据使用方便&#xff0c;如同没有分布一样。 分片模式全局外模式分布模式全局概念模式 …

jmeter疑难杂症

mac启动jmeter 进入jmeter文件夹下的bin目录 执行sh jmeter 如何线程与线程之间按照顺序执行 线程组内随机执行 选择线程组右键 >>> 添加 >>> 逻辑控制器 >>> 随机顺序控制器&#xff08;Random Order Controller&#xff09; 如何提取cookie的…

【MyBatis Plus】初识 MyBatis Plus,在 Spring Boot 项目中集成 MyBatis Plus,理解常用注解以及常见配置

文章目录 一、初识 MyBatis Plus1.1 MyBatis Plus 是什么1.2 MyBatis Plus 和 MyBatis 的区别 二、在 Spring Boot 项目中集成 MyBatis Plus2.1 环境准备2.2 引入 MyBatis Plus 依赖2.3 定义 Mapper2.4 测试 MyBatis Plus 的使用 三、MyBatis Plus 常用注解3.1 为什么需要注解3…

Android12之#pragma clang diagnostic ignored总结(一百六十八)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

性能卓越 全栈自主 HashData与华为金融数仓一体机联合方案全面解读

​金融业作为数据覆盖广泛、服务社会主体众多、应用场景丰富的关键行业&#xff0c;一直以对数据基础设施的高要求而著称&#xff0c;也是检验产品与方案成熟度的试金石。经过长期的服务与实践&#xff0c;HashData已形成面向金融核心业务的成熟数仓产品。 凭借对金融场景的深…

基于Python Django 的微博舆论、微博情感分析可视化系统(V2.0)

文章目录 1 简介2 意义3 技术栈Django 4 效果图微博首页情感分析关键词分析热门评论舆情预测 5 推荐阅读 1 简介 基于Python的微博舆论分析&#xff0c;微博情感分析可视化系统&#xff0c;项目后端分爬虫模块、数据分析模块、数据存储模块、业务逻辑模块组成。 Python基于微博…

计算文本相似度,输出相似度最高的n个

TF-IDF import jieba import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity# 示例句子列表 sentences ["今天天气真好&#xff0c;阳光明媚。","关键字匹配是一种常见的…

什么是虚拟主播?

随着科技的不断发展&#xff0c;人工智能技术已经逐渐渗透到各个行业&#xff0c;为企业带来了前所未有的变革。在视频制作领域&#xff0c;美摄作为一家领先的智能视频技术提供商&#xff0c;针对企业需求推出了一款创新的虚拟主播解决方案&#xff0c;旨在帮助企业实现高效、…

「滚雪球学Java」:常用类(章节汇总)

&#x1f3c6;本文收录于「滚雪球学Java」专栏&#xff0c;专业攻坚指数级提升&#xff0c;助你一臂之力&#xff0c;带你早日登顶&#x1f680;&#xff0c;欢迎大家关注&&收藏&#xff01;持续更新中&#xff0c;up&#xff01;up&#xff01;up&#xff01;&#xf…

机器学习实验六:决策树-海洋生物例子

#创建数据集 import numpy as np import pandas as pd from sklearn import tree from sklearn.tree import DecisionTreeClassifier import graphviz def createDataSet():row_data {no surfacing:[1,1,1,0,0],flippers:[1,1,0,1,1],fish:[yes,yes,no,no,no]}dataSet pd.Dat…

轻松搭建Linux宝塔面板并实现公网访问Discuz论坛,让您的论坛更具吸引力

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board&#xff08;以下简称 Discuz!&#xff09;是一套通用的社区论坛软件系统&#xff0c;用户可以在不需要任何编程的基础上&a…

js中的Formdata数据结构

这里写目录标题 一、基本概念二、常用方法1.append(name, value)、set(name, value)2.get()、getAll()3.has(name)4.delete(name)5.keys(),values(),entries() 三、其他细节1.for of遍历2.转为对象3.结合 URLSearchParams 转为queryString 一、基本概念 FormData 提供了一种表…

推送内容有误怎么办?MobPush撤回/取消推送为您排忧解难

消息推送已成为深度连接APP和用户的利器&#xff0c;对推送内容的准确性和时效性的要求也更为严格&#xff0c;倘若推送的内容出现错误&#xff0c;或推送的内容已经失去了时效性&#xff0c;此时又该怎么办呢&#xff1f;别急&#xff0c;近日MobPush全新上线了取消推送和撤回…

Lightroom学习之路

基础知识 常用快捷键 双击修改图片下右边布局的属性&#xff0c;快速回到初始值 B站学习笔记 1、导入到图库为图片标星级&#xff0c;后期优先处理星级高的图片 2、修改照片-基础-白平衡有吸管吸颜色会自动平衡照片颜色 3、直方图左右上角三角形&#xff0c;选中后照片会显示…