WAJUEJI which home strong! 1100 (广搜)

在贫穷的山沟里,姐弟二人同时考上了大学,家庭的拮据让姐姐面临放弃学业的选择。然而,弟弟为了供姐姐继续深造,独自外出打工。面对生活的艰辛,他不仅克服重重困难,还利用姐姐的帮助成功前往蓝翔技校学习挖掘机技术。这个故事讲述了亲情的力量,以及在逆境中追求梦想的重要性。

WAJUEJI which home strong!

时间限制:1000 ms  |           内存限制:65535 KB
难度:2
描述

在一个山沟里,姐弟俩同时考上了大学。但由于家里拮据,所以这并不是什么好消息。父亲对孩子说:我就是砸锅卖铁也要把你们姐俩供出来。 当时的姐姐已经决定放弃上学的机会。 没想到第二天天还没亮,弟弟就偷偷带著几件破衣服和几个乾巴馒头走了,在姐姐枕边留下一个纸条: 姐,你别愁了,考上大学不容易,我出去打工供你。弟。 姐姐握著那张字条,趴在炕上,失声痛哭。 那一年,弟弟17岁,姐姐20岁。姐姐用父亲满村子借的钱和弟弟在工地裏搬水泥挣的钱终於读到了大三。 一天姐姐正在寝室看书,同学跑进来对姐姐说,有个老乡在找你。姐姐很纳闷,走出去后,远远地看见弟弟,穿著满身是水泥和沙子的工作服。姐姐说,你怎和我同学说你是我老乡啊?他笑著说,你看我穿的这样,说是你弟,你同学还不笑话你? 姐姐鼻子一酸,眼泪就落了下来。弟弟赶忙为姐姐擦掉眼泪,说:姐,你别哭,我这次来是想让你帮我打听一下,学挖掘机哪家强?

在你的帮助下,弟弟踏上了去蓝翔的路。

那么问题就来了。

输入
第一个数T,T组测试数据。
两个数 n, m; ( 0< n , m <= 100 ) 表示一个h行m列的二维地图。
接下来n行每行m 个字符。
‘s’ 表示弟弟目前所在位置。
‘# ’表示此处为一座山。为了节省体力,不从此处通行。
从‘A’-‘Z’表示各地的经济水平,对应1-26,路过对应字符的地区需要交对应的生活费。
‘l’表示蓝翔技校的所在地。
s 与 l 均为小写字母。
弟弟只能走四个方向。
输出
输出一个数表示弟弟到达蓝翔需要的生活费最小是多少。
如果不能到达,输出 -1。
样例输入
3
3 5
#sVGF
A##ZA
lCDBC
3 3
sAB
ABS
ABl
3 3
s#B
###
ABl
样例输出
48
4
-1
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;
int n,m,sx,sy,ex,ey;
struct zz
{
    int x,y,l;
    friend bool operator<(zz a,zz b)
    {
        return a.l>b.l;
    }
}f1,f2;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
char a[110][110];
int b[110][110];
void bfs(int x,int y)
{
    memset(b,0,sizeof(b));
    priority_queue<zz>qq; 
    f1.x=x;f1.y=y;f1.l=0;
    qq.push(f1);
    b[x][y]=1;
    while(!qq.empty())
    {
        f1=qq.top();
        qq.pop();
        for(int i=0;i<4;i++)
        {
            f2.x=dx[i]+f1.x;
            f2.y=dy[i]+f1.y;
            if(f2.x>0&&f2.x<=n&&f2.y>0&&f2.y<=m&&!b[f2.x][f2.y]&&a[f2.x][f2.y]!='#')
            {
            	if(a[f2.x][f2.y]=='l')
		        {           
		            printf("%d\n",f1.l);
		            return;
		        }
                b[f2.x][f2.y]=1;
                if(a[f2.x][f2.y]>='A'&&a[f2.x][f2.y]<='Z')
                    f2.l=f1.l+(a[f2.x][f2.y]-'A'+1);
                    qq.push(f2);
            }
        }
    }
    printf("-1\n");
}
int main()
{
	int t;
	scanf("%d",&t); 
    while(t--)
    {
	    scanf("%d%d",&n,&m);
        int i,j;
        for(i=1;i<=n;i++)
        {
            scanf("%s",a[i]+1);
        }
        for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            if(a[i][j]=='s')
            {
                sx=i;
				sy=j;
            }
        }
        bfs(sx,sy);
    }
    return 0;
}
 
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;
int n,m,sx,sy;
struct zz
{
    int x,y,l;
    friend bool operator<(zz a,zz b)
    {
        return a.l>b.l;
    }
}f1,f2;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
char a[110][110];
int b[110][110];
void bfs(int x,int y)
{
    memset(b,0,sizeof(b));
    priority_queue<zz>qq; 
    f1.x=x;f1.y=y;f1.l=0;
    qq.push(f1);
    b[x][y]=1;
    while(!qq.empty())
    {
        f1=qq.top();
        qq.pop();
        if(a[f1.x][f1.y]=='l')
       	{           
   			printf("%d\n",f1.l);
       		return ;
		}
        for(int i=0;i<4;i++)
        {
            f2.x=dx[i]+f1.x;
            f2.y=dy[i]+f1.y;
            f2.l=f1.l;
            if(f2.x>0&&f2.x<=n&&f2.y>0&&f2.y<=m&&!b[f2.x][f2.y]&&a[f2.x][f2.y]!='#')
            {
            	
                b[f2.x][f2.y]=1;
                if(a[f2.x][f2.y]>='A'&&a[f2.x][f2.y]<='Z')
                    f2.l+=(a[f2.x][f2.y]-'A'+1);
                    qq.push(f2);
            }
        }
    }
    printf("-1\n");
}
int main(){
	int t;
	scanf("%d",&t);
    while(t--)
    {
		scanf("%d%d",&n,&m);
        int i,j;
        for(i=1;i<=n;i++)
        {
            scanf("%s",a[i]+1);
        }
        for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            if(a[i][j]=='s')
            {
                sx=i;
				sy=j;
            }
        }
        bfs(sx,sy);
    }
    return 0;
}


