bzoj1066: [SCOI2007]蜥蜴

从Power到HO:一文搞懂主流脑图谱在DPABI里怎么选,让你的rs-fMRI分析更精准 本文深入解析了rs-fMRI分析中主流脑图谱(如Power、HO、AAL等)在DPABI中的科学选择策略,帮助研究者根据不同的神经科学研究目标优化分析流程。从解剖学图谱到功能连接图谱的特性对比,到DPABI实操中的多图谱分析工作流,提供了全面的方法论指导,助力提升静息态功能磁共振成像(rs-fMRI)研究的精准度和可重复性。 阅读详情

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1066

思路:很显然的点容量限制,那就拆点,从一个点向另一个点连点容量限制的边

S向有蜥蜴的点连1的边,两两可达的点连边,可以出去的就向会连边

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
const int dx[]={0,0,1,-1};
const int dy[]={1,-1,0,0};
const int maxn=1010,maxm=100010,inf=1e9;
using namespace std;
int n,m,d,h[25][25],map[25][25],cnt,S=maxn-2,T=maxn-1;char ch[25][25];
int pre[maxm],now[maxn],son[maxm],val[maxm],tot=1,head,tail,q[maxn],dis[maxn];
int id(int x,int y){return (x-1)*m+y;}
void add(int a,int b,int c){pre[++tot]=now[a],now[a]=tot,son[tot]=b,val[tot]=c;}
//void ins(int a,int b,int c){add(a,b,c),add(b,a,0);}
void ins(int a,int b,int c){add(a,b,c),add(b,a,0);}
int po(int x,int op){return x*2+op;}
double sqr(int x){return 1.0*x*x;}
bool check(int x1,int y1,int x2,int y2){return sqrt(sqr(x1-x2)+sqr(y1-y2))<=1.0*d;}

void build(int sx,int sy){
	for (int i=1;i<=n;i++)
		for (int j=1;j<=m;j++)	
			if (i!=sx||j!=sy)
				if (check(sx,sy,i,j)&&h[i][j])
					ins(po(id(sx,sy),1),po(id(i,j),0),inf);
}

void init(){
	scanf("%d%d%d",&n,&m,&d);
	for (int i=1;i<=n;i++) scanf("%s",ch[i]+1);
	for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) h[i][j]=ch[i][j]-'0';
	for (int i=1;i<=n;i++) scanf("%s",ch[i]+1);
	for (int i=1;i<=n;i++) for (int j=1;j<=m;j++) map[i][j]=(ch[i][j]=='L');
	//for (int i=1;i<=n;i++,puts("")) for (int j=1;j<=m;j++) printf("%d",map[i][j]);
	for (int i=1;i<=n;i++)
		for (int j=1;j<=m;j++){
			int idx=id(i,j);
			if (h[i][j]){
				ins(po(idx,0),po(idx,1),h[i][j]);
				if (i<=d||i>=n-d+1||j<=d||j>=m-d+1) ins(po(idx,1),T,inf);
				build(i,j);
			}
			if (map[i][j]) ins(S,po(idx,0),1),cnt++;//,printf("fuckpp %d %d\n",i,j)
		}
}

bool bfs(){
	memset(dis,-1,sizeof(dis));
	q[tail=1]=S,dis[S]=head=0;
	while (head!=tail){
		if (++head>maxm) head=1;
		int x=q[head];
		for (int y=now[x];y;y=pre[y]) if (val[y]&&dis[son[y]]==-1){
			if (++tail>maxm) tail=1;
			q[tail]=son[y],dis[son[y]]=dis[x]+1;
		}
	}
	return dis[T]>0;
}

int find(int x,int low){
	if (x==T) return low;
	int y,res=0;
	for (y=now[x];y;y=pre[y]){
		if (dis[son[y]]!=dis[x]+1||!val[y]) continue;
		int tmp=find(son[y],min(low,val[y]));
		val[y]-=tmp,val[y^1]+=tmp,res+=tmp,low-=tmp;
		if (!low) break;
	}
	if (!y) dis[x]=-1;
	return res;
}

void work(){
	int ans=0;
	while (bfs()) ans+=find(S,inf);
	//printf("%d\n",ans);
	printf("%d\n",cnt-ans);
}

int main(){init(),work();return 0;}
/*
5 8 2
00000000
02000000
00321100
02000000
00000000
........
........
..LLLL..
........
........




3 3 1
000
011
000
...
.LL
...
*/


