Jzoj5446 高考是不可能高考的

计算机视觉研究方向有哪些?什么方向最好出论文创新点 计算机视觉(CV)是人工智能中一个活跃且应用广泛的研究领域,旨在让计算机理解和处理图像与视频。其主要研究方向包括图像分类、目标检测、图像分割、姿态估计、图像生成与重建、视频理解、三维视觉和跨模态视觉理解。这些方向不仅涉及基础理论,还紧密联系实际应用,适合发表论文和实现项目落地。为了在CV领域取得创新,建议关注跨模态学习、小样本学习、图像生成模型的控制与轻量化、视频分析以及医学图像分析等方向。此外,通过阅读顶会论文、复现SOTA方法、模型微调和数据集创新等方式,可以有效切入研究并产生有价值的成果。 阅读详情
Snuke 喜欢旗子.
Snuke 正在将N 个旗子摆在一条线上.
第i 个旗子可以被放在位置xi 或yi 上.

Snuke 认为两个旗子间的最小距离越大越好. 请你求出最大值.


今天这都是些集训队作业啊!

这个题本来以为一眼能做结果死磕磕不动

二分答案肯定是要的,问题是怎么判定解

1.dp肯定不行了

2.数据结构,也不行

3.图的最大独立集,比较靠谱但是。。。复杂度爆炸

正解:2SAT

考完听他们说才恍然大悟,我在分析的时候漏掉了一个条件,重点都放在了"xi,yi只能选一个"

但是还有一个条件:“xi,yi必须选一个”,我把这个重要条件作为判断二分可行性最后才用了

说说怎么构图

我们将所有的xi,yi放入一个数组s并排序,我们假设ai=0/1表示si这个位置有没有放旗子

显然有两种边:

1.若si和sj本来是同一个同一个k的xk,yk的话,这两者只可选择其一,即ai^aj=1

2.|si-sj|<我们二分的Mid,那么这两者最多选一个即ai&aj=0

很明显,如果直接暴力构图是过不去的,我们可以考虑以下两种优化方法:

1.线段树优化连边

2.分块优化连边

具体思路就是建立一些辅助点,当一个点x向一片区间s[l,r]连边的时候不需要每个都连接而是通过辅助点,这样可以减少边的总数(类似于中转站)

当然以上两种做法都比较复杂,我讲一种很简单而且很快的做法

我们二分答案的时候,我们发现需要将r开得很大(10^9)

而且我们注意到,如果暴力连边,Mid越大,边的数量就越多,而答案通常不大

所以我们考虑尽量减少r来降低复杂度

这里我们考虑一种dp的形式

假设这个问题中,xi,yi可以同时取,那么这个问题就变成了一个在s上的动态规划

方程为f[j]=max(f[i]+1){s[i]<=s[j]-Mid)

那么显然,这样做出来的答案会比正确答案更优(但是不正确),但是不会脱离太远(平均情况下<=10Answer)

所以我们将其作为一个二分的上界不会出问题只会优化时间复杂度

让后就莫名其妙拿了rank5[>_<]!

