【学习笔记PPT摘录】lan.289.24.4-15

ops/2024/9/23 7:01:02/

1.纪念品分组.双指针-01

在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;int A[40000];// 纪念品价值均衡// 把购来的纪念品进行分组 之和不超过整数 w// 每组只能有两个纪念品 希望分组的数目要少// 贪心的策略就是 每个较大的数找到一个 最大的较小的数使其能够小于w// n为个数// 利用双指针 一个从前向后int main()
{int w,n;cin>>w>>n;for(int i=1;i<=n;i++){cin>>A[i];}sort(A+1,A+1+n);int ans=0;int i=1;int j=n;while(i<=j){// cout<<A[i]<<" "<<A[j]<<endl;if(A[i]+A[j]<=w){i++;j--;ans++;}else{j--;ans++;}}cout<<ans;// 请在此输入您的代码return 0;
}

2.珠宝的最大交替和

在这里插入图片描述


#include<iostream>
using namespace std;
typedef long long ll;
ll n;
const int N = 2E5;
ll a[N], b[N];
int main()
{cin >> n;for (int i = 1; i <= n; i++){cin >> a[i];if (i % 2 == 0)b[i] = (0 - abs(a[i]));//表示是偶数else b[i] = abs(a[i]);//b[i]存放实际数据}ll Min1 = b[1], Min2 = b[2];//找到正数中的最小值,负数中的最小值ll j1=1, j2=2;for (int i = 1; i <= n; i++){if (i % 2 != 0)//正数{if (b[i] < Min1){Min1 = b[i];j1 = i;//纪录最小整数位置  4 ;  1}}else{if (b[i] < Min2){Min2 = b[i];j2 = i;//纪录最大整数位置 -3}}}ll sum = 0;if (abs(Min2) >= Min1)  //3 > 1  //{ll t=0;t=b[j1];b[j1]=0-b[j2];b[j2]=0-t;	}for (int i = 1; i <= n; i++){
//		if (abs(Min2) >= Min1)  //3 > 1
//		{
//			if (i == j1)
//			{
//				sum += 0 - b[i];
//				continue;
//			}
//			if (i == j2)
//			{
//				sum += 0 - b[i];
//				continue;
//			}
//		}sum += b[i];}cout << sum;return 0;
}

func 2

#include<bits/stdc++.h>
#define endl '\n' 
#define ll long long
using namespace std;ll ans = 0;
int inf = 1 << 30;void solve()
{int n;int c = -inf,d = inf;cin >> n;vector<int> a(n);for(int i = 0;i < n;i ++){cin >> a[i];a[i] = abs(a[i]);if(i & 1) c = max(c,a[i]),ans -= a[i];else d = min(d,a[i]),ans +=a[i];}if(c > d) ans += 2 * (c - d);cout << ans << endl;}int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int _; // cin >> _;_ = 1;while(_ --) solve();return 0;
}

3. 小蓝的礼物 --模拟 排序-2*

在这里插入图片描述

这里求的是最多可以购买多少件。嗯,有一个思路就是先把他们所有的都给排一个序。然后呢?开始统计前N项的和,以及第N加一项1/2的。价格。总共可以买到N加一箱啦。但是也有一个问题,那么前面的N像这个N该如何确定呢?
在这里插入图片描述

c
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+5;
int n[N];void slove(){int a,b,cnt=0;cin>>a>>b;//这里的a是商品件数,这里的B是总的钱数。 for(int i=0;i<a;i++){cin>>n[i];cnt+=n[i];  //这个指的是所有产品的总价钱。}sort(n,a+n);int ans,jud;ans=a;for( int i=a-1;i>=0;--i){jud=cnt;jud=jud-n[i]/2;if(jud<=b){break;}cnt-=n[i];ans--;}cout<<ans;}
signed main(){int num=1;while(num--){slove();}return 0;
}

最值查找-

自上而下树形DP_ -

状压DP_ -_

选择排序_-_
线性DP_ -

位运算_ -
完全背包_ -_
桶排序_-_
贪心-
双指针_ -_
数位DP_ -_
输入输出_ -
全排列-_
区间DP_ -
前缀和_ -_
其他库函数-蓝


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

相关文章

ubuntu23.10.1 php8.2安装

1、更新镜像源 apt update2、安装php apt install php php-fpm php-mysql其他扩展包&#xff0c;在后面加个-可以查看&#xff0c;选择安装,我这里是php8.2版本 apt-get install php8.2- 2.1php与nginx结合 PHP-FPM的配置文件位于/etc/php/{PHP版本}/fpm/pool.d/www.conf;…

第十一章数据仓库和商务智能10分

【数据仓库-后端&#xff0c;商务智能-前端】 基本算法&#xff1a;关联关系&#xff08;牵手-谈恋爱&#xff09;&#xff0c;集群关系&#xff08;杭州人爱吃酸甜口&#xff09;&#xff0c;决策树&#xff0c;线性回归&#xff0c;贝叶斯&#xff0c;神经网络&#xff0c;时…

第17天:信息打点-语言框架开发组件FastJsonShiroLog4jSpringBoot等

第十七天 本课意义 1.CMS识别到后期漏洞利用和代码审计 2.开发框架识别到后期漏洞利用和代码审计 3.开发组件识别到后期漏洞利用和代码审计 一、CMS指纹识别-不出网程序识别 1.概念 CMS指纹识别一般能识别到的都是以PHP语言开发的网页为主&#xff0c;其他语言开发的网页识…

使用npm时出现的问题们

npm ERR! code CERT_HAS_EXPIRED&#xff1a;解决证书过期问题 禁用SSL&#xff1a;虽然不推荐&#xff0c;但您可以暂时禁用SSL验证来解决这个问题。但请注意&#xff0c;这会降低安全性。您可以通过设置npm的 strict-ssl 选项为 false 来实现&#xff1a; npm config set st…

PCB工艺规范及PCB设计安规原则

一、目的 规范产品的PCB工艺设计&#xff0c;规定PCB工艺设计的相关参数&#xff0c;使得PCB的设计满足可生产性、可测试性、安规、EMC、EMI等的技术规范要求&#xff0c;在产品设计过程中构建产品的工艺、技术、质量、成本优势。 二、适用范围 本规范适用于所有电了产品的PCB工…

基于Springboot的校园闲置物品交易网站

基于SpringbootVue的校园闲置物品交易网站的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 商品信息展示 商品资讯 后台管理 后台首页 用户管理 商品类型管…

【计算机网络】http协议的原理与应用,https是如何保证安全传输的

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

通讯录实现

实现通讯录可以采用顺序表&#xff0c;单链表&#xff0c;双链表等数据结构实现&#xff0c;所以我们需要先写出顺序表&#xff0c;单链表&#xff0c;双链表的代码实现。 顺序表&#xff1a; 定义&#xff1a;顺序表&#xff08;Sequence List&#xff09;是一种线性表的存储…