LSTM模型股价波动率预测(含Python代码) 源代码文件可在gzh’finance褪黑素'回复【24012203】获取。 阅读详情

相关推荐

AI大模型驱动的智能座舱研发体系重构

AI大模型正重构智能座舱研发体系的核心逻辑,需以场景认知为起点、混合架构为支柱、AI原生生态为落脚点。未来,研发体系需持续融合认知科学、边缘计算与开放生态理论,推动座舱从“工具”进化为“伙伴”。

我的专栏 1915

BZOJ1066: [SCOI2007]蜥蜴

BZOJ1066: [SCOI2007]蜥蜴 Description   在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外。 每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到平面距离不超过d的任何一个石柱上。 石柱都不稳定,每次当蜥蜴跳跃时,所离开的石柱高度减1(如果仍然落在地图内部,则到达的石柱高度不变),如果...

weixin_30242907的博客 113

「分治法」最近点对距离问题

一、问题描述 给定平面S上n个点,找其中的一对点,使得在n个点组成的 所有点对中,该点对间的距离最小。 假设所讨论的点是以标准笛卡儿坐标形式(x, y)给出的。因 此,在两个点Pi =(xi , yi )和Pj =(xj , yj )之间的距离是标准的欧几里德 距离: d = 根号下( x i − x j ) 2 + ( y i − y j )2 二、问题分析 直接用暴力解法很简单,用结构体把每个点的x、y坐标都存下来之后,用一个二重循环即可获得距离的最大值。但是这样做的时间复杂度也达到了O(n的平方)

Laok0413的博客 9655

BZOJ1066: [SCOI2007]蜥蜴 网络流

1066: [SCOI2007]蜥蜴 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 3554  Solved: 1777 [Submit][Status][Discuss] 题解: 想法: 一道不错的网络流,我们可以把一只蜥蜴从起始位置到离开边界的一条路径想象成单位1的流量。 对于一个流量,它会导致整条路径上的边的容量都-1,

Oakley 486

(数字ic验证)从零开始的apb_watchdog验证模块搭建(一、功能介绍与环境搭建)

apb_watchdog验证模块搭建(一)文章目录 文章目录apb_watchdog验证模块搭建(一)文章目录前言一、apb_watchdog简单功能介绍二、测试平台环境搭建1.测试所用模板介绍2.tb与interface2.env与watchdog_pkg3.test与base_sequence4.Makefile总结——当前验证结构 前言 本文介绍了apb_watchdog验证模块的搭建过程与其具体代码,主要包括其中验证环境的构建,测试序列的发送与回归测试收集。主要运用systemvorilog与u

peop1e的博客 9736

大疆无人机地理视频制作全流程:从SRT文件到GIS叠加(附实战避坑指南)

本文详细解析了大疆无人机地理视频制作全流程,从解析SRT文件中的位姿数据,到在GIS软件中构建地理视频工程并生成可分发的文件。文章重点介绍了地理视频的核心概念、数据处理实战技巧,并探讨了其在应急响应、工程巡检等场景的高级应用与精度边界,为GIS工程师和无人机爱好者提供了一份实用的避坑指南。

river的博客 463

Materials Studio多层聚合物建模全流程:从Build Layers到LAMMPS data文件导出避坑指南

本文详细解析了使用Materials Studio构建多层聚合物模型并导出为LAMMPS data文件的全流程。重点剖析了Build Layers工具的核心逻辑、真空层处理技巧,并提供了解决导出过程中Z轴坐标偏移问题的实战方案,特别是如何利用msi2lmp工具的-shift参数进行精准校正,确保模型在LAMMPS中模拟的稳定性和准确性。

hhh00的博客 913

[bzoj]1066: [SCOI2007]蜥蜴

原题链接:蜥蜴 理解很重要,理解很重要,理解很重要!! *** 分析: 看到这题首先可能会想到搜索:裸图?? 但是很明显搜索肯定会超时 观察题目,发现每根柱子有跳跃次数上限,想到了什么?? 网络流!! 题目中有坑,每根柱子上只能站一只蜥蜴这个条件其实是没用的。 因为蜥蜴不动的话对柱子高度是没有影响的,只要按顺序跳跃就行了。 那么怎么考虑跳跃次数呢? 可以把每个柱子拆成两个点,一个入点一...

Myka1991的博客 115

肿瘤基因组分析实战:VAF、MAF、CCF这些指标到底怎么算?(附Python代码示例)

