蓝桥杯第2章:基础算法_3

1.聪明的小羊肖恩 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int mod=100000007;
const int N=200010;
int n,L,R;
int a[N];
LL calc(int v){//计算数组a中两个数之和小于等于v的数对数量int l=1,r=n;LL ans=0;while(l<r){while(l<r&&a[l]+a[r]>v){r--;//不符合条件需要减小值,}//符合条件则通过r-l计算ans +=r-l;//[l,r]这个区间内都可以,l与[l+1,r]中有r-l种组合l++;}return ans;
}
void solve(){cin>>n>>L>>R;for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1);cout<<calc(R)-calc(L-1)<<'\n';
}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);solve();return 0;
}

 1.神奇的数组 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5 + 10;
int n, res;
int s[N], a[N], c[N];
inline void solve()
{cin >> n;for (int i = 1; i <= n; i ++ ) cin >> a[i], s[i] = s[i - 1] + a[i];for (int i = 1; i <= n; i ++ ) c[i] = c[i - 1] ^ a[i];//异或前缀和for (int i = 1,j=0; i <= n; i ++ ){//双指针模板while (((s[j] - s[i - 1]) == (c[j] ^ c[i - 1])) && j <= n) j ++;res += (j - i);//是个数而不是长度,最后一个位置是不符合条件的}cout << res << '\n';
}
signed main(){cin.tie(nullptr) -> sync_with_stdio(0);solve();return 0;
}

1.可凑成的最大花束数 - 蓝桥云课 (lanqiao.cn)

#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int N=2e5+5;
int a[N];int n,k;
int check(int mid){//花束个数int res=0;//有效花束总数for(int i=1;i<=n;i++){res+=min(mid,a[i]);//每个花的贡献值}//res表示的是所有花的数量 然后 /mid得到的是一束花中的花朵数return res/mid;//一束中花数
}
void solve()
{cin>>n>>k;for(int i=1;i<=n;i++) cin>>a[i];int l=0,r=2e14+1;while(l<r){int mid=(l+r+1)/2;if(check(mid)>=k) l=mid;//如果一束中的花数大于k,就可以包裹成更多的花束else r=mid-1;//找最多的向右边找}cout<<l;
}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);solve();return 0;
}

1.最大通过数 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
int n,m,k;
const int N=2e5+2;
typedef long long ll;
ll a[N]={0},b[N]={0};
bool check(ll mid){//输入通过的关卡数之和
//枚举每一种情况 然后取最小值 找到通过这么多关卡所需要的最小水晶数ll t=mid;ll sum=0;ll mn=1e14;while(t--){sum=0;if(t>n)continue;//防止越界if(mid-t>m)break;//防止越界sum+=a[t]+b[mid-t];mn=1ll*min(mn,sum);}return mn<=k;//下能通过的关卡数更多
}
int main()
{cin>>n>>m>>k;//a[i]表示通过前i个关卡需要的水晶数量是a[i]for(int i=1;i<=n;i++){cin>>a[i];a[i]+=a[i-1];}for(int i=1;i<=m;i++){cin>>b[i];b[i]+=b[i-1];}//前缀和ll l=0,r=n+m+2;while(l<r){ll mid=(l+r+1)/2;//右-需要还if(check(mid))l=mid;else r=mid-1;//右-}cout<<r<<'\n';return 0;
}

 1.体育健将 - 蓝桥云课 (lanqiao.cn)


