B. Shuffle【1300 / 思维 区间合并】

这段代码是用于解决一个区间覆盖问题的C++程序。给定一系列区间,程序计算最少需要多少个区间来覆盖所有可能的点。它通过迭代并更新最小和最大边界来实现。对于每个新区间,如果它与当前覆盖范围没有交集,则忽略;否则,更新覆盖范围的边界。最终输出覆盖所有可能点所需的区间长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

https://codeforces.com/problemset/problem/1366/B
假设我们在第i次可以到达的区间是[l,r]
在这里插入图片描述
如果区间没有交集,则直接跳过。

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
	int t; cin>>t;
	while(t--)
	{
		int n,x,m; cin>>n>>x>>m;
		int l=x,r=x;
		for(int i=0;i<m;i++)
		{
			int a,b; cin>>a>>b;
			if(b<l||a>r) continue;
			l=min(l,a);
			r=max(r,b);
		}
		cout<<r-l+1<<endl;
	}
	return 0;
}
import copy from PIL import Image import torch from torch.utils.data import Dataset from torchvision import transforms class UIEBD(Dataset): def __init__(self, data_type, konf): self.train_data_idx = [0, 800] self.val_data_idx = [800, 890] self.test_data_idx = [800, 890] if konf == 1: self.annotations_file_path = '../../Data/UIEBD/UIEBD_random_shuffle_1.txt' elif konf ==2: self.annotations_file_path = '../../Data/UIEBD/UIEBD_random_shuffle_2.txt' elif konf ==3: self.annotations_file_path = '../../Data/UIEBD/UIEBD_random_shuffle_3.txt' elif konf ==4: self.annotations_file_path = '../../Data/UIEBD/UIEBD_random_shuffle_4.txt' elif konf ==5: self.annotations_file_path = '../../Data/UIEBD/UIEBD_random_shuffle_5.txt' elif konf ==6: self.annotations_file_path = '../../Data/UIEBD/UIEBD_random_shuffle_6.txt' elif konf ==7: self.annotations_file_path = '../../Data/UIEBD/UIEBD_random_shuffle_7.txt' elif konf ==8: self.annotations_file_path = '../../Data/UIEBD/UIEBD_random_shuffle_8.txt' elif konf ==9: self.annotations_file_path = '../../Data/UIEBD/UIEBD_random_shuffle_9.txt' elif konf ==10: self.annotations_file_path = '../../Data/UIEBD/UIEBD_random_shuffle_10.txt' self.raw_data_root = '../../Data/UIEBD/raw/' self.gt_data_root = '../../Data/UIEBD/gt/' self.data_type = data_type t = [] with open(self.annotations_file_path, 'r') as f: data_list = f.readlines() for data in data_list: data = data.split('\n')[0] t.append({'raw_data_path': self.raw_data_root + data, 'gt_data_path': self.gt_data_root + data}) if self.data_type == 'train': self.data_infos = t[self.train_data_idx[0]:self.train_data_idx[1]] elif self.data_type == 'val': self.data_infos = t[self.val_data_idx[0]:self.val_data_idx[1]] elif self.data_type == 'test': self.data_infos = t[self.test_data_idx[0]:self.test_data_idx[1]] def __len__(self): """Length of the dataset. Returns: int: Length of the dataset. """ return len(self.data_infos) def __getitem__(self, idx): """Get item at each call. Args: idx (int): Index for getting each item. """ results = copy.deepcopy(self.data_infos[idx]) raw_data = Image.open(results['raw_data_path']).convert('RGB') gt_data = Image.open(results['gt_data_path']).convert('RGB') assert raw_data.size == gt_data.size if self.data_type == 'train': f1 = transforms.ToTensor() raw_data = f1(raw_data) gt_data = f1(gt_data) data = torch.cat((raw_data, gt_data), 0) f2 = transforms.RandomHorizontalFlip(p=0.5) data = f2(data) f3 = transforms.Resize([320, 320]) data = f3(data) raw_data = data[0:3, :, :] gt_data = data[3:6, :, :] results['raw_data'] = raw_data results['gt_data'] = gt_data elif self.data_type == 'val': f1 = transforms.ToTensor() raw_data = f1(raw_data) gt_data = f1(gt_data) data = torch.cat((raw_data, gt_data), 0) f2 = transforms.RandomHorizontalFlip(p=0.5) data = f2(data) f3 = transforms.Resize([320, 320]) data = f3(data) raw_data = data[0:3, :, :] gt_data = data[3:6, :, :] results['raw_data'] = raw_data results['gt_data'] = gt_data elif self.data_type == 'test': f1 = transforms.ToTensor() raw_data = f1(raw_data) gt_data = f1(gt_data) data = torch.cat((raw_data, gt_data), 0) # f2 = transforms.RandomHorizontalFlip(p=0.5) # data = f2(data) f3 = transforms.Resize([320, 320]) data = f3(data) raw_data = data[0:3, :, :] gt_data = data[3:6, :, :] results['raw_data'] = raw_data results['gt_data'] = gt_data return results这是UIEBD的代码,那么之前的错误怎么修改
05-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值