蓝桥杯刷题十一
创始人
2025-05-28 03:14:30

1.完全二叉树的权值

暴力去解就行了

#include 
using namespace std;
const int N=1e5+10;
int a[N];
long long mx=-0x3f3f3f3f;
int main()
{int n;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];int depth=0;for(int i=1,d=1;i<=n;i*=2,d++){long long sm=0;for(int j=i;jmx){depth=d;mx=sm;}}cout<

2.地牢大师

三维数组的bfs

#include 
using namespace std;
const int N=110;
struct node
{int x,y,z;
};
char g[N][N][N];
int dist[N][N][N];
int dx[]={1,-1,0,0,0,0},dy[]={0,0,1,-1,0,0},dz[]={0,0,0,0,1,-1};
int l,r,c;
int sx,sy,sz;
int ex,ey,ez;
int bfs()
{queue q;q.push({sx,sy,sz});dist[sx][sy][sz]=0;while(q.size()){node t=q.front();q.pop();for(int i=0;i<6;i++){int x=t.x+dx[i];int y=t.y+dy[i];int z=t.z+dz[i];// cout<l||y<1||y>r||z<1||z>c)continue;//printf("%d\n",dist[x][y][z]!=-1||g[x][y][z]=='#');if(dist[x][y][z]!=-1||g[x][y][z]=='#')continue;q.push({x,y,z});dist[x][y][z]=dist[t.x][t.y][t.z]+1;if(g[x][y][z]=='E')return dist[x][y][z];}}return -1;}
int main()
{while(cin>>l>>r>>c){if(l==0&&r==0&&c==0)break;memset(g,0,sizeof g);memset(dist,-1,sizeof dist);for(int i=1;i<=l;i++)for(int j=1;j<=r;j++)for(int k=1;k<=c;k++){cin>>g[i][j][k];if(g[i][j][k]=='S')sx=i,sy=j,sz=k;if(g[i][j][k]=='E')ex=i,ey=j,ez=k;}int cnt=bfs();if(cnt==-1){puts("Trapped!");}else{printf("Escaped in %d minute(s).\n",cnt);}}return 0;
}

3.全球变暖

这个就是找连通块个数 找连通块个数的话就是bfs就可以做的 但是他需要找有没有任意一个#是被其他#包起来的,那么只需要找到某个点上下左右都没有 . 就行了 这样的话就找出来不会被淹没的岛,反过来就是找被淹没的岛

找到每个连通块中的元素数目和临近海边的元素数目,若二者相等,则:此连通块会被淹没

#include 
using namespace std;
typedef pair PII;
const int N=1010;
char g[N][N];
bool st[N][N];
int dx[]={0,0,1,-1},dy[]={1,-1,0,0};
int n;
int res;
int bfs(int x,int y)
{int a=0;int b=0;queue q;st[x][y]=true;q.push({x,y});while(q.size()){auto t=q.front();q.pop();a++;bool fl=true;for(int i=0;i<4;i++){int x1=t.first+dx[i],y1=t.second+dy[i];if(x1<0||x1>=n||y1<0||y1>=n||st[x1][y1])continue;if(g[x1][y1]=='.'){fl=false;continue;}q.push({x1,y1});st[x1][y1]=true;}if(!fl) b++;}return a==b;
}
int main()
{cin>>n;for(int i=0;i>g[i];for(int i=0;i

4.大臣的旅费

求树的直径

#include 
#include 
#include 
#include using namespace std;typedef long long LL;
const int N = 1E5 + 10, M = 2 * N;int n;
int h[M], e[M], ne[M], w[M], idx;
int dist[N];
bool st[N];void add(int a, int b, int c) {e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx++;
}void dfs(int u, int father, int distance) {dist[u] = distance;for (int i = h[u]; i != -1; i = ne[i]) {int j = e[i];if (j != father) dfs(j, u, distance + w[i]);}
}int main() {scanf("%d", &n);memset(h, -1, sizeof h);for (int i = 0; i < n; i++) {int a, b, c;scanf("%d%d%d", &a, &b, &c);add(a, b, c), add(b, a, c);}dfs(1, -1, 0);int maxidx = 0, maxdist = 0;for (int i = 1; i <= n; i++) {if (dist[i] > maxdist) {maxdist = dist[i];maxidx = i;}}memset(dist, 0, sizeof dist);dfs(maxidx, -1, 0);maxdist = 0;for (int i = 1; i <= n; i++) {maxdist = max(dist[i], maxdist);}printf("%lld\n", (LL) maxdist * 10 + (LL) maxdist * (maxdist + 1) / 2);return 0;
}

5.股票买卖2

贪心就可以做了 在把所有上升区间都加上就是ans

#include 
using namespace std;
const int N=1e5+10;
int a[N];
int n;
int main()
{int res=0;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=2;i<=n;i++)if(a[i]-a[i-1]>0)res+=a[i]-a[i-1];cout<

6.货仓选址

很经典的题,点去取中位数的点就行了

#include 
using namespace std;
const int N=100100;
int a[N],n,i,ans,sum;
int main()
{cin>>n;for (i=1;i<=n;i++)cin>>a[i];sort(a+1,a+1+n);//排序int sum=a[n/2+1];//中位数for (i=1;i<=n;i++)ans=ans+abs(a[i]-sum);//统计和中位数之间的差cout<

7.糖果传递

上面那题的扩展

#include
using namespace std;
typedef long long ll;
const int N=1e6+10;
int n;
int a[N];
ll s[N],c[N];
ll trans(int n,int a[])
{for(int i=1;i<=n;i++) s[i]=s[i-1]+(ll)a[i];//求前缀和后面用if(s[n]%n) return -1;//假如不能均分ll avg=s[n]/n;//平均数c[1]=0;//第一个是0for(int i=2;i<=n;i++) c[i]=s[i-1]-(ll)(i-1)*avg;//图片上有说sort(c+1,c+n+1);//排个序ll res=0;ll cavg;//中位数cavg=c[n/2+1];//奇数直接就是中间那个 偶数在中间前面和中间后面的区间都可以for(int i=1;i<=n;i++) res+=abs(c[i]-cavg);//答案就是每个数减去中位数return res;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&a[i]);ll t=trans(n,a);//将a进行转换printf("%lld\n",t);return 0;
}

相关内容

热门资讯

美团,释放3大信号 美团,释放... 美团又有大动作。5月26日,美团发布2025年第一季度财报:营收866亿元(人民币),同比增长18%...
V观财报|赛力斯:1-5月问界... 【V观财报|赛力斯:1-5月问界M9销量同比增19.46%】赛力斯3日发布5月产销快报显示,5月新能...
断供阴云下,EDA概念股暴涨!... 本文来源:时代周报 作者:朱成呈在海外三大EDA巨头相继传出“断供”消息后,EDA概念股遭市场热炒,...
中信银行:获准筹建信银金融资产... 6月3日,中信银行股份有限公司(中信银行,601998.SH)公告,近日,本行收到《国家金融监督管理...
新集能源:董事长王志根因年龄原... 6月3日,中煤新集能源股份有限公司(新集能源,601918.SH)公告,6月3日,公司董事会收到公司...
日赚超235万,净利率高达38... 文 /八真来源 / 节点财经恰逢7周年,擅长营销的度小满又放了个“大招”!上月底,由度小满和江苏卫视...
可灵与谷歌贴身肉搏 可灵与谷歌... AI视频生成赛道已经肉眼可见地“卷”出天际了。大厂背书的产品更新迭代的速度快到简直让人眼花缭乱。作为...
药师帮:与越疆科技签订战略合作... 新京报贝壳财经讯 6月3日,药师帮(09885.HK)公告,于2025年6月3日,本集团与越疆科技(...
雷军:小米YU7售价不可能23... 6月3日,小米创始人雷军在小米投资者大会上披露,最新推出的小米YU7售价不可能是网传的23.59万元...
实探:黄金火爆“带旺”铂金?铂... 近段时间以来,黄金价格开启高位震荡行情。6月2日,国际金价创三周新高,原因是美元走弱、地缘政治风险和...
实控人上市前代持股份,这两家创... 近日,创业板上市公司凯龙高科因未准确披露实控人臧志成于公司申报IPO前为实际出资人孙巧妹代持股份情况...
百利电气:关注到“可控核聚变”... 新京报贝壳财经讯 6月3日,百利电气发布股票交易异常波动公告称,公司关注到“可控核聚变”热点概念。经...
面临巨大政策不确定性 美企对经... 美国政府肆意对贸易伙伴挥舞“关税大棒”,在美国国内遭到普遍质疑。贸易冲突导致美国企业界和业内人士对经...
龙虎榜丨3.97亿资金抢筹沪农... 6月3日,上证指数上涨0.43%,深证成指上涨0.16%,创业板指上涨0.48%。盘后龙虎榜数据显示...
华生科技:监事及高级管理人员拟... 新京报贝壳财经讯 6月3日,华生科技公告,因个人资金需求,公司财务负责人范跃锋、副总经理范跃飞计划通...
利率下行中的投资之道 利率下行... 中国股市每一轮大行情几乎都伴随着无风险利率下行,一方面提升了股市对居民资金的吸引力,另一方面也带来了...
通宵和AI“开车”,年轻人被榨... 大二学生许柠第一次在AI身上感受到了“纵欲过度”。“每天一睁眼就是聊,除了四五个小时的睡觉时间,我连...
2025中国独角兽榜单揭晓,成... 微成都报道近日,《中国独角兽排行榜2025》重磅揭晓。截至2025年5月,中国独角兽总规模达8.46...
V观财报|大族激光:大族数控递... 【V观财报|大族激光:大族数控递交H股发行并上市申请】大族激光3日公告,近日接到控股子公司深圳市大族...
突发利好!银行股飙涨再创新高,... 目前来看,今天的行情延续了五月份的结构。哑铃策略的一端-银行板块加速上涨创出新高,另一端-题材炒作强...
全球AI原生企业,如何演进? 全球 AI 原生企业正经历着深刻的演进。起初,它们如同新生的幼苗,在技术的土壤中艰难扎根,凭借对 A...
创新药概念持续走强,舒泰神年内... 6月3日,创新药概念午后走强,舒泰神、冠昊生物20cm涨停,九芝堂、千红制药、华森制药、哈三联等多股...
雷军连发三问,点赞网友评论!小... 6月3日下午,小米集团港股股价走高,收盘涨3.1%,最新市值1.38万亿港元。据澎湃新闻报道,6月3...
中国船舶:选举胡贤甫担任公司董... 6月3日,中国船舶工业股份有限公司(中国船舶,600150.SH)公告,公司于6月3日召开了公司第九...
先通医药赴港IPO:一款诊断性... 近日,港交所网站显示,北京先通国际医药科技股份有限公司(简称“先通医药”)已递交上市申请,拟主板挂牌...
各地重大项目建设跑出“加速度”... 重大项目是经济发展的“压舱石”和动力源。二季度以来,地方积极推进重大项目建设,对投资的带动作用明显。...
海南海药:派恩加滨及氟非尼酮两... 6月3日,海南海药股份有限公司(海南海药,000566.SZ)发布股票交易异常波动公告,公司于5月2...