yolov8使用代码将jpg,png标注完成的xml文件转化为yolo的txt文件,结合代码将原本路径,生成路径,种类文件夹名称等个人信息用特殊标记表示区分,并加以注释,train: C:\Users\Administrator\PycharmProjects\ultralytics\Construction Site Safety.v30-raw-images_latestversion.yolov8\train\images val: C:\Users\Administrator\PycharmProjects\ultralytics\Construction Site Safety.v30-raw-images_latestversion.yolov8\valid\images test: C:\Users\Administrator\PycharmProjects\ultralytics\Construction Site Safety.v30-raw-images_latestversion.yolov8\test\images nc: 25 names: ['Excavator', 'Gloves', 'Hardhat', 'Ladder', 'Mask', 'NO-Hardhat', 'NO-Mask', 'NO-Safety Vest', 'Person', 'SUV', 'Safety Cone', 'Safety Vest', 'bus', 'dump truck', 'fire hydrant', 'machinery', 'mini-van', 'sedan', 'semi', 'trailer', 'truck and trailer', 'truck', 'van', 'vehicle', 'wheel loader'] 下面为参考的更改代码 import xml.etree.ElementTree as ET import pickle import os from os import listdir, getcwd from os.path import join sets=[('2007', 'train'), ('2007', 'test')] #sets=[('2007', 'train'), ('2007', 'val')] #classes = ["dz_on","dz_off","dz_ab"] #classes = ["dz1_on","dz1_off","dz1_ab","dz2_on","dz2_off","dz2_ab"] # shudiantongdao num 28 26 cls + 1cls QiaoLiang 20241112 update + FengLiFds 20241227 update classes = ["DiaoChe","TaDiao","ShuiNiBengChe","TuiTuJi","ChanChe","WaJueJi","FanDouChe","QiTaShiGongJiXie","DaoXianYiWu", "ShanHuo","YanWu","ChiTang","DengGuang","YuDi","DaPeng","FangChenWang","YanCong","Others","DaZhuangJi","Niao","YunDuo", "JianGeBang","JueYuanZiChuan","FangZhenChui","DaoXianYiWu_ShuYe","DaoXianYiWu_LuDeng","QiaoLiang","FengLiFds"] # 20 cls # classes = ["DiaoChe","TaDiao","ShuiNiBengChe","TuiTuJi","ChanChe","WaJueJi","FanDouChe","QiTaShiGongJiXie","DaoXianYiWu", # "ShanHuo","YanWu","ChiTang","DengGuang","YuDi","DaPeng","FangChenWang","YanCong","Others","DaZhuangJi","Niao"] #wrjtd num_class 15 # classes = ["ChanChe","ChiTang","DaPeng","DaZhuangJi","DiaoChe","FanDouChe","FangChenWang", # "QiTaShiGongJiXie","ShanHuo","ShuiNiBengChe","TaDiao","TuiTuJi","WaJueJi","YanCong","YanWu"] # shudiantongdao num 27 update # classes = ["DiaoChe","TaDiao","ShuiNiBengChe","TuiTuJi","ChanChe","WaJueJi","FanDouChe","QiTaShiGongJiXie", # "ShanHuo","YanWu","ChiTang","DengGuang","YuDi","DaPeng","FangChenWang","YanCong","Others","DaZhuangJi","Niao", # "BuTiao","FengZheng","QiQiu","ShiGongCaiDai","SuLiaoBoMo","SuLiaoDai","WuRenJi","DaoXianYiWu_QiTa"] def convert(size, box): dw = 1./size[0] dh = 1./size[1] x = (box[0] + box[1])/2.0 y = (box[2] + box[3])/2.0 w = box[1] - box[0] h = box[3] - box[2] x = x*dw w = w*dw y = y*dh h = h*dh return (x,y,w,h) def convert_annotation(year, image_id): xml_name = '/jysp/VOCdevkit/VOC%s/rename/Annotations/%s.xml'%(year, image_id) file_name = '/jysp/VOCdevkit/VOC%s/rename/labels/%s.txt'%(year,image_id) if(os.path.exists(xml_name)): in_file = open(xml_name) out_file = open(file_name, 'w') tree=ET.parse(in_file) root = tree.getroot() size = root.find('size') w = int(size.find('width').text) h = int(size.find('height').text) for obj in root.iter('object'): #difficult = obj.find('difficult').text difficult = 0 cls = obj.find('name').text if cls not in classes or int(difficult) == 1: continue cls_id = classes.index(cls) xmlbox = obj.find('bndbox') b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text), float(xmlbox.find('ymax').text)) try: bb = convert((w,h), b) out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n') except: continue in_file.close() out_file.close() else: print("Error file not exist!! : {}".format(xml_name)) with open("/jysp/VOCdevkit/VOC2007/rename/20250109_xml_not_found_txt" ,"a+") as f: f.write(xml_name + "\n") f.close() wd = getcwd() for year, image_set in sets: if not os.path.exists('/jysp/VOCdevkit/VOC%s/rename/labels'%(year)): os.makedirs('/jysp/VOCdevkit/VOC%s/rename/labels'%(year)) #image_ids = open('VOCdevkit/VOC%s/ImageSets/Main/%s.txt'%(year, image_set)).read().strip().split() file_read = open('/jysp/VOCdevkit/VOC%s/rename/ImageSets/Main/20250109_update/%s_%s.txt'%(year, year,image_set),encoding="utf-8") file_data = file_read.readlines() #list_file = open('%s_%s.txt'%(year, image_set), 'w') data_len = len(file_data) for i in range(data_len): file_datum = file_data[i] print("{} / {}".format(i + 1,data_len)) image_id = file_datum.strip() # print("image_id",image_id) # if image_id.split('/')[-1] == "25130c69724c4fa6a2f647e788e212af.jpg": # print(image_id.split('/')[-1]) # print(os.path.splitext(image_id.split('/')[-1])[0]) #list_file.write('/jysp/VOCdevkit/VOC%s/images/%s.jpg\n'%(year, image_id.split('/')[-1][:-4])) #list_file.write('%s/VOCdevkit/VOC%s/images/%s.jpg\n'%(wd, year, image_id)) convert_annotation(year, os.path.splitext(image_id.split('/')[-1])[0]) #convert_annotation(year, image_id) #list_file.close()
最新发布
08-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值