#include<vector>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 10010
using namespace std;
struct Graph{
	vector<int> G[N<<2];
	int dfn[N<<2],low[N<<2],stk[N<<2],top;
	int cnt,col[N<<2],clk,Col;
	inline void clear(int m){ 
		cnt=top=clk=Col=0; 
		for(int i=1;i<=m;++i) G[i].clear();
		memset(dfn,0,sizeof dfn);
		memset(col,0,sizeof col);
	}
	inline void adj(int x,int y){ G[x].push_back(y); }
	void dfs(int x){
		dfn[x]=low[x]=++clk;
		stk[++top]=x;
		for(int v,i=0,z=G[x].size();i<z;++i)
			if(!dfn[v=G[x][i]]){
				dfs(v); low[x]=min(low[x],low[v]);
			} else if(!col[v]) low[x]=min(dfn[v],low[x]);
		if(low[x]==dfn[x]){
			++Col;
			do{ col[stk[top]]=Col; } while(stk[top--]!=x);
		}
	}
	bool gScn(int n){
		for(int i=1;i<=n;++i) if(!dfn[i]) dfs(i);
		n>>=1;
		for(int i=1;i<=n;++i) if(col[i]==col[i+n]) return 0;
		return 1;
	}
} G;
struct dt{ int v,r; } s[N<<1];
int x[N],y[N],p[N<<1],n,m=0,c[N];
inline bool c1(dt a,dt b){ return a.v<b.v; }
inline int lowerbound(int p,int k){
	int l=1,r=p;
	for(int M;l<r;){
		M=l+r>>1;
		if(s[M].v<=k) l=M+1;
		else r=M;
	}
	return l;
}
inline int upperbound(int p,int k){
	int l=p,r=m;
	for(int M;l<r;){
		M=l+r+1>>1;
		if(s[M].v>=k) r=M-1;
		else l=M;
	}
	return l;
}
void buildGraph(int x){
	G.clear(m<<1);
	for(int i=1;i<=m;++i) G.adj(i,p[i]+m),G.adj(i+m,p[i]);
	for(int l,r,i=1;i<=m;++i){
		l=lowerbound(i,s[i].v-x);
		r=upperbound(i,s[i].v+x);
		for(;l<i;++l) G.adj(i,l+m);
		for(;r>i;--r) G.adj(i,r+m);
	}
}
int v[N<<1],f[N<<1];
inline bool ok(int x){
	v[0]=-100000000;
	memset(f,0,sizeof f); f[0]=0;
	for(int i=1,j;i<=m;++i){
		j=lower_bound(v,v+1+m,v[i]-x)-v;
		while(v[j]>v[i]-x) --j;
		f[i]=max(f[i-1],f[j]+1);
	}
	return f[m]>=n;
}
int main(){
	freopen("a.in","r",stdin);
	freopen("a.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;++i){
		scanf("%d%d",x+i,y+i);
		s[++m]=(dt){x[i],i};
		s[++m]=(dt){y[i],i};
	}
	sort(s+1,s+1+m,c1);
	for(int i=1;i<=m;++i){
		v[i]=s[i].v;
		if(!c[s[i].r]) c[s[i].r]=i;
		else { p[c[s[i].r]]=i; p[i]=c[s[i].r]; }
	}
	int l=0,r=100000000;
	for(int M;l<r;){
		M=l+r+1>>1;
		if(ok(M)) l=M;
		else r=M-1;
	}
	l=0;
	for(int M;l<r;){
		M=l+r+1>>1;
		buildGraph(M);
		if(G.gScn(m<<1)) l=M;
		else r=M-1;
	}
	printf("%d\n",l);
}

visio安装包 Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。 立即下载

相关推荐

基于深度视觉实现机械臂对目标的识别与定位

Marker ID 和 Marker size 自选,在 launch 文件中做相应的修改(本教程演示使用 Marker ID:582,Marker size:30mm)根据相机和机械臂的安装方式不同,手眼标定分为眼在手上和眼在手外两种方式,双臂机器人的相机和机械臂基座的相对位置固定,所以应该采用眼在手外的手眼标定方式。后续的视觉引导机械臂抓取测试实验基于本实验实现,通过视觉引导右臂完成抓取目标物,所以默认已使用机械臂右臂和相机完成了手眼标定。文件,根据打印的marker 标签,需要配置。

realman_Rop的博客 3764

【jzoj4745】【看电影】

题目大意N个人排成一圈,按顺时针顺序标号为1 - N,每次随机一个1 - N的编号,假设随机到的编号是X,如果编号为X人还未踢出,则将这个人踢出,否则看编号为X % N + 1(即顺时针顺序下一个编号)的人是否存活,如果还未踢出则将他踢出,否则继续看编号(X + 1)% N +1的人,如果已被踢出看顺时针的下一个…………,以此类推,直到踢出一个人为止。重复上述操作,直到剩下K个人。已知小S的编号是I

inklutcuah’s blog 552

LangGraph实战:用Python异步构建智能客服多轮对话系统(附完整代码)

本文详细介绍了如何使用LangGraph框架和Python异步编程构建一个高性能的智能客服多轮对话系统。通过将对话流程建模为有向图,结合thread_id实现多用户对话隔离,并利用异步节点提升系统并发处理能力,有效解决了传统客服系统上下文遗忘与高并发瓶颈问题。文章提供了从环境搭建、状态管理、异步优化到复杂业务逻辑与部署的完整实战代码。

weixin_29055137的博客 149

