首页 > 编程语言 >2024牛客寒假算法基础集训营2(个人训练)

2024牛客寒假算法基础集训营2(个人训练)

时间:2024-12-28 10:41:18浏览次数:7  
标签:std int cin long 2024 牛客 vector 集训营 dir

Tokitsukaze and Cats

思路1

对没有只猫我们只需要枚举它的四个方向,看一下有没有猫,如果有他们就会公用一条边,需要注意的是这个方法会重复计算同一条共用的边,最后除2就行

代码1

#include <bits/stdc++.h>

typedef std::pair<int, int> pii;
#define INF 0x3f3f3f3f
#define MOD 998244353
using i64 = long long;
const int N = 1e5+5;

void solve(){
	int n, m, k, ans = 0, cnt = 0;
	std::cin >> n >> m >> k;

	std::queue<pii> q;

	std::vector t(n+2, std::vector<int>(m+2));
	for (int i = 0; i < k; i++){
		int a, b;
		std::cin >> a >> b;
		t[a][b] = 1;
		q.push(pii(a, b));
		ans += 4;
	}

	int dir[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};

	while (!q.empty()){
		auto [x, y] = q.front();
		q.pop();

		for (int i = 0; i < 4; i++){
			int dx = x + dir[i][0];
			int dy = y + dir[i][1];
			if (t[dx][dy] == 1){
				cnt++;
			}
		}
	}


	std::cout << (ans - cnt/2) << '\n';
}

signed main()
{
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);
	std::cout<<std::setiosflags(std::ios::fixed)<<std::setprecision(2);
	int t = 1, i;
	for (i = 0; i < t; i++){
		solve();
	}
	return 0;
}

思路2

看的别人的代码发现,其实可以用高中的知识,每一只猫都只看它的右上或左下,这样就避免了重复枚举的问题

代码2

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int i,j,k,n,m,t;
int f[666][666],res;

vector<pair<int,int> > d={{1,0},{-1,0},{0,1},{0,-1}};

int main(){
	ios::sync_with_stdio(0); cin.tie(0);
	cin>>n>>m>>t;
	res=t*4;
	while(t--){
		cin>>i>>j;
		f[i][j]=1;
	}
	for(i=1;i<=n;i++)for(j=1;j<=m;j++)if(f[i][j]){
		if(f[i+1][j])res--;
		if(f[i][j+1])res--;
	}
	cout<<res;
}

标签:std,int,cin,long,2024,牛客,vector,集训营,dir
From: https://www.cnblogs.com/califeee/p/18637248

相关文章

  • 关于IntelliJ IDEA 2024安装激活
      6G5NXCPJZB-eyJsaWNlbnNlSWQiOiI2RzVOWENQSlpCIiwibGljZW5zZWVOYW1lIjoic2lnbnVwIHNjb290ZXIiLCJhc3NpZ25lZU5hbWUiOiIiLCJhc3NpZ25lZUVtYWlsIjoiIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiIiwiY2hlY2tDb25jdXJyZW50VXNlIjpmYWxzZSwicHJvZHVjdHMiOlt7ImNvZGUiOiJQU0kiLCJmYWxsYm......
  • 【2024最新Java面试宝典】—— SpringBoot面试题(44道含答案)_java spingboot 面试题
    1.什么是SpringBoot?SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手。2.为什么要用SpringBoot快速开发,快速整合,配置简化、内嵌服务容器3.SpringBoot与Sp......
  • 2024中国AI大模型场景探索及应用报告,大模型!!!
    随着人工智能技术的飞速发展,AI大模型成为引领行业变革的引擎。2024年,中国AI大模型行业规模已达到147亿元,展现出巨大的潜力和发展空间。行业概况:蓬勃发展的AI大模型AI大模型是指拥有大规模参数的神经网络模型,其训练和应用需要大量算力和高质量数据资源。中国AI大模型行业正......
  • 《面试八股文》之2024年GitHub中文社区Java 领域又一份牛逼笔记
        今天讲讲跳槽。新年即将开启,一些不满现状,被外界的“高薪”“好福利”吸引的人,一般就在这时候毅然决然地跳槽了。跳槽是为了寻求更好的发展,但在跳槽前我们也不能确定下家就是更好的归宿,这就更加需要我们审慎地去对待,不能盲目跳槽。其次,我们离职和跳槽,其中的原因很大......
  • Vscode安装使用小白教程(深度学习前置工具2024.12.27)
    这里是Vscode的下载安装和前期工作配置教程,基础讲解。首先我们直接在浏览器搜索Vscode点击下载点击是电脑window系统酒店这个点击这个,就可以下载。下载完成后双击安装不必改动直接安装即可。安装好之后右键快捷方式查看兼容性,勾选以管理员身份运行此程序。双击打开......
  • RT-DETR融合[IJCV2024]LSKNet中的LSKBlock模块
    RT-DETR使用教程: RT-DETR使用教程RT-DETR改进汇总贴:RT-DETR更新汇总贴《LargeSelectiveKernelNetworkforRemoteSensingObjectDetection》一、模块介绍    论文链接:https://arxiv.org/pdf/2303.09030    代码链接:https://github.com/zcab......
  • 运算器(2)HNUST【计算机组成原理】(2024)
    1.实验目的熟练掌握算术逻辑单元(ALU)的应用方法;进一步熟悉简单运算器的数据传送原理;画出逻辑电路图及布出美观整齐的接线图;熟练掌握有关数字元件的功能和使用方法。熟练掌握子电路的创建及使用。2.实验原理本实验仿真单总线结构的运算器,原理如图2-2所示。相应的电路如......
  • 牛客小白月赛108 题解(出题人题解)
    比赛链接A$y=0$的情况,答案是$0$。$y>0$的情况,我们把每两次按钮先捆绑在一起,算出$k=\lceil\frac{y}{x+1}\rceil$。然后判断是否可以在前$2k-1$次就完成任务,即判断$(k-1)(x+1)+1\gey$。如果上式成立,答案是$2k-1$,否则是$2k$。B提供一个比较暴力的做法。对于......
  • [ 2024 · CISCN x 长城杯 ] pwn avm
    2024CISCNx长城杯AVMavmVM入门题。不过挺吃逆向经验的。之前都是复现,这算是第一次比赛的时候做出vm题。这个题的逆向思路非常经典,所以分享一下。1.程序逆向函数主函数如下:unsigned__int64__fastcallmain(__int64a1,char**a2,char**a3){_BYTEs[3080];//[rs......
  • 2024-2025-1 20241318 《计算机基础与程序设计》第十四周学习总结
    这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP(这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14这个作业的目标<学习《C语言程序设计》第13-14章并完成云班课测试>作业正文https://i.cnblogs.com/posts/......