洛谷P2472蜥蜴

lizard:一个简单的代码复杂度分析器,无需关心CC ++头文件或Java导入,它支持大多数流行语言 蜥蜴 Lizard是可扩展的Cyclomatic Complexity Analyzer,适用于许多编程语言,包括C / C ++(不需要所有头文件或Java导入)。 它还执行复制粘贴检测(代码克隆检测/代码重复检测)和许多其他形式的静态代码分析。 支持的语言列表: C / C ++(适用于C ++ 14) Java C#(C夏普) JavaScript(使用ES6和JSX) 物镜 Swift Python Ruby TTCN-3 PHP Scala GDScript 高朗 a 锈 默认情况下,蜥蜴将搜索它知道的任何源代码并将所有结果混合在一起。 这可能不是您想要的。 您可以使用“ -l”选项来选择语言。 它很重要 nloc(无注释的代码行), CCN(圈复杂度数), 功能的令牌计数。 功能的参数计数。 您可以设置CCN限制(-C),参数数量(-a)。 超出 立即下载

题目描述

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

输入输出格式

输入格式:输入第一行为三个整数r,c,d,即地图的规模与最大跳跃距离。以下r行为石竹的初始状态,0表示没有石柱,1~3表示石柱的初始高度。以下r行为蜥蜴位置,“L”表示蜥蜴,“.”表示没有蜥蜴。

输出格式:输出仅一行,包含一个整数,即无法逃离的蜥蜴总数的最小值。

解析:挺好的建模思路。主要的难点就在于怎么处理柱子它会自己掉下去,这可以转化为改点的的入度多大,然后可以考虑将改点复制一遍,流量为柱子高度。

程序:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
#define inf 1e9
struct point
{
	int next;
	int to;
	int dis;
}e[100001];
int num,c,r,s,d,t,n,ans;
int head[1001],h[1001];
int g[1001][1001];
int get(int x,int y)
{
	return (x-1)*c+y;
}
void add(int from,int to,int dis)
{
	e[num].next=head[from];
	e[num].dis=dis;
	e[num].to=to;
	head[from]=num++;
}
int cal(int x1,int y1,int x2,int y2)
{
	return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
}
int dfs(int x,int dis)
{
	if(x==t)
		return dis;
	int sum=0;
	for(int i=head[x];i!=0;i=e[i].next)
	{
		int to=e[i].to;
		if(h[to]==h[x]+1&&e[i].dis)
		{
			int diss=dfs(to,min(dis,e[i].dis));
			if(diss>0)
			{
				sum+=diss;
				dis-=diss;
				e[i].dis-=diss;
				e[i^1].dis+=diss;
				if(!sum)
					break;
			}
		}
	}
	if(!sum)
		h[x]=-1;
	return sum;
}
bool bfs()
{
	memset(h,0,sizeof(h));
	h[s]=1;
	queue<int>q;
	q.push(s);
	while(!q.empty())
	{
		int x=q.front();
		q.pop();
		for(int i=head[x];i!=0;i=e[i].next)
		{
			int to=e[i].to;
			if(!h[to]&&e[i].dis)
			{
				q.push(to);
				h[to]=h[x]+1;
			}
		}
	}
	return h[t];
}
int dinic()
{
	int tot=0;
	while(bfs())
		tot+=dfs(s,inf);
	return tot;
}
int main()
{
	scanf("%d%d%d",&r,&c,&d);
	t=2*r*c+1;
	n=r*c;
	for(int i=1;i<=r;i++)
	{
		string s;
		cin>>s;
		for(int j=1;j<=c;j++)
		{
			int x=s[j-1]-48;
			int y=get(i,j);
			if(!x) 
				continue;
			add(y+n,y,0);
			add(y,y+n,x);
		}
	}
	for(int i=1;i<=r;i++)
	{
		string s;
		cin>>s;
		for(int j=1;j<=c;j++)
		{
			char c=s[j-1];
			if(c=='L')
			{
				ans++;
				int x=get(i,j);
				add(x,0,0);
				add(0,x,1);
			}
		}
	}
	for(int i=1;i<=r;i++)	
		for(int j=1;j<=c;j++)
		{
			if(i<=d||i+d>r||j<=d||j+d>c)
			{
				int x=get(i,j);
				add(t,x+n,0);
				add(x+n,t,inf);
			}
		}
	for(int i=1;i<=r;i++)
		for(int j=1;j<=c;j++)
			for(int k=1;k<=r;k++)
				for(int l=1;l<=c;l++)
				{
					int x1=get(i,j);
					int x2=get(k,l);
					if(x1!=x2&&cal(i,j,k,l)<=d*d&&!g[x1][x2])
					{
						g[x1][x2]=g[x2][x1]=1;
						add(x2,x1+n,0);
						add(x1+n,x2,inf);
						add(x1,x2+n,0);
						add(x2+n,x1,inf);
					}
				}
	cout<<ans-dinic();
	return 0;
}


