带刷,带刷,刷起来!!!(一)

简介: 带刷,带刷,刷起来!!!

A:::::::::::::::::::通电(最小生成树,Prim,Kruskal)


题目描述

2015 年,全中国实现了户户通电。作为一名电力建设者,小明正在帮助一带一路上的国家通电。


这一次,小明要帮助 n 个村庄通电,其中 1 号村庄正好可以建立一个发电站,所发的电足够所有村庄使用。


现在,这 n 个村庄之间都没有电线相连,小明主要要做的是架设电线连接这些村庄,使得所有村庄都直接或间接的与发电站相通。


小明测量了所有村庄的位置(坐标)和高度,如果要连接两个村庄,小明需要花费两个村庄之间的坐标距离加上高度差的平方,形式化描述为坐标为(x1,y1) 高度为 h1 的村庄与坐标为 (x2,y2) 高度为h2 的村庄之间连接的费用为

高度的计算方式与横纵坐标的计算方式不同。


由于经费有限,请帮助小明计算他至少要花费多少费用才能使这 n 个村庄都通电。


输入描述

输入的第一行包含一个整数 n ,表示村庄的数量。


接下来 n 行,每个三个整数 x,y,h,分别表示一个村庄的横、纵坐标和高度,其中第一个村庄可以建立发电站。


其中,1≤n≤1000,0≤x,y,h≤10000。


输出描述

输出一行,包含一个实数,四舍五入保留 2 位小数,表示答案。


输入输出样例

示例


输入

4
1 1 3
9 9 7
8 8 6
4 5 4

输出

17.41
#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
int n;
struct node{
  int x,y,h;
};
struct node1{
  int qi,zhong;
  double juli;
  node1(int qiqi,int zhongzhong,double julijuli){
    qi=qiqi;
    zhong=zhongzhong;
    juli=julijuli;
  }
};
int fa[10005];
int find(int x){
  if(fa[x]==x) return x;
  return fa[x]=find(fa[x]);
}
bool panduan(int x,int y){
  int tx=find(x);
  int ty=find(y);
  if(tx==ty) return false;
  fa[tx]=ty;
  return true;
}
node dian[1005];
vector<node1> f;
bool cmp(node1 x,node1 y){
  return x.juli<y.juli;
}
int main(){
  cin>>n;
  for(int i=1;i<=n;i++){
    int x,y,h;
    cin>>x>>y>>h;
    dian[i].x=x;
    dian[i].y=y;
    dian[i].h=h; 
  }
  for(int i=1;i<=n;i++){
    for(int j=i+1;j<=n;j++){
      double s= sqrt((dian[i].x-dian[j].x)*(dian[i].x-dian[j].x)+(dian[i].y-dian[j].y)*(dian[i].y-dian[j].y))+(dian[i].h-dian[j].h)*(dian[i].h-dian[j].h);
      f.push_back(node1(i,j,s));
    }
  }
  sort(f.begin(),f.end(),cmp);
  for(int i=1;i<=n;i++){
    fa[i]=i;
  }
  double ans=0;
  int len=f.size();
  for(int i=0;i<len;i++){
    if(panduan(f[i].qi,f[i].zhong)){
      ans+=f[i].juli;
    }
  }
  printf("%0.2f",ans);
  return 0;
} 

B:::::::::::::::::::正约数(唯一分解定理)

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。


定义阶乘  n!=1×2×3×⋅⋅⋅×n。


请问 100! (100 的阶乘)有多少个正约数。

#include <iostream>
using namespace std;
int a[100];
long long ans=1;
int main(){
    for(int i=2;i<=100;i++){
        int n=i;
        for(int j=2;j<=n;j++){
            while(n%j==0 && n!=0){
                a[j]++;
                n=n/j;
            }
        }
    }
    for(int i=1;i<=100;i++){
        ans=(a[i]+1)*ans;
    }
    cout<<ans;
    return 0;
}


C:::::::::::::::::::迷宫(BFS)


题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。


下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。

010000
000100
001001
110000

迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。


对于上面的迷宫,从入口开始,可以按 DRRURRDDDR 的顺序通过迷宫, 一共 10 步。其中 D、U、L、R 分别表示向下、向上、向左、向右走。 对于下面这个更复杂的迷宫(30 行 50 列),请找出一种通过迷宫的方式,其使用的步数最少,在步数最少的前提下,请找出字典序最小的一个作为答案。


请注意在字典序中D<L<R<U。