[JZOJ5386]碎

题目大意给你一个带边权完全图,要求你分成两个联通块,联通块的贡献定义为块内最大边权,求最小的贡献和。 n<=300。 答案在int范围内。分析考虑暴力,我们枚举一条边,代表贡献较大的联通块的最大边权,较小贡献的联通块的最大边可以二分得到贡献。在一种情况下,比较大边权更大的边的两端的点要处于不同的联通块,处于较大和较小边贡献之间的边的端点不能同时属于较小贡献联通块。这个是一个2-SAT问题。2-S

ZLTJohn的博客 491

【优化调度】基于混合整数线性规划的电力系统机组组合优化(Matlab实现)

本文详细介绍了基于混合整数线性规划(MILP)的电力系统机组组合优化方法,通过Matlab实现高效调度决策。内容涵盖目标函数构建、约束条件设置及求解器调优,帮助降低发电成本并提升系统稳定性。适用于电力系统调度员和能源优化研究人员,实现从理论到实践的完整解决方案。

weixin_29050271的博客 585

tun虚拟网卡没有安装解决之道

目录 描述 过程 一、sstap 会提示你虚拟网卡没有安装; 二、还有会是这样的:病毒和威胁防护中无法启动;引擎不可以用等等,以及会显示需要IT管理员去处理;等等报错的信息; 系统升级地方会显示:Windows Defender Antivirus 的安全智能更新 - KB2267602 (版本 1.305.2147.0) - 错误 0xc8000442 Windows Defender报错; 三、还有就是会出现你搜自己家的WIFI搜不到,电脑端都不会显示WIFI名字; 解决方...

战神/calmness的博客 1万+

jzoj3782 【NOIP2014模拟8.17】组队 (特殊情况的2sat,dp)

题面你的任务是将一群人分到两个队伍中,使得: 1、每个人都属于一个队伍。 2、每个队伍至少有一个人。 3、每个队伍的任意一个人都认识其他人。 4、两支队伍的人数尽可能接近。 这个任务可能有多组解,你可以输出任意一种。 注意:认识是单向的且没有传递性。对于分值为 30%的数据,N <= 15 对于剩余分值为 70%的数据,N <= 100 2-SAT?一开始想复杂了,一直在回忆2

一位蒟蒻的小博客 442

【AI大模型】角色设定:给模型定身份的高效使用方法

摘要: AI大模型角色设定(RolePrompting)是提示词工程的核心优化技巧,通过赋予模型特定职业、领域和风格约束,显著提升输出专业度与适配性。文章系统拆解了角色设定的原理、万能公式(领域+身份+技能+风格+场景)、三级分层写法(基础/进阶/专家),并提供10类高频场景的模板。通过无角色与有角色输出的对比实验(Python代码量化验证),证明角色设定可使模型综合得分提升35%以上,尤其优化场景适配度与风格统一性。该技巧作为高阶提示词(如CoT、Few-Shot)的前置模块,能以零成本实现AI输出的专业

unber的博客 41

[JZOJ5446]【NOIP2017提高A组冲刺11.3】高考是不可能高考的(2-SAT问题)【Atcoder regular context 069F】

Description Snuke 喜欢旗子. Snuke 正在将N 个旗子摆在一条线上. 第i 个旗子可以被放在位置xi 或yi 上. Snuke 认为两个旗子间的最小距离越大越好. 请你求出最大值 对于100% 的数据, 1 <= N <= 10^4; 1 <= xi, yi <= 10^9 Solution首先二分答案那么考虑相互关系二分出来的答案使得,选了某一个,

Never give in. 370

常用元器件使用方法3:电平转换芯片74LVC1T45的使用方法

介绍: 74LVC1T45是一个单位双向可控电平转换芯片。   芯片特性: 1、宽供给电压范围:1.65V到5.5V; 2、3.3V时,可输出24mA电流; 3、最大16uA电能损耗; 4、高噪音抑制;   型号:   引脚: VCC(A) 1 A端和DIR电源 GND 2 地 A 3 数据输入/输出 B 4 ...

snmplink的博客 1万+

YOLO26改进105:全网首发--使用BiFPN改进特征金字塔网络