Sparse4Dv3 instance_feature也设置为nn.Parameter。修正分支2*(linear->relu->linear->relu->layernorm)->linear->scale,分类分枝2*(linear->relu->layernorm)->linear(256,9),质量评估分枝2*(linear->relu->layernorm)->linear(256,2)。每组两类instance,1是加上范围(-x,x)内均匀分布噪声,2是加上(-2x,-x)U(x,2x)范围内均匀分布噪声。 阅读详情

相关推荐

香橙派5玩转SATA SSD:一个被忽略的overlays配置项,让你的Ubuntu系统飞起来

本文详细介绍了如何在香橙派5上通过配置`overlays=ssd-sata`启用SATA SSD作为系统启动盘,大幅提升Ubuntu系统的性能。文章深入解析了设备树覆盖的工作原理,提供了完整的配置流程和性能优化建议,帮助开发者充分发挥香橙派5的硬件潜力。

weixin_30787531的博客 220

【Python CI】圈复杂度 lizard

1. 圈复杂度 1.1 什么是圈复杂度? 引用[1] 圈复杂度是 Thomas J. McCabe 在 1976年开创的软件指标,用来判断程序的复杂度。这个指标度量源代码中线性独立的路径或分支的数量。根据 McCabe 所说,一个方法的复杂度最好保持在10 以下。这是因为对人类记忆力的研究表明,人的短期记忆只能存储 7 件事(偏差为正负 2)。 如果开发人员编写的代码有 50 个线性独立的路径,那么为了在头脑中描绘出方法中发生的情况,需要的记忆力大约超过短期记忆容量的 5倍。简单的方法不会超过人的短期记

彳亍的技术博客 5919

用PyTorch和snnTorch库5分钟搞定一个脉冲神经网络(SNN)手写数字识别Demo

本文详细介绍了如何使用PyTorch和snnTorch库快速搭建一个脉冲神经网络(SNN)手写数字识别Demo。通过模拟生物神经元的脉冲发放机制,SNN在低功耗场景中展现出独特优势。文章涵盖环境配置、数据预处理、模型构建、训练评估全流程,并提供了性能优化技巧和常见问题解决方案,帮助开发者在5分钟内实现高效的SNN应用。

weixin_29300931的博客 393

代码圈复杂度计算——Lizard库

lizard是一个轻量级、多语言支持的代码复杂度分析工具,最常用于计算圈复杂度(Cyclomatic Complexity)和代码行数。圈复杂度是衡量代码逻辑复杂性的一个常用指标,表示程序中独立执行路径的数量。圈复杂度越高,意味着代码中的条件分支越多,代码维护和测试的难度也会增加。lizardlizard支持的代码语言。

ziyuexuan2020的博客 2593

PADS VX 蛇形走线的设置方法与绕制

在PCB设计过程中,在等长的设置中是必须用到蛇形走线的,并且DDR模块也会经常使用到。因此掌握蛇形走线的设置方法对我们PCB高速板设计中有很大的帮助。下面介绍蛇形走线的设置方法与绕制。1.单根网络线的蛇形走线的设置:打开PADS router界面,点击“工具”→“选项”(快捷方式“Ctrl+Enter”),弹出“选项”窗口,选择“布线”界面下的“调整”,在“调整”界面,设置蛇形走线,倒角比例可以灵活设置。操作如下图所示:完成蛇形走线的配置后,快捷方式“F3”进行交互式布线时,单击右键选择“添加蛇形走线”,便

