首页 > 其他分享 >Tasks

Tasks

时间:2024-09-14 15:16:15浏览次数:7  
标签:Tasks 扩增 int max 100005 fail

  • 【构造思路】有序化问题,按b从大到小考虑,构造当前的合法方案中包容性最强的方案,动态判断
  • 首先,对于最大的b,让r=l就好了,需不需要让r稍大一点,来让它避免被其他区间覆盖?不可能有这种情况
  • 其次,对于所有的b-1,你需要为所有的b都找到一个覆盖它的区间,并且所有的b-1之间都不会相互覆盖
  • 以此类推,构造下去就好了
  • 对于禁止区间全等的限制:我们有两种选择,一种是选择更小的l,一种是将r扩增1;我们希望在最后的方案中,最大的r最小
  • 其实我觉得应该优先选择更小的l,如果不行再扩增r,但是直接扩增r也能过,想不明白就不想了
点击查看代码
#include <bits/stdc++.h>
using namespace std;
vector<int>p[100005];
int l[100005],r[100005];
void fail()
{
	cout<<-1<<endl;
	exit(0);
}
bool cmp(int a,int b)
{
	return l[a]<l[b];
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n,m=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int b;
		cin>>l[i]>>b;
		m=max(m,b);
		p[b].push_back(i);
	}
	for(int i=0;i<=m;i++)
	{
		if(p[i].empty())
		{
			fail();
		}
		sort(p[i].begin(),p[i].end(),cmp);
		for(int j=1;j<p[i].size();j++)
		{
			if(l[p[i][j]]==l[p[i][j-1]])
			{
				fail();
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		r[i]=l[i];
	}
	for(int i=m-1;i>=0;i--)
	{
		for(int j=0;j<p[i+1].size();j++)
		{
			int k=-1;
			while(k+1<p[i].size()&&l[p[i][k+1]]<=l[p[i+1][j]])
			{
				k++;
			}
			if(k==-1)
			{
				fail();
			}
			if(l[p[i][k]]!=l[p[i+1][j]])
			{
				r[p[i][k]]=max(r[p[i][k]],r[p[i+1][j]]);
			}
			else
			{
				if(k>0)
				{
					k--;
					r[p[i][k]]=max(r[p[i][k]],r[p[i+1][j]]);
				}
				else
				{
					r[p[i][k]]=max(r[p[i][k]],r[p[i+1][j]]+1);
				}
			}
		}
		for(int j=1;j<p[i].size();j++)
		{
			r[p[i][j]]=max(r[p[i][j]],r[p[i][j-1]]+1);
		}
	}
	for(int i=1;i<=n;i++)
	{
		if(r[i]>1000000)
		{
			fail();
		}
	}
	for(int i=1;i<=n;i++)
	{
		cout<<r[i]<<"\n";
	}
	return 0;
}

标签:Tasks,扩增,int,max,100005,fail
From: https://www.cnblogs.com/watersail/p/18413747

相关文章

  • freeRTOS源码解析4--tasks.c 4
    4.2.9周期任务用的延迟--xTaskDelayUntil接口:BaseType_txTaskDelayUntil(TickType_t*constpxPreviousWakeTime,constTickType_txTimeIncrement)形参1:pxPreviousWakeTime,上一次唤醒时间,第一次需要用接口xTaskGetTickCount()获取;形参2:xTimeIncrement,想要延迟的时间。......
  • FastAPI 进阶:使用 BackgroundTasks 处理长时间运行的任务
    在FastAPI中,BackgroundTasks是一个功能,它允许你在发送响应给客户端之后执行后台任务。这些任务对于不需要客户端等待的操作非常有用,比如发送电子邮件通知或处理数据。然而,当服务器重启时,由于BackgroundTasks是与单个应用实例的生命周期相关联的,它们不会自动恢复执行。Backgrou......
  • Android taskset用法详解
    一、简介taskset命令用于设置或者获取一直指定的 PID 对于CPU核的运行依赖关系。通过taskset命令可将某个进程与某个CPU核心绑定,使得其仅在与之绑定的CPU核心上运行关于绑核的解释绑核,其实就是设定某个进程/线程与某个CPU核的亲和力(affinity)。设定以后,Linux调......
  • 定制任务服务 ScheduledTaskService
    自定义的定时任务服务ScheduledTaskService packagecom.joyupx.service.impl.task;importlombok.extern.slf4j.Slf4j;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.scheduling.Trigger;importorg.springframework.sc......
  • [Javascript + Performance] How to run a large number of time-consuming tasks and
    Tryoption1:Promise PromiserunninginMicrotaskqueue,andrenderingshouldwaituntilthequeueisempty;Ifyouhavealargenumberoftime-consuminginmicrotask,itwillalsoblockrenderingfunctionrunTask(task){Promise.resolve().then(()=&g......
  • Paper Reading: SAFE: Scalable Automatic Feature Engineering Framework for Indust
    目录研究动机文章贡献本文方法整体框架特征生成特征组合关系排序特征组合生成特征特征选择去除无信息特征去除冗余特征复杂度分析实验结果数据集和实验设置对比实验特征重要性比较运行时间特征稳定性不同迭代次数的性能大规模数据集实验优点和创新点PaperReading是从个人角度进......
  • ansible include_tasks示例
    目录include_tasks导入任务include_tasks拉取ansible代码示例include_tasks导入任务任务文件只包含任务,作用主机范围由playbook.yaml决定include_tasks.yaml----name:restartmemcachedservice:name:memcachedstate:restartedplaybook.yaml----h......
  • TaskScheduler
    TaskScheduler是什么TaskScheduler决定了将Task调度到什么地方去执行,即TaskScheduler决定了Task如何被调度ThreadPoolTaskScheduler如果不特别指定,默认就是ThreadPoolTaskScheduler内部有两种处理逻辑,一种是针对LongRunning需求的Task,会单独走后台Thread路径;另一种是非LongRu......
  • 掌握 schtasks 的高级功能,并有效管理和调度复杂任务。深入的 schtasks 使用指导,帮助用
    schtasks是一个Windows命令行工具,用于创建、删除、配置或显示计划任务。你可以用它来安排任务的自动执行,比如运行脚本或程序。schtasks的功能可以分为以下几类:创建任务:设定新任务的执行时间、频率和程序。删除任务:移除已存在的任务。修改任务:更新任务的执行时间、条件或......
  • [paper阅读笔记][2023]CorpusLM: Towards a Unified Language Model on Corpusfor Kno
    文章链接:https://arxiv.org/pdf/2402.01176v2Paper的任务处理各种知识密集型任务任务的科学问题本文任务虽然是:提出一个统一的语言模型来处理各种知识密集型任务,但其实其本质科学问题是:如何提高LLMs在知识密集型任务中的检索效率。原因是:LLMs在生成文本时容易出现错误信......