【蓝桥杯】国赛普及-

题目列表 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

P9420 [蓝桥杯 2023 国 B] 子 2023 / 双子数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

#include<bits/stdc++.h>
using ll=unsigned long long;
#define int ll
const int N=2e5+10;
int k=0;
std::string s;
int a,b,c,d;
void solve()
{char op;std::cin>>op;if(op=='A'){std::string s;for(int i=1;i<=2023;i++){s+=std::to_string(i);	}	//std::cout<<s;//std::cout<<5484660609<<'\n';ll ans=0;int len=s.length();std::vector<int> v1;std::vector<int> v2;std::vector<int> v3;for(int i=0;i<len;i++){if(s[i]=='2') v1.push_back(i);if(s[i]=='0') v2.push_back(i);if(s[i]=='3') v3.push_back(i);}for(int i=0;i<v1.size();i++){for(int j=0;j<v2.size();j++){if(v2[j]<=v1[i]) continue;for(int k=i+1;k<=v1.size();k++){if(v1[k]<=v2[j]) continue;for(int p=0;p<v3.size();p++){if(v3[p]<=v1[k]) continue;ans++;}}}}std::cout<<ans<<'\n';}
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
} 

答案算出来是5484660609。

把质数存下来枚举判断即可,我不记得筛质数的板子所以写了个isprime。。

#include<bits/stdc++.h>
using ll=unsigned long long;
#define int ll
const int N=2e5+10;
int k=0;
std::string s;
int a,b,c,d;
bool isprime(int x)
{for(int i=2;i<=x/i;i++){if(x%i==0) return false;}return true;
}
void solve()
{char op;std::cin>>op;if(op=='A'){std::string s;for(int i=1;i<=2023;i++){s+=std::to_string(i);	}	//std::cout<<s;std::cout<<5484660609<<'\n';ll ans=0;int len=s.length();std::vector<int> v1;std::vector<int> v2;std::vector<int> v3;for(int i=0;i<len;i++){if(s[i]=='2') v1.push_back(i);if(s[i]=='0') v2.push_back(i);if(s[i]=='3') v3.push_back(i);}for(int i=0;i<v1.size();i++){for(int j=0;j<v2.size();j++){if(v2[j]<=v1[i]) continue;for(int k=i+1;k<=v1.size();k++){if(v1[k]<=v2[j]) continue;for(int p=0;p<v3.size();p++){if(v3[p]<=v1[k]) continue;ans++;}}}}std::cout<<ans<<'\n';}else{
//		for(int i=1;i<=110000000;i++)
//		{
//			if(i*i>=23333333333333)
//			{
//				std::cout<<i;
//				break;
//			}
//		}
//4830549std::vector<int> v;for(int i=2;i<=5000000;i++){if(isprime(i)) v.push_back(i);}//std::cout<<v.size()<<"xxx\n";ll ans=0;for(int i=0;i<v.size();i++){for(int j=i+1;j<v.size();j++){if((double)v[i]*v[i]*v[j]*v[j]<=23333333333333&&v[i]*v[i]*v[j]*v[j]>=2333) ans++;if((double)v[i]*v[i]*v[j]*v[j]>23333333333333) break;}}std::cout<<ans<<'\n';//947293} 
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
} 

最后算出来是947293,偶对要开double,这题会爆ull,原来double比unsigned longlong大啊。

补个线性筛版本,快很多。

#include<bits/stdc++.h>
using ll=unsigned long long;
#define int ll
const int N=5e6+10;
int k=0;
std::string s;
bool st[N];
void solve()
{std::vector<int> v;for(int i=2;i<=5000000;i++){if(!st[i]) v.push_back(i);for(int j=0;j<v.size()&&v[j]<=5000000/i;j++){st[v[j]*i]=1;}}//std::cout<<v.size()<<"xxx\n";ll ans=0;for(int i=0;i<v.size();i++){for(int j=i+1;j<v.size();j++){if((double)v[i]*v[i]*v[j]*v[j]<=23333333333333&&v[i]*v[i]*v[j]*v[j]>=2333) ans++;if((double)v[i]*v[i]*v[j]*v[j]>23333333333333) break;}}std::cout<<ans<<'\n';//947293
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
} 

P8605 [蓝桥杯 2013 国 AC] 网络寻路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

 DFS会t一个点。

#include<bits/stdc++.h>
using ll=unsigned long long;
using i128=__int128;const int N=1e5+10;
std::vector<int> g[N];
ll ans=0;
bool st[N];
void dfs(int fa,int x,int cnt)
{if(cnt==2){for(auto i:g[x]){if(!st[i]){ans++;//	break;}}return ;}if(cnt>2) return ;for(auto i:g[x]){if(i==fa) continue;if(st[i]) continue;st[i]=1;dfs(fa,i,cnt+1);st[i]=0;}
}
void solve()
{int n,m;std::cin>>n>>m;while(m--){int u,v;std::cin>>u>>v;g[u].push_back(v);g[v].push_back(u);}for(int i=1;i<=n;i++){dfs(i,i,0);}std::cout<<ans<<'\n';
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
} 

实际上经过两个点,我们直接枚举边就好了,对于一条边的两个端点如果都还连着别的点,情况数就加上。

#include<bits/stdc++.h>
using ll=unsigned long long;
using i128=__int128;const int N=1e5+10;ll ans=0;
int u[N],v[N];
int rd[N];
void solve()
{int n,m;std::cin>>n>>m;for(int i=1;i<=m;i++){std::cin>>u[i]>>v[i];rd[v[i]]++,rd[u[i]]++;}for(int i=1;i<=m;i++){if(rd[v[i]]>1&&rd[u[i]]>1){ans+=(rd[v[i]]-1)*(rd[u[i]]-1);}}ans*=2;std::cout<<ans<<'\n';
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
} 

P8738 [蓝桥杯 2020 国 C] 天干地支 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

就是一个模拟题,静下心模拟就好了。 

题目说1900是一个庚子年,1900%60=40,第一个庚子年是0040,然后%10,%12会发现0000是一个庚申年,然后随意输入一个年份在0000的基础上模拟就好。

#include<bits/stdc++.h>
using ll=unsigned long long;
using i128=__int128;
#define int ll 
const int N=1e5+10;std::string a[]={"jia","yi","bing","ding","wu","ji","geng","xin","ren","gui"};
std::string b[]={"zi","chou","yin","mao","chen","si","wu","wei","shen","you","xu","hai"};
void solve()
{int y;std::cin>>y;int nowa=6,nowb=8;y%=60;int x=y%10,p=y%12;std::cout<<a[(nowa+x)%10]<<b[(nowb+p)%12]; 
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
} 

P8697 [蓝桥杯 2019 国 C] 最长子序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

 完全用不上dp,指针模拟即可。

#include<bits/stdc++.h>
using ll=unsigned long long;
using i128=__int128;
//#define int ll 
const int N=1e5+10;void solve()
{std::string s,t;std::cin>>s>>t;int cnt=0;for(int i=0;i<s.length();i++){if(s[i]==t[cnt]) cnt++;}std::cout<<cnt<<'\n';
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
} 

P8654 [蓝桥杯 2017 国 C] 合根植物 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

这题想到并查集就是个板子题了,然后就是最后数集合的个数就直接数有几个根即可。

考前还是要复习一下并查集的板子。

#include<bits/stdc++.h>
using ll=unsigned long long;
using i128=__int128;
//#define int ll 
const int N=1e6+10;
int p[N];
ll find(int x)
{if(p[x]!=x){p[x]=find(p[x]);}return p[x];	
}
void merge(int a,int b)
{int pa=find(a),pb=find(b);if(pa!=pb) {p[pa]=pb;}
}
void solve()
{int n,m;std::cin>>m>>n;for(int i=1;i<=m*n;i++){p[i]=i;}int k;std::cin>>k;while(k--){int a,b;std::cin>>a>>b;merge(a,b);}ll ans=0;for(int i=1;i<=m*n;i++){if(p[i]==i) ans++;}std::cout<<ans<<'\n';
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
} 

P8604 [蓝桥杯 2013 国 C] 危险系数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题意就是输出a到b中间有几个点是必走的。

这样,我们数出a到b一共有几条路,然后对每次正确的路经过的点计数。统计有多少个点经过的次数与总路线数相同就必走的点。

#include<bits/stdc++.h>
using ll=unsigned long long;
using i128=__int128;
//#define int ll 
const int N=1e6+10;
std::vector<int> g[N];
int s,e;
ll cnt=0;
bool st[N];
int c[N];
int n,m;
void dfs(int x)
{if(x==e){cnt++;for(int i=1;i<=n;i++){if(st[i]) c[i]++;}return ;}for(auto i:g[x]){if(st[i]) continue;st[i]=1;dfs(i);st[i]=0;}
}
void solve()
{std::cin>>n>>m;while(m--){int a,b;std::cin>>a>>b;g[a].push_back(b);g[b].push_back(a);}//u到v必须经过的点 std::cin>>s>>e;st[s]=1;dfs(s); if(cnt==0){std::cout<<-1<<'\n';return ;}ll ans=0;for(int i=1;i<=n;i++){if(c[i]==cnt) ans++;}ans-=2;std::cout<<ans<<'\n';
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
} 

 P8615 [蓝桥杯 2014 国 C] 拼接平方数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

模拟即可。

拼接平方数的定义是,这个数本身是完全平方数,还能拆成2个完全平方数。

#include<bits/stdc++.h>
using ll=unsigned long long;
using i128=__int128;
//#define int ll 
const int N=1e6+10;
std::vector<int> g[N];
int s,e;
ll cnt=0;
bool is(int x)
{int t=std::sqrt(x);return t*t==x;
}
void solve()
{int a,b;std::cin>>a>>b;for(int i=a;i<=b;i++){std::string s=std::to_string(i);for(int j=1;j<s.length();j++){int x=i/std::pow(10,j);int y=i%((int)std::pow(10,j));if(x==0||y==0) continue;if(is(i)&&is(x)&&is(y)){std::cout<<i<<'\n';break;}}}}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
} 

P8641 [蓝桥杯 2016 国 C] 赢球票 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

模拟即可。

#include<bits/stdc++.h>
using ll=long long;
using ull=unsigned long long;
#define fir first
#define sec second
#define int llconst int N=1e6+10;
const int mod=1e9+7;int a[N];
bool st[N];
void solve()
{int n;std::cin>>n;for(int i=0;i<n;i++){std::cin>>a[i];}ll maxn=0,now=1,cnt=1;for(int i=0;i<n;i++){	memset(st,0,sizeof st);ll s=0;cnt=1,now=i;while(1){while(st[now%n]||a[now%n]!=cnt){	if(now>100000) break;if(st[now%n]) {now++;continue;}now++,cnt++;}if(a[now%n]==cnt&&st[now%n]==0){st[now%n]=1;s+=a[now%n];cnt=1;now++;}else break;}//std::cout<<i<<" "<<s<<'\n';maxn=std::max(maxn,s);}std::cout<<maxn<<'\n';
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
}

P9421 [蓝桥杯 2023 国 B] 班级活动 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

一点点思维。

重复的是必须要改的,然后缺的队数也是至少要改的,取个最大值即可。 

#include<bits/stdc++.h>
using ll=long long;
using ull=unsigned long long;
#define fir first
#define sec second
#define int llconst int N=1e6+10;
const int mod=1e9+7;int a[N];
void solve()
{int n;std::cin>>n;std::map<int,int> mp;for(int i=1;i<=n;i++){std::cin>>a[i];mp[a[i]]++;}ll ans=0,cnt=0,p=0;for(auto i:mp){if(i.sec>=2){ans+=i.sec-2;//至少要改这么多 cnt++;//有几队 }else{p++;} }//凑好了cnt队,必须要改的 std::cout<<std::max((n-cnt*2)/2,ans)<<'\n';
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;//std::cin>>t;while(t--){solve();}return 0;
}

P8700 [蓝桥杯 2019 国 B] 解谜游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

我写不出来看的题解感觉好简单,有点接近cf思维题了。

P8700 [蓝桥杯 2019 国 B] 解谜游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

#include<bits/stdc++.h>
using ll=long long;
using ull=unsigned long long;
#define fir first
#define sec second
#define int llconst int N=1e6+10;
const int mod=1e9+7;int a[N];
bool st[N];
void solve()
{std::string a,b,c;std::cin>>a>>b>>c;std::map<char,int> mp;for(int i=0;i<4;i++){mp['G']=mp['Y']=mp['R']=0;mp[a[i]]++,mp[b[i]]++,mp[c[i]]++;mp[a[i+4]]++,mp[a[i+8]]++;				mp[b[i+4]]++;//std::cout<<mp['G']<<" "<<mp['R']<<" "<<mp['Y']<<'\n';if(mp['G']==3&&mp['R']==2&&mp['Y']==1){continue;}std::cout<<"NO\n";return ;} std::cout<<"YES\n";
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int t=1;std::cin>>t;while(t--){solve();}return 0;
}

P8692 [蓝桥杯 2019 国 C] 数正方形 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

 推结论。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod = 1e9+7;
int n,ans;
signed main()
{cin>>n;for(int i = 1;i<n;i++)ans+=i*(n-i)*(n-i),ans%=mod;cout<<ans;return 0;
}

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

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

相关文章

【传知代码】无监督动画中关节动画的运动表示-论文复现

文章目录 概述动画技术的演进原理介绍核心逻辑环境配置/部署方式小结 本文涉及的源码可从无监督动画中关节动画的运动表示该文章下方附件获取 概述 该文探讨了动画在教育和娱乐中的作用&#xff0c;以及通过数据驱动方法简化动画制作的尝试。近期研究通过无监督运动转移减少对…

Java进阶学习笔记30——BigDecimal

BigDecimal&#xff1a; 用于解决浮点型运算的&#xff0c;出现结果失真的问题。 运行结果&#xff1a; package cn.ensource.d4_bigdecimal;import java.math.BigDecimal;public class Test {public static void main(String[] args) {// 目标&#xff1a;了解BigDecimal类do…

8、Qt—Log4Qt使用小记2(每日产生文件)

前言&#xff1a; 开发平台&#xff1a;Win10 64位 开发环境&#xff1a;Qt Creator 13.0.0 构建环境&#xff1a;Qt 5.15.2 MSVC2019 64位 例如&#xff1a;上一篇文章中笔者记录了Log4qt的编译及配置使用&#xff0c;这篇文章重点写下每天产生文件到指定文件夹中&#xff0c;…

5.1 Go 函数的定义与调用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Spring Boot集成testcontainers快速入门Demo

1.什么是testcontainers&#xff1f; Testcontainers 是一个用于创建临时 Docker 容器进行单元测试的 Java 库。当我们想要避免使用实际服务器进行测试时&#xff0c;它非常有用。&#xff0c;官网介绍称支持50多种组件。​ 应用场景 数据访问层集成测试&#xff1a; 使用My…

ubuntu20安装Labelme

conda create --namelabelme python3 进入conda环境 source activate labelme 安装labelme pip install labelme 遇到网络问题 使用清华源 pip install labelme -i https://pypi.tuna.tsinghua.edu.cn/simple/ 输入labelme 打开

Google的MLP-MIXer的复现(pytorch实现)

Google的MLP-MIXer的复现&#xff08;pytorch实现&#xff09; 该模型原论文实现用的jax框架实现&#xff0c;先贴出原论文的代码实现&#xff1a; # Copyright 2024 Google LLC. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may …

GEC210编译环境搭建

一、下载编译工具链 下载&#xff1a;点击跳转 二、解压到 /usr/local/arm 目录 sudo mv gec210.zip /usr/local/arm cd /usr/local/arm sudo unzip gec210.zip 三、添加到环境变量 PATH/usr/local/arm/arm-cortex_a8-linux-gnueabi-4.7.3/bin:$PATH 四、测试验证 在终端…

python数据分析-基于数据挖掘对APP评分的预测

前言 当我们谈论关于APP用户分析与电子商务之间的联系时&#xff0c;机器学习在这两个领域的应用变得至关重要。App用户分析和电子商务之间存在着密切的关联&#xff0c;因为用户行为和偏好的深入理解对于提高用户体验、增加销售以及优化产品功能至关重要。故本文基于K-近邻模…

OFDM 802.11a的FPGA实现(二十)使用AXI-Stream FIFO进行跨时钟(含代码)

目录 1.前言 2.AXI-Stream FIFO时序 3.AXI-Stream FIFO配置信息 4.时钟控制模块MMCM 5.ModelSim仿真 6.总结 1.前言 至此&#xff0c;通过前面的文章讲解&#xff0c;对于OFDM 802.11a的发射基带的一个完整的PPDU帧的所有处理已经全部完成&#xff0c;其结构如下图所示&…

CAN总线简介

1. CAN总线概述 1.1 CAN定义与历史背景 CAN&#xff0c;全称为Controller Area Network&#xff0c;是一种基于消息广播的串行通信协议。它最初由德国Bosch公司在1983年为汽车行业开发&#xff0c;目的是实现汽车内部电子控制单元&#xff08;ECUs&#xff09;之间的可靠通信。…

03自动辅助导航驾驶NOP其实就是NOA

蔚来NOP是什么意思&#xff1f;蔚来NOP是啥 蔚来NOP的意思就是NavigateonPilot智能辅助导航驾驶&#xff0c;也就是大家俗称的高阶辅助驾驶&#xff0c;在车主设定好导航路线&#xff0c;并且符合开启NOP条件的前提下&#xff0c;蔚来NOP可以代替驾驶员完成从A点到B点的智能辅助…

【二叉树】:LeetCode:100.相同的数(分治)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;初阶初阶结构刷题 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 1.问题描述&#xff1a; 2.问题分析&#xff1a; 二叉树是区分结构的&#xff0c;即左右子树是不一…

[JDK工具-6] jmap java内存映射工具

文章目录 1. 介绍2. 主要选项3. 生成java堆转储快照 jmap -dump4. 显示堆详细信息 jmap -heap pid5. 显示堆中对象统计信息 jmap -histo pid jmap(Memory Map for Java) 1. 介绍 位置&#xff1a;jdk\bin 作用&#xff1a; jdk安装后会自带一些小工具&#xff0c;jmap命令(Mem…

Kafka SASL_SSL集群认证

背景 公司需要对kafka环境进行安全验证,目前考虑到的方案有Kerberos和SSL和SASL_SSL,最终考虑到安全和功能的丰富度,我们最终选择了SASL_SSL方案。处于知识积累的角度,记录一下kafka SASL_SSL安装部署的步骤。 机器规划 目前测试环境公搭建了三台kafka主机服务,现在将详…

H3CNE-7-TCP和UDP协议

TCP和UDP协议 TCP&#xff1a;可靠传输&#xff0c;面向连接 -------- 速度慢&#xff0c;准确性高 UDP&#xff1a;不可靠传输&#xff0c;非面向连接 -------- 速度快&#xff0c;但准确性差 面向连接&#xff1a;如果某应用层协议的四层使用TCP端口&#xff0c;那么正式的…

智能家居完结 -- 整体设计

系统框图 前情提要: 智能家居1 -- 实现语音模块-CSDN博客 智能家居2 -- 实现网络控制模块-CSDN博客 智能家居3 - 实现烟雾报警模块-CSDN博客 智能家居4 -- 添加接收消息的初步处理-CSDN博客 智能家居5 - 实现处理线程-CSDN博客 智能家居6 -- 配置 ini文件优化设备添加-CS…

【MySQL】聊聊count的相关操作

在平时的操作中&#xff0c;经常使用count进行操作&#xff0c;计算统计的数据。那么具体的原理是如何的&#xff1f;为什么有时候执行count很慢。 count的实现方式 select count(*) from student;对于MyISAM引擎来说&#xff0c;会把一个表的总行数存储在磁盘上&#xff0c;…

Linux下Vision Mamba环境配置+多CUDA版本切换

上篇文章大致讲了下Vision Mamba的相关知识&#xff0c;网上关于Vision Mamba的配置博客太多&#xff0c;笔者主要用来整合下。 笔者在Win10和Linux下分别尝试配置相关环境。 Win10下配置 失败 \textcolor{red}{失败} 失败&#xff0c;最后出现的问题如下&#xff1a; https://…