【蓝桥·算法双周赛】第七场分级赛——小白入门赛

2.霓虹【算法赛】 - 蓝桥云课 (lanqiao.cn)

st数组用来存第i个位置,这个字母有没有编号j

#include<bits/stdc++.h>
const int N=1e6+10;
using ll=long long;
std::map<std::string,std::string> mp;std::string a,aa;
int st[N][10];//
int stt[N][10];//对每个位置的 
ll ans;
void solve()
{std::cin>>a>>aa;int len=a.length();for(int i=0;i<len;i++){if(a[i]=='2'||a[i]=='3'||a[i]=='4'||a[i]=='5'||a[i]=='6'||a[i]=='8'||a[i]=='9') st[i][1]++;if(a[i]=='0'||a[i]=='1'||a[i]=='3'||a[i]=='4'||a[i]=='5'||a[i]=='6'||a[i]=='8'||a[i]=='9'||a[i]=='7') st[i][2]++;if(a[i]=='0'||a[i]=='2'||a[i]=='3'||a[i]=='5'||a[i]=='6'||a[i]=='8'||a[i]=='9') st[i][3]++;if(a[i]=='0'||a[i]=='2'||a[i]=='6'||a[i]=='8') st[i][4]++;if(a[i]=='0'||a[i]=='4'||a[i]=='5'||a[i]=='6'||a[i]=='8'||a[i]=='9') st[i][5]++;if(a[i]=='0'||a[i]=='2'||a[i]=='3'||a[i]=='5'||a[i]=='6'||a[i]=='7'||a[i]=='8'||a[i]=='9') st[i][6]++;if(a[i]=='0'||a[i]=='1'||a[i]=='2'||a[i]=='3'||a[i]=='4'||a[i]=='7'||a[i]=='8'||a[i]=='9') st[i][7]++;}for(int i=0;i<len;i++){if(aa[i]=='2'||aa[i]=='3'||aa[i]=='4'||aa[i]=='5'||aa[i]=='6'||aa[i]=='8'||aa[i]=='9') stt[i][1]++;if(aa[i]=='0'||aa[i]=='1'||aa[i]=='3'||aa[i]=='4'||aa[i]=='5'||aa[i]=='6'||aa[i]=='8'||aa[i]=='9'||aa[i]=='7') stt[i][2]++;if(aa[i]=='0'||aa[i]=='2'||aa[i]=='3'||aa[i]=='5'||aa[i]=='6'||aa[i]=='8'||aa[i]=='9') stt[i][3]++;if(aa[i]=='0'||aa[i]=='2'||aa[i]=='6'||aa[i]=='8') stt[i][4]++;if(aa[i]=='0'||aa[i]=='4'||aa[i]=='5'||aa[i]=='6'||aa[i]=='8'||aa[i]=='9') stt[i][5]++;if(aa[i]=='0'||aa[i]=='2'||aa[i]=='3'||aa[i]=='5'||aa[i]=='6'||aa[i]=='7'||aa[i]=='8'||aa[i]=='9') stt[i][6]++;if(aa[i]=='0'||aa[i]=='1'||aa[i]=='2'||aa[i]=='3'||aa[i]=='4'||aa[i]=='7'||aa[i]=='8'||aa[i]=='9') stt[i][7]++;}for(int i=0;i<=len;i++)//对每一个,比较 {for(int j=1;j<=7;j++){ans+=(st[i][j]!=stt[i][j]);}}std::cout<<ans;
}
signed main()
{//init();int t=1;//std::cin>>t;while(t--){solve();}return 0;
}

3.奇偶排序【算法赛】 - 蓝桥云课 (lanqiao.cn)

#include<bits/stdc++.h>
const int N=1e6+10;
using ll=long long;
std::map<std::string,std::string> mp;
int a[N];
ll ans;
int n;
bool cmp(int x,int y)
{if((x%2)==(y%2)) return x<y;else return (x%2);
}
void solve()
{std::cin>>n;for(int i=1;i<=n;i++){std::cin>>a[i];}std::sort(a+1,a+1+n,cmp);for(int i=1;i<=n;i++){std::cout<<a[i]<<" ";}
}
signed main()
{//init();int t=1;//std::cin>>t;while(t--){solve();}return 0;
}