YOLOv6 v3.0在目标检测领域实现重大突破,通过改进网络架构和训练方案显著提升性能。该版本在COCO数据集上展现出优越表现:YOLOv6-N达到37.5% AP/1187 FPS,YOLOv6-S实现45.0% AP/484 FPS,均超越同类检测器。大模型YOLOv6-M/L分别达到50.0%/52.8% AP,L6版本更创下实时检测新纪录。关键技术包括RepVGGBlock、BiFusion等新型模块,通过多分支融合和高效重参数化设计提升性能。研究团队已验证各改进模块有效性,代码已开源。

AIcurator的博客 95

Jzoj3155 最短路

N 个结点、M 个含K 个结点的完全子图构成一个奇怪的图,问从结点1 走到结点N 最少需要经过多少个结点。 非常经典的套路了,当时做2sat也讲过了 建立中转站让后直接bfs,最后距离/2就好 #pragma GCC opitmize("O3") #pragma G++ opitmize("O3") #include<queue> #include<vector&...

dianning8393的博客 210

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【JZOJ5446】高考是不可能高考的

DescriptionSnuke 喜欢旗子. Snuke 正在将N 个旗子摆在一条线上. 第i 个旗子可以被放在位置xi 或yi 上. Snuke 认为两个旗子间的最小距离越大越好. 请你求出最大值.

sadnohappy 336

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【JZOJ 5446】【NOIP2017提高A组冲刺11.3】高考是不可能高考的

DescriptionSnuke 喜欢旗子. Snuke 正在将N 个旗子摆在一条线上. 第i 个旗子可以被放在位置xi 或yi 上. Snuke 认为两个旗子间的最小距离越大越好. 请你求出最大值.Solution很明显的2-SAT, 二分答案+判断,用线段树优化连边即可Code#include <cstdio> #include <algorithm> #include <cstring

473

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Jzoj3467 最长上升子序列