本文通过Python代码示例,详细解析了肿瘤基因组分析中VAF、MAF和CCF三大核心指标的计算逻辑与应用。文章从VCF文件解析入手,逐步演示了变异等位基因频率、次等位基因频率及癌细胞分数的计算方法,并探讨了拷贝数变异对结果的影响及克隆结构推断的实战流程,为生物信息分析提供实用指南。

silver的专栏 1005

R语言LASSO回归作图为什么X轴使用-log(λ)而不是log(λ),如何转化为log(λ)?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1015

BZOJ 1066: [SCOI2007]蜥蜴

二次联通门 :BZOJ 1066: [SCOI2007]蜥蜴 /* BZOJ 1066: [SCOI2007]蜥蜴 拆点最大流 */ #include <cstdio> #include <iostream> #define rg register inline void read (int &...

weixin_30877755的博客 129

yolov26改进 | 检测头篇 | 利用渐近特征金字塔网络AFPN改进yolov26检测头融合P2网络结构(让小目标无所遁形,全网独家首发)

本文介绍一种基于AFPN渐近特征金字塔网络改进的YOLOv26四检测头Detect_FPN。AFPN通过逐级融合底层细节、中层结构与高层语义特征,缩小不同尺度特征之间的语义差距,减少直接融合带来的信息冲突,使检测头获得更稳定、更充分的多尺度表达。本文进一步增加高分辨率小目标检测分支,强化对微小目标、密集目标和复杂背景目标的感知能力,适合工业缺陷、遥感及无人机等场景。文中将展示基础模型与改进模型的训练对比结果,并提供完整代码、配置文件、模块注册方法及Codex修改思路,方便直接复现和二次创新。

Snu77的博客 367

【bzoj】 1066: [SCOI2007]蜥蜴 (网络流)

Description   在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外。 每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到平面距离不超过d的任何一个石柱上。石柱都不稳定,每次当蜥蜴跳跃时,所离开的石柱高度减1(如果仍然落在地图内部,则到达的石柱高度不变),如果该石柱原来高度为1,则蜥蜴离开后消失。以后其他蜥蜴不能

Follow My Heart 259

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

BZOJ 1066: [SCOI2007]蜥蜴 网络流题解

Time Limit: 1 Sec Memory Limit: 162 MB Submit: 4105 Solved: 2076Description  在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃 到边界外。 每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到平面距离不超过d的任何一个石 柱上。石柱都不稳定,每次当蜥蜴跳

Monica 539

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

bzoj 1066: [SCOI2007]蜥蜴(网络流)[省选计划系列]

1066: [SCOI2007]蜥蜴 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 3525  Solved: 1765 [Submit][Status][Discuss] Description   在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃 到边界外。 每行每列中相邻石柱的

lethalboy 409

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Linux ps命令完全指南:从进程查看到CPU飙高实战排查

在Linux运维中,进程管理是排查服务器异常的基础能力。当CPU飙升、内存告警或出现僵尸进程时,能否快速定位根源,往往取决于对进程查看工具的掌握程度。ps作为最核心的进程快照命令,能够输出PID、STAT状态码、%CPU、%MEM等关键指标,帮助工程师理解进程运行的全貌。其支持UNIX、BSD和GNU三种参数风格,ps aux与ps -ef的差异背后是历史演进的设计逻辑。掌握ps不仅能完成进程查找、线程查看、按资源排序等高频操作,更能结合top、ss等工具,形成从负载观察到父子关系确认的完整排查链路。无论是

weixin_34396103的博客 291

【BZOJ】1066: [SCOI2007]蜥蜴

【算法】网络流-最大流(dinic) 【题解】 构图思路: 因为石柱高度是可以被消耗的,即一根石柱可通过的蜥蜴数量有限,取舍问题中这样表示容量的属性显然可以作为网络流中的边。 于是将一根石柱拆成顶部和底部,中间连一条容量为石柱高度的边。 超级源向有蜥蜴的石柱顶连一条容量为1的边(表示一只蜥蜴)。 可以跳出地图的石柱底向超级汇连一条容量为inf的边。 d距离内的两根石柱连一条容量为in...

weixin_34228617的博客 97
上一篇: bzoj2756: [SCOI2012]奇怪的游戏
下一篇: bzoj3504: [Cqoi2014]危桥
thy_asdf
博客等级 码龄12年 16粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值