4.可结合的元素对【算法赛】 - 蓝桥云课 (lanqiao.cn)

通过打表可以发现能满足lowbit(x)=x的x是2的n次方

然后就枚举起点和target就好了,但是有个点容易出错,那就是ai<=1e9,ai+aj<=2e9,target设置大一点就好了。

然后我写的时候发现二进制什么的忘完了,连lowbit是干嘛的都不知道。

我们复习一下二进制的知识。

lowbit的定义是找到x的最后一位1,并加上后面的0,比如lowbit((1000)2)=1000,lowbit((1010)2)=10,

所以显而易见若lowbit(x)=x,则x是2的n次方

复习一下,&,都1则1,|,有1则1,!,取反,^异或,不进位的加法。

lowbit( n ) = n & ( ~n + 1 ) = n & ( -n )

取反1000能保证最后一位1为0,也就是0111的形式,如果在加上1就会变成1000,但是前面的位置还是与一开始相反,我们只需要&上一开始的那个数,这样都1则1,就可以找出最后一个1以及后面的0了。

1.把所有数字取反

2.+1这样把最后一个0变成1

3.做&运算

#include<bits/stdc++.h>
const int N=1e6+10;
using ll=long long;
std::map<int,int> mp;
int a[N];
unsigned long long ans;
int n;
//int b[N]={0,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912};
int cnt=30;
bool st[N];
ll lowbit(int x)
{return x&-x;
}
void solve()
{std::cin>>n;for(int i=1;i<=n;i++){std::cin>>a[i];mp[a[i]]++;}//有没有两个数相加等于b数组中的数字for(int i=1;i<n;i++)//枚举起点 {mp[a[i]]--;//前面的选过了,-- //存储i后面的每个元素的个数 int hh=1; for(int j=1;j<=40;j++){hh*=2;if(hh<a[i]) continue;if(mp[hh-a[i]]>0) ans+=mp[hh-a[i]];//std::cout<<a[i]<<" "<<b[j]<<" "<<ans<<'\n';}}std::cout<<ans;
}
signed main()
{//init();int t=1;//std::cin>>t;while(t--){solve();}return 0;
}

 5.兽之泪【算法赛】 - 蓝桥云课 (lanqiao.cn)

题目读错了,我以为最多攻击两次,原来可以无限攻击 

还有y一定比x大,

感觉这种贪心/模拟题分情况讨论思路会比较清晰不容易出错。

比如这道题麻烦的点在于选不选最后一个,我们直接分情况讨论

1.不选最后一个,管你最后一个多大多小我都不选。那么我们就只需要找到前k-1个里y最小的,同时因为y>x,当x>y了说明minn的第一次已经被选了,我们直接结束循环加上对应还差(n-cnt)*minn次 

2.选最后一个,你想想什么情况才会选最后一个呢,当然是yk最小的时候,不然在前面直接就退出循环加minn了。也就是,s+(n-k)*y

取最小值即可。

#include<bits/stdc++.h>
const int N=1e6+10;
using ll=long long;
std::map<int,int> mp;
ll a[N];
int n,k;
int cnt=0;
ll minn=1e9,y; 
ll sum,s; 
void solve()
{std::cin>>k>>n;//k个怪兽需要打n次for(int i=1;i<=k;i++){std::cin>>a[i];std::cin>>y;if(i!=k){minn=std::min(minn,y);//统计前面最小的 }s+=a[i];}std::sort(a+1,a+k);//对前k-1个排序, //不打第k个for(int i=1;i<=k-1;i++){if(cnt==n) break;//打够了 if(a[i]<=minn) sum+=a[i],cnt++;//这里能这样写是因为,y>x,a[i]大于minn时说明minn的第一次已经被打过了	else break;//不打了 } sum+=(n-cnt)*minn;//如果非要打最后一个就说明y是最小的 if(n>=k) sum=std::min(sum,s+(n-k)*y);std::cout<<sum; 
} 
signed main()
{//init();int t=1;//std::cin>>t;while(t--){solve();}return 0;
}

 6.矩阵X【算法赛】 - 蓝桥云课 (lanqiao.cn)

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

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

相关文章