01010101001011001001010110010110100100001000101010
00001000100000101010010000100000001001100110100101
01111011010010001000001101001011100011000000010000
01000000001010100011010000101000001010101011001011
00011111000000101000010010100010100000101100000000
11001000110101000010101100011010011010101011110111
00011011010101001001001010000001000101001110000000
10100000101000100110101010111110011000010000111010
00111000001010100001100010000001000101001100001001
11000110100001110010001001010101010101010001101000
00010000100100000101001010101110100010101010000101
11100100101001001000010000010101010100100100010100
00000010000000101011001111010001100000101010100011
10101010011100001000011000010110011110110100001000
10101010100001101010100101000010100000111011101001
10000000101100010000101100101101001011100000000100
10101001000000010100100001000100000100011110101001
00101001010101101001010100011010101101110000110101
11001010000100001100000010100101000001000111000010
00001000110000110101101000000100101001001000011101
10100101000101000000001110110010110101101010100001
00101000010000110101010000100010001001000100010101
10100001000110010001000010101001010101011111010010
00000100101000000110010100101001000001000000000010
11010000001001110111001001000011101001011011101000
00000110100010001000100000001000011101000000110011
10101000101000100010001111100010101001010000001000
10000010100101001010110000000100101010001011101000
00111100001000010000000110111000000001000000001011
10000001100111010111010001000110111010101101111000
#include <iostream>
#include <queue> 
using namespace std;
char s[4]={'D','L','R','U'};
int b[4][2]={{1,0},{0,-1},{0,1},{-1,0}}; 
struct node{
    int x;
    int y;
    string a;
    int bushu;
    node(int xx,int yy,string aa,int aaa){
        x=xx;
        y=yy;
        a=aa;
        bushu=aaa;
    }
};
char a[35][55];
bool c[35][55];
queue<node> q;
int guding;
void bfs(int xxx,int yyy){
    c[xxx][yyy]=1;
    q.push(node(xxx,yyy,"",0));
    while(!q.empty()){
        int xx=q.front().x;
        int yy=q.front().y;
        if(xx==29 && yy==49){
            cout<<q.front().a<<endl;
                break;
        }
        for(int i=0;i<4;i++){
            int tx=xx+b[i][0];
            int ty=yy+b[i][1];
            if(tx>=0 && tx<30 && ty>=0 && ty<50 && !c[tx][ty] && a[tx][ty]=='0'){
                q.push(node(tx,ty,q.front().a+s[i],q.front().bushu++));
                c[tx][ty]=1;
            }
        }
        q.pop();
    }
}
int main(){
    for(int i=0;i<30;i++){
        for(int j=0;j<50;j++){
            cin>>a[i][j];
        }
    }
    bfs(0,0);           //(0,0)开始, 
    return 0;
}


目录
打赏
0
0
0
0
5
分享
相关文章
kde
|
20天前
|
Docker镜像加速指南:手把手教你配置国内镜像源
配置国内镜像源可大幅提升 Docker 拉取速度,解决访问 Docker Hub 缓慢问题。本文详解 Linux、Docker Desktop 配置方法,并提供测速对比与常见问题解答,附最新可用镜像源列表,助力高效开发部署。
kde
10751 82
阿里云百炼全新发布Qwen3-Coder-Plu并开源,重磅升级Qwen3-235B
面向全球的智能编程引擎Qwen3-Coder正式开源!首发旗舰版Qwen3-Coder-480B-A35B-Instruct,拥有480B参数、35B有效参数,基于MoE架构,模型在Agentic Coding、浏览器智能操作及基础编码任务中刷新SOTA纪录,并同步开源完整工具链,包括Qwen Code命令行工具、Claude Code集成、VS Code插件及阿里云平台API支持。Qwen3-Coder支持256K上下文,最高可扩展至1M,适用于仓库级代码理解。通过强化学习技术,实现多轮交互与自主决策,大幅提升代码执行成功率。开发者可通过阿里云百炼平台直接体验或调用API使用。
827 0
连续四年,阿里云再获市场份额第一
IDC报告:阿里云再获公有云云工作负载安全市场份额第一!
云上十五年——弹性计算系列客户故事(一)
技术的价值在于解决真实业务挑战。为记录这十五年的共同成长,阿里云特别推出《云上十五年》客户故事专栏,分享与各行业伙伴的实践成果。新起点开启新征程,阿里云持续突破核心技术,让云计算的“澎湃算力”,持续为各行各业提供“创新动力”。
云上十五年——弹性计算系列客户故事(一)
抖音集团基于Flink的亿级RPS实时计算优化实践
本文整理自抖音集团在 Flink Forward Asia 2024 的分享,围绕实时计算链路优化,涵盖现状与挑战、通用优化策略、视频与直播场景专项优化及未来规划,旨在提升稳定性、降低资源消耗并支持复杂业务需求。
313 0
抖音集团基于Flink的亿级RPS实时计算优化实践
Windows安装Claude Code
Claude Code 是 Anthropic 推出的代码助手,支持在 Windows 通过 WSL(Windows Subsystem for Linux)运行。本文介绍如何在 Windows 系统中启用 WSL、安装 Ubuntu 子系统、配置 Python 与 Node.js 环境,并最终安装和运行 Claude Code。内容涵盖 WSL 设置、开发工具安装、依赖配置及常见问题解决方法,助你顺利在本地环境中使用 Claude Code 提升编码效率。
762 2
Windows安装Claude Code
让复杂 AI 应用构建就像搭积木:Spring AI Alibaba Graph 使用指南与源码解读
通过指南和完整的示例项目,你可以快速掌握 Spring AI Alibaba Graph 的使用方法,并在实际项目中高效地构建智能化应用。
624 22
淘天AB实验分析平台Fluss落地实践:更适合实时OLAP的消息队列
淘天集团数据开发团队基于Fluss构建新一代实时数仓,解决数据消费冗余、探查困难及大State运维难题。Fluss融合列存与实时更新能力,支持列裁剪、KV点查、Delta Join及湖流一体,显著降低IO与计算资源消耗,提升作业稳定性与数据探查效率。已在淘天AB实验平台落地,覆盖搜索、推荐等核心业务,通过618大促验证,实现千万级流量、秒级延迟,资源消耗降低30%,State缩减超100TB。未来将持续深化湖仓架构,拓展AI场景应用。
425 4
淘天AB实验分析平台Fluss落地实践:更适合实时OLAP的消息队列
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问