维护一个序列,使它可以进行下面两种操作: 1.在末尾添加一个数字x 2.将整个序列变成第x次操作后的样子 在每次操作后,输出当前序列的最长上升子序列的长度 序列初始时为空 嗯,可持久化线段树的裸题 额这可是noip提高组难度的题,我们发现所有操作可以变成一棵树(离线做法老套路了) 让后每次最多修改数组上的一个值(考虑二分求LIS的过程)最后改回去就好了 注意dfs又卡栈(jzo

扩展の灰(Extended Ash/Cooevjnz) 3022

Jzoj4210 我才不是萝莉控呢

小Y:“小R你是萝莉控吗。”小R:“...”  为了避免这个尴尬的话题,小R决定给小Y做一道题。 有一个长度为n的正整数数组A,满足艾> =艾+ 1,现在构造一个数组B,令的Bi = ΣA[j] (j∈[i,n])。 现在,有一个N * N的网格图,左下角坐标是(1,1),右上角坐标是(N,N)。有一个小SB正在坐标为(n,1)的位置,每一时刻,如果他现在在(x,y),他可以选择走到(x?-

扩展の灰(Extended Ash/Cooevjnz) 1772

LOJ 6495~6497「雅礼集训 2018 Day1」

. 真是看懂std就秒的三道题,但是看懂就很难啊 (感谢superguymj和memset0两个大佬的代码) 稍微说一下题解 -------------------------------------------------------- 「雅礼集训 2018 Day1」树 这道题的正解被superguymj大佬吊打了,原来O(n⋅2n)O(n·2^n)O(n⋅2n)变成了O(n4)O(n^4)...

扩展の灰(Extended Ash/Cooevjnz) 1562

Jzoj4876 基因突变(红警系列)

邪恶的707刚刚从白垩纪穿越回来,心中产生了一个念头:我要统治人类!     但是统治人类是很庞大且复杂的一个工程,707尝试了洗脑,催眠,以及武装镇压都没能成功地统治人类,于是她决定从科学上对人类的基因进行研究从而达到他的目的。     707获取了人类的基因信息并尝试对基因进行实验。他发现可以把人类的基因看做一个只包含小写字母的字符串,并定义从头开始任意长度的基因为“源头基因”人类身上与源

扩展の灰(Extended Ash/Cooevjnz) 1436

Jzoj5235 好的排列

对于一个1->n的排列 ,定义A中的一个位置i是好的,当且仅当Ai-1>Ai 或者Ai+1>Ai。对于一个排列A,假如有不少于k个位置是好的,那么称A是一个好的排列。 现在有q个询问,每个询问给定n,k,问有多少排列是好的。答案对10^9+7取模。 显然是计数类dp,我们设f[i][j]表示对于一个1->i的排列,好的位置有j个的情况 考虑转移,显然f[i][j]->f[i+1][k]相

扩展の灰(Extended Ash/Cooevjnz) 1289

Jzoj4877 力场护盾(红警系列)

ZMiG成功粉碎了707的基因突变计划,为了人类的安全,他决定向707的科学实验室发起进攻!707并没有想到有人敢攻击她的实验室,一时间不知所措,决定牺牲电力来换取自己实验室的平安。     在实验室周围瞬间产生了一个无限大的力场护盾,它看上去无懈可击!不过ZMiG拥有惊人的双向观察能力,经过他的反复观察,找到了这个护盾的N个弱点,他本想逐一击破,却发现一股神秘力量阻止了他的行为。原来他身处力场

扩展の灰(Extended Ash/Cooevjnz) 1169

Jzoj3805 小X的二叉堆计数

题意:给你n个不同的数问你能构成多少个不同的二叉堆 显然不能枚举,我们考虑用递推 我们令f[i]表示以i为根的二叉堆有多少种 令l,r为i的左右儿子,令size[i]为以i为根的堆的大小 那么显然,f[i]=f[l]*f[r]*C(size[i]-1,size[l]),因为n个数互不相同,所以没有重复 相当于是1~size[i]这几个数填进这个堆中,那么显然根只能填最大那个,让后在剩下的

扩展の灰(Extended Ash/Cooevjnz) 888

PKUSC2018部分题解

. LOJ的std+数据+当时讲题的记忆硬是刚了五道题(D1t3咕咕咕) 稍微写一下题解 LOJ6432 「PKUSC2018」真实排名 一道比较简单的题,不过需要注意很多细节 考虑排名不变的两种情况 1.自己分数xxx不变,那么所有分数在[[x2],x)[[\frac{x}{2}],x)[[2x​],x)中的其他人的分数也不能变,否则必然有在自己后面的人到自己前面 2.自己分数xxx翻倍,那么...

扩展の灰(Extended Ash/Cooevjnz) 848

CDQ分治&整体二分九连测

整体二分好难a CDQ分治&amp;amp;amp;amp;整体二分九连: A[适者] 先来一个不是cdq分治的题(虽然也可以用分治做) 首先先来考虑按照什么顺序来搞掉这些机甲 对于两个相邻的机甲i,j,先i后j的代价是Ai∗Di+(Di+Dj)∗AjAi∗Di+(Di+Dj)∗AjA_i*D_i+(D_i+D_j)*A_j 那么如果i应该比j先消灭就有 Ai∗Di+(Di+Dj)∗Aj&amp;amp;amp;lt;A...

扩展の灰(Extended Ash/Cooevjnz) 757

Jzoj4727 挺进

题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大 一看就是树形DP嘛,c1表示最长边c2次长,f表示父亲部分的最长路 上面做法不讲,我们讲一种比较新奇的方法 假设我们枚举断哪一条边,在lgn时间内求出两个联通快的直径不就行了嘛 怎么做呢,我们发现,可以用树的dfs序来维护,我们用一个线段树维护一个区间内的直径的端点和长度 额,如何合并? 我们假设两块的直径端点分别为x

扩展の灰(Extended Ash/Cooevjnz) 756

Jzoj3902 游戏

农夫FJ和奶牛Bessie玩游戏,游戏由一个黑板和N张卡片组成。游戏初始时,黑板写的数字是0。每张卡片都写有一个[0,511]的整数。FJ和Bessie轮流操作,FJ先操作。操作者每次从当前的卡片中选取一张卡片出来(被选出来的卡片不会被再次利用),假设选出来的卡片写的数是X,并假设当前黑板写的数是Y,那么本轮操作后黑板的数变成Y|X,其中|是位操作的或。如果某个操作者没有卡片可取了(卡片已经取完)

扩展の灰(Extended Ash/Cooevjnz) 740
上一篇: Jzoj4896 兔子
下一篇: Jzoj5449【NOIP2017提高A组冲刺11.4】Pacifist
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值