Vue+SpringBoot打造个人健康管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健康咨询模块 三、系统展示四、核心代码4.1 查询健康档案4.2 新增健康档案4.3 查询体检档案4.4 新增体检档案4.5 新增健康咨询 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpri…

Spring事件发布监听器ApplicationListener原理- 观察者模式

据说监听器模式也是mq实现的原理, 不过mq我还没来得及深入学习, 先用spring来理解一下吧 Spring事件发布监听器ApplicationListener原理- 观察者模式 什么是观察者模式一个Demo深入认识一下观察者模式Spring中的事件发布监听ps 什么是观察者模式 大家都听过一个故事叫做烽火戏…

C语言初学10:typedef

一、作用 为用户定义的数据类型取一个新名字 二、对结构体使用typedef定义新的数据类型名字 #include <stdio.h> #include <string.h>typedef struct Books //使用 typedef 来定义一个新的数据类型名字 {char title[50];} book;int main( ) {//book是typedef定…

微信小程序uniapp+django+python的酒店民宿预订系统ea9i3

Android的民宿预订系统设计的目的是为用户提供民宿客房、公告信息等方面的平台。 与PC端应用程序相比&#xff0c;Android的民宿预订系统的设计主要面向于民宿&#xff0c;旨在为管理员和用户、商家提供一个Android的民宿预订系统。用户可以通过Android及时查看民宿客房等。 An…

视频扩散模型介绍 Video Diffusion Models Introduction

视频扩散模型介绍 Video Diffusion Models Introduction Diffusion 扩散模型中的一些概念DDPMDDIMCLIPLatent DiffusionStable DiifusionLoRADreamBoothControlNet 视频生成评估标准图片层面视频层面 前人的工作Make-A-VideoAlign your Latents 开源视频生成模型ModelScopeT2V&…

Java中常用的集合及方法(3)

1、List&#xff08;接上级--常用方法示例补充&#xff09; 1.4 常用的方法 1.4.2 LinkedList&#xff08;JDK8&#xff09; LinkedList是Java中一个实现了List接口和Deque接口的类&#xff0c;它采用链表结构存储数据&#xff0c;支持高效的插入和删除操作。 LinkedList中…

阿里云服务器一个月多少钱?最便宜的5元1个月

阿里云服务器一个月多少钱&#xff1f;最便宜5元1个月。阿里云轻量应用服务器2核2G3M配置61元一年&#xff0c;折合5元一个月&#xff0c;2核4G服务器30元3个月&#xff0c;2核2G3M带宽服务器99元12个月&#xff0c;轻量应用服务器2核4G4M带宽165元12个月&#xff0c;4核16G服务…

Gitlab修改仓库权限为public、Internal、Private

Public&#xff08;公开&#xff09;&#xff1a;所有人都可以访问该仓库&#xff1b; Internal&#xff08;内部&#xff09;&#xff1a;同一个GitLab群组或实例内的所有用户都可以访问该仓库&#xff1b; Private&#xff08;私人&#xff09;&#xff1a;仅包括指定成员的用…

【动态规划】【前缀和】【和式变换】100216. K 个不相交子数组的最大能量值

本文涉及知识点 动态规划汇总 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LeetCode 100216. K 个不相交子数组的最大能量值 给你一个长度为 n 下标从 0 开始的整数数组 nums 和一个 正奇数 整数 k 。 x 个子数组的能量值定义为 stren…

STM32FreeRTOS信号量(STM32cube高效开发)

一、信号量 &#xff08;一&#xff09;信号量概括 信号量是操作系统中重要的一部分&#xff0c;信号量是一种解决同步问题的机制&#xff0c;可以实现对共享资源的有序访问。 FreeRTOS 提供了多种信号量&#xff0c;按信号量的功能可分为二值信号量、计数型信号量、互斥信…

python版本原因导致的grpcio-tools-1.48.2安装失败

因为工作需要使用python开发grpc客户端&#xff0c;在mac电脑上通以下命令安装python的grpc依赖库总是不成功 pip3 install --no-cache-dir --force-reinstall -Iv grpcio1.48.2 grpcio-tools1.48.2 clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG …

图片在div完全显示

效果图&#xff1a; html代码&#xff1a; <div class"container" style" display: flex;width: 550px;height: 180px;"><div class"box" style" color: red; background-color:blue; width: 50%;"></div><div …