// 解题思路: 枚举小蓝参加的最后一个项目item[i],则剩余时间为temp - item[i].et,
// 然后我们按总时间(参赛+休息)排序,并求出其前缀和数组s,s[i]的含义是前i件项目
// 的时间和,准备好这些之后,二分答案。check函数我们将枚举的答案x带入s数组中,求出
// 前x件项目时间之和,随后与剩余时间time比较,这里有个细节是,如果前x件项目中包含
// 枚举的i,我们需要将其删去并将s[x]改为s[x+1]。
#include <bits/stdc++.h>
using namespace std;
const int N = 4e5;
int n,k,ans;
long long s[N];
struct node {int et,br;
}item[N];
bool cmp(const node &a, const node &b) {return a.et + a.br <= b.et + b.br;
}
bool check(int x, int y,int time) {if(x < y) { if(s[x] <= time) return true;return false;}else {if(x + 1 > n) return false;//超出了if(s[x + 1] - item[y].br <= time) return true;//还是比总时间更小的else return false;//减去这个比赛}
}
int main() {ios::sync_with_stdio(false),cin.tie(0);cin>>n>>k;for(int i = 1; i <= n; i ++) cin>>item[i].et;for(int i = 1; i <= n; i ++) cin>>item[i].br;sort(item+1,item+1+n,cmp);//sort可以保证选的都是用的时间少的 //所以前缀和数组才右意义for(int i = 1; i <= n; i ++) s[i] = s[i-1] + item[i].et + item[i].br;for(int i = 1; i <= n; i ++) {//枚举第i个比赛最后参加int temp = k;if(temp < item[i].et) continue;//总时间小于这个比赛的参加时间 肯定不行temp -= item[i].et;//最后参加这个比赛int l = 0, r = n;while(l < r) {int mid = (l + r + 1) >> 1;//参加mid个比赛if(check(mid,i,temp)) l = mid;else r = mid-1;}ans = max(r+1,ans);//加上一个1}cout<<ans;return 0;
}

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

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

相关文章

[vue error] TypeError: AutoImportis not a function

问题详情 问题描述: element plus按需导入后&#xff0c;启动项目报错&#xff1a; 问题解决 将unplugin-auto-import 回退到0.16.1 npm install unplugin-auto-import0.16.1 安装完后再次运行就好了

差分题练习(区间更新)

一、差分的特点和原理 对于一个数组a[]&#xff0c;差分数组diff[]的定义是: 对差分数组做前缀和可以还原为原数组: 利用差分数组可以实现快速的区间修改&#xff0c;下面是将区间[l, r]都加上x的方法: diff[l] x; diff[r 1] - x;在修改完成后&#xff0c;需要做前缀和恢复…

PYTHON 自动化办公:压缩图片(PIL)

1、介绍 在办公还是学习过程中&#xff0c;难免会遇到上传照片的问题。然而照片的大小限制一直都是个问题&#xff0c;例如照片限制在200Kb之内&#xff0c;虽然有很多图像压缩技术可以实现&#xff0c;但从图像处理的专业来说&#xff0c;可以利用代码实现 这里使用的库函数是…

云计算之道:学习方法、实践经验与行业展望

一、云计算的理论 云计算是一种基于网络的计算模型&#xff0c;通过将计算资源、存储资源和服务等提供给用户&#xff0c;实现按需获取、灵活部署和按照使用量付费等特点。云计算的基本原理包括以下几个方面&#xff1a; 虚拟化技术&#xff1a;云计算基于虚拟化技术&#xff…

Vue2-(jeecgBoot) img大图预览

img 图片展示&#xff0c;大图预览失效解决&#xff0c;代码中使用的预览组件为&#xff1a;vue-photo-preview 使用场景&#xff1a;详情页面-model.images循环展示&#xff0c;点击查看大图&#xff0c;不能点击。 解决方案&#xff1a; 在详情数据请求完毕加 this.$previ…

观成科技:加密C2框架Covenant流量分析

工具介绍 Covenant是一个基于.NET的开源C2服务器&#xff0c;可以通过HTTP/HTTPS 控制Covenant agent&#xff0c;从而实现对目标的远程控制。Covenant agent在与C2通信时&#xff0c;使用base64/AES加密载荷的HTTP隧道构建加密通道。亦可选择使用SSL/TLS标准加密协议&#xf…

Java网络通信TCP

目录 TCP两个核心类 服务端 1.用ServerSocker类创建对象并且手动指定端口号 2.accept阻塞连接服务端与客户端 3.给客户端提供处理业务方法 4.处理业务 整体代码 客户端 1.创建Socket对象&#xff0c;并连接服务端的ip与端口号 2.获取Socket流对象&#xff0c;写入数据…

Linux: Network: socket: sendto 如果返回0,是否一定代表发送成功?

最近遇到一个问题&#xff0c;虽然应用层使用的系统调用send已经返回成功&#xff0c;而且没有错误日志产生&#xff0c;也没有errno的设置。那是不是代表一定是没有问题&#xff1f;从抓包的结果看&#xff0c;虽然上层应用已经显示发出去&#xff0c;但是实际抓包的时候&…

[python队列广搜]请佩戴好口罩

请佩戴好口罩 题目描述 疫情当下&#xff0c;希望同学们都认真佩戴口罩&#xff0c;保护自己&#xff0c;保护他人。 现假设有一个n*n的网格&#xff0c;每个人分别站在网格中的一个方格上&#xff0c;人们可以选择佩戴/不佩戴口罩&#xff0c;口罩对于病毒的传播有如下影响&…

被曝隐瞒添加剂、夸大产品功效,东方甄选再陷选品风波

号称专注为客户细心甄选好物的东方甄选&#xff08;&#xff08;HK:01797&#xff09;&#xff09;&#xff0c;又摊上事儿了。 近日&#xff0c;海关总署发布公告称&#xff0c;美国饮料生产企业JERRY&SONS PHARMACEUTICAL INC在申请注册时提供了虚假材料&#xff0c;且未…

moviepy用法大全

1.引用 from moviepy.editor import * 2. 载入 2.1 载入视频 video = VideoFileClip(filePath) 2.2 载入音频 audio=AudioFileClip(filePath) 2.3 载入图片 img = (ImageClip(videopath+videofengpi) # 水印持续时间 .set_duration(start_video_clip_begin.duration) …

C2_W2_Assignment_吴恩达_中英_Pytorch

Neural Networks for Handwritten Digit Recognition, Multiclass In this exercise, you will use a neural network to recognize the hand-written digits 0-9. 在本次练习中&#xff0c;您将使用神经网络来识别0-9的手写数字。 Outline 1 - Packages 2 - ReLU Activatio…

c语言经典测试题9

1.题1 #include <stdio.h> int main() { int i 1; sizeof(i); printf("%d\n", i); return 0; } 上述代码运行结果是什么呢&#xff1f; 我们来分析一下&#xff1a;其实这题的难点就是sizeof操作后i的结果是否会改变&#xff0c;首先我们创建了一个整型i&a…

LeetCode刷题小记 六、【栈与队列】

1.栈与队列 文章目录 1.栈与队列写在前面1.1栈与队列理论基础1.2用栈实现队列1.3用队列实现栈1.4有效的括号1.5删除字符串中的所有相邻重复项1.6逆波兰表达式求值1.7滑动窗口最大值1.8前K个高频元素 Reference 写在前面 本系列笔记主要作为笔者刷题的题解&#xff0c;所用的语…

分布式基础 --- Leader election

分布式基础 --- Leader election 为什么需要leader electionRing electionBully Algorithm 为什么需要leader election 在一组集群中, 需要选出一个leader来承担一些特别的任务, 比如 协调和控制系统操作&#xff1a;领导者负责协调和控制整个分布式系统的操作。它可以接收和处…

one4all 排坑记录

one4all 排坑记录 任务踩坑回顾动作踩坑动作踩坑动作新一步测试Habitat-sim 测试habitat-lab继续ONE4ALL 任务 看了《One-4-All: Neural Potential Fields for Embodied Navigation》这篇论文&#xff0c;感觉挺有意思&#xff0c;他也开源了代码。视觉语言导航是我一直想做的…

windows上elasticsearch的ik分词器的安装

下载 下载地址 在elasticsearch下的plugins文件夹下创建ik的文件夹 下载的ik压缩包解压到plugins/ik 重启elasticsearch 验证 http://ip:9200/_cat/plugins

python笔记_运算符优先级

运算符描述算术运算符&#xff08;x&#xff09;括号内优先级最高**乘方 * / // % 乘 矩阵乘 除 整除 取余 _ 加 减 位运算符 >> << 右移 左移 &按位与^按位异或|按位或比较运算符 in not in is is not < < > > ! 判断两个变量是否相同 判…

SpringBoot3-核心原理

1. 事件和监听器 1. 生命周期监听 场景&#xff1a;监听应用的生命周期 1. 监听器-SpringApplicationRunListener 自定义SpringApplicationRunListener来监听事件&#xff1b; 编写SpringApplicationRunListener 实现类在 META-INF/spring.factories 中配置 org.springfram…

【蓝桥杯】错误票据

今天是2024年3月1号&#xff0c;蓝桥杯比赛还有一个月的时间&#xff0c;虽说自己不指望拿奖吧&#xff0c;但是还是有些莫i名的焦虑&#xff0c;这道题目都做不出来&#xff0c;感觉自己真的有点菜啊&#xff01;但是还好啦&#xff0c;我觉得是因为我没有题感&#xff0c;慢慢…