tianpu2320959696的博客 3393

PythonWeb开发框架—Django之工程创建和models的定义和增删改查

文章介绍了Django工程的创建、models的定义和增删改查

weixin_42476668的博客 991

lizard的基本使用

lizard基本使用

Artisan_w 7381

美亚杯取证比赛必备:Veracrypt挂载+检材解压保姆级教程(附常见错误排查)

本文提供美亚杯数字取证竞赛的Veracrypt挂载与检材解压保姆级教程。详细解析从分卷压缩包解压(密码格式为MeiyaCup+年份)到使用Veracrypt正确挂载加密容器的全流程,并附有常见错误排查与高级应急方案,帮助选手高效突破技术门槛,顺利进入取证分析阶段。

alice7model的博客 1043

Lizard项目中的代码复杂度理论解析

在软件开发中,代码复杂度是衡量代码质量的重要指标之一。terryyin/lizard项目提供了一套全面的代码复杂度分析工具,能够帮助开发者识别代码中潜在的复杂结构,从而指导代码重构和优化工作。 ## 圈复杂度(Cyclomatic Complexity)详解 圈复杂度(CCN)是衡量代码复杂度的经典指标,由Thomas McCabe于1976年提出。它通过计算程序控制流图中的线性独立路径数量来...

gitblog_00088的博客 430

本地快速部署谷歌开放模型Gemma教程(基于Ollama)

谷歌最近发布了新一代开源AI模型Gemma,此次发布的 Gemma 相比自家的 Gemini 更加轻量级,模型权重也一并开源。不仅可以在笔记本电脑上运行,而且还免费可商用,支持中文。运行速度飞快。

特立独行的博客 6716

Python语言基本语法元素

Python语言的基本语法元素:包括Python程序的格式框架,语法元素名称,数据类型和语句元素以及基本的输入输出函数。

Python全栈系列 8366

洛谷P2472 [SCOI2007]蜥蜴

题目:洛谷P2472 [SCOI2007]蜥蜴 思路: 好久没写网络流了,简单回顾一下思路。 数据范围不大,注意到每个石柱的经过次数限制,不难想到网络流。 无法离开的蜥蜴数=总蜥蜴数-可以逃离的蜥蜴数 蜥蜴只能在石柱之间移动,所以本质上只需考虑不同石柱间的限制,蜥蜴相当于多个源点。套路是建立超级源点,向不同源点连边。 石柱的经过次数限制是经典套路拆点为边,把每个石柱拆成入点出点,之间连一...

denge2160的博客 200

基于MATLAB实现语音信号MFCC特征提取(附完整代码)

你有没有想过你的智能手机是如何理解语音指令的?或者 Alexa 和 Siri 等语音助手如何处理您的命令?这种卓越能力背后的机制在很大程度上归功于一种称为 Mel 频率倒谱系数 (MFCC) 的方法。语音识别技术允许机器解释人类语音,将口语转换为计算机可以操纵的格式。这项技术对于开发交互式和响应式 AI 至关重要,例如声控助手、自动化客户服务系统和实时翻译服务。MFCC 代表 Mel 频率倒谱系数。这是用于自动语音和说话人识别的功能。

baidu_34971492的博客 1313

洛谷P2472 [SCOI2007]蜥蜴 题解

题目链接: https://www.luogu.org/problemnew/show/P2472 分析: 这道题用最大流解决。 首先构建模型。 一根柱子可以跳入和跳出,于是拆成两个点:入点和出点。 每一根柱子的入点和出点连一条流量为高度的边,来限制蜥蜴跳入的次数。 当柱子a可以调到柱子b时,就从a的出点向b的入点连边,流量inf。 S向所...

ShineEternal的笔记小屋 390

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【题解】洛谷 P2472 [SCOI2007] 蜥蜴 [网络流]

我小时候老以为蜥蜴和蝾螈是一个东西。

Isaac Regulus的博客 362

efm32 入门.pdf

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

[洛谷P2472] [SCOI2007]蜥蜴

题目链接: 蜥蜴 题目分析: 一道网络流,先来分析一下问题: 在一个\(r*c\)的图中分布了一些数,其他地方都用\(0\)填充,我们分别从指定的一些数出发,每次可以移动到周围距离为\(d\)以内的数上(或图外),原来的数会被\(-1\),任何时候数不能为负。各个数走法之间互相影响。问至多有多少个数出发能到达图外? 把这个题的限制条件列出来一下吧: 每个石柱只能站一只蜥蜴 每个石柱最多...

kma_093 242

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

洛谷 - P2472 [SCOI2007]蜥蜴(最大流)

题目链接:点击查看 题目大意:给出一个 n * m 的迷宫,每个位置都有一个耐久度,也就是至多经过 a[ i ][ j ] 位置 ( i , j),现在迷宫中有一些蜥蜴,每一时刻在每一个位置至多有一个蜥蜴,每只蜥蜴每次可以跳到欧几里得距离不超过 d 的格子中,迷宫的边界即为出口,问最少有多少只蜥蜴无法逃出迷宫 题目分析:遇事不决刷刷水题。。总感觉这道题很久很久以前做过一次,可能是在梦里做的吧 最少有多少只蜥蜴无法逃出 -> 最多能逃出多少只蜥蜴 每个位置都有容量,所以拆点限流 所以随便搞搞.

Falcon的博客 451

洛谷P2472 [SCOI2007]蜥蜴——题解

题目传送门 题目大意: 有一张n*m的网格地图(习惯用n*m了),有些地方有柱子,柱子有高度,有的柱子上有蜥蜴,蜥蜴能跳到与它的欧氏距离小于等于d的柱子上(与边界的距离小于等于0可以直接跳出地图),并且起跳的柱子的高度会减1,高度减为0的柱子不能再跳到上面去。问怎样安排能使尽量多的蜥蜴跳出地图,输出最少的不能跳出去的蜥蜴个数。 思考过程: 题目中有一个干扰条件:“任何时刻不能有两只蜥蜴...

CleverLarry的博客 347

【洛谷 P2472】 [SCOI2007]蜥蜴 (最大流)

题目链接 简单网络流。 源点向蜥蜴连流量为\(1\)的边。 能跳出去的点向汇点连流量为\(INF\)的边。 把每个点拆成\(2\)个点,\(O(n^4)\)枚举两两点,如果距离小于等于\(d\),就互连流量为\(INF\)的边。 然后跑\(dinic\)就行了。 #include <cstdio> #include <queue> #include <cmath&gt...

weixin_30477293的博客 89

BZOJ1066 (洛谷P2472) [SCOI2007]蜥蜴

最大流BZOJ题目传送门洛谷题目传送门根据题意,每当蜥蜴跳过时柱子长度就会减1,不难想到可以建图跑最大流。 建图方法如下:①:对于每个点,拆为两个点:id与id+r*c,则对于开始给你的柱子长度a[i][j],可以连一条id–>id+r*c的容量为a[i][j]的边。 ②:对于两两之间建边idx与idy,建一条idx+r*c–>idy的容量为∞的边。 ③:建立一个超级源(s),对于每个上面有蜥

forezxl的博客 341

洛谷 2472 [SCOI2007]蜥蜴 题解

博客观赏效果更佳 题意简述 有一个 n×mn\times mn×m 的矩阵,其中一些位置上有蜥蜴。每个位置上有一个石柱,给你他们初始的高度 ai,ja_{i,j}ai,j​。一个蜥蜴可以从一个石柱,跳到直线距离 ≤k\le k≤k 的另一个石柱上。当一只蜥蜴从一个石柱上离开的时候,这个石柱的高度就会减少 111 。如果蜥蜴跳到了矩阵外面,就是逃离了。请你求最少有多少只不能逃离(其实就是最多能逃离几...

LightningUZ的博客 359

网络流_洛谷P2472

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

phacpf123 170

luogu2472 [SCOI2007]蜥蜴

最大流

ACoder 394
上一篇: 洛谷 P1345 奶牛的电信
下一篇: 洛谷P2598 狼和羊的故事
Slr2002
博客等级 码龄9年 3粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值