首页 > 其他分享 >CSP_202206-2_寻宝!大冒险!

CSP_202206-2_寻宝!大冒险!

时间:2022-09-02 21:24:27浏览次数:66  
标签:202206 psi int scanf ++ CSP 大冒险

CSP_202206-2_寻宝!大冒险

题目链接

思路

相当于判断两个有限集合AB之间是不是满射和单射,只需要保证以下两点

  1. A和B元素个数相等
  2. A中每个元素都能通过映射\(\psi\)到B中一个元素,且\(\psi(a_1)=\psi(a_2) \iff a_1 = a_2\)

输入的矩阵格式和我们平常看到的坐标系,xy轴是反过来的

#include<iostream>
using namespace std;
int main() {
	int n, L, S;
	scanf("%d%d%d", &n, &L, &S);
	int A[n][2];
	int B[S+1][S+1];
	int t_in_b = 0, ans = 0; // number of trees in B 
	for (int i = 0; i < n; i++) {
		scanf("%d%d", &A[i][0], &A[i][1]);
	}

	for (int i = 0; i < S+1; i++) {
		for (int j = 0; j < S+1; j++) {
			scanf("%d", &B[S-i][j]);
			if (B[S-i][j] == 1) t_in_b++;
		}
	}

	for (int i = 0; i < n; i++) {
		// tree out of B
		if (A[i][0] + S > L || A[i][1] + S > L) {
			continue;
		}
		// 
		int t_in_a = 0;
		for (int j = 0; j < n; j++) {
			int x = A[j][0] - A[i][0];
			int y = A[j][1] - A[i][1];
			if (0 <= x && x <= S && 0 <= y && y <= S) t_in_a += 1;
		}
		if (t_in_a != t_in_b) continue; // tree num not same
	
		bool flag = true;
		for (int j = 0; j < n; j++) {
			int m = A[j][0] - A[i][0];
			int n = A[j][1] - A[i][1];
			if (0 <= m && m <= S && 0 <= n && n <= S){
				if (B[m][n] == 1) continue;
				else {
					flag = false;
					break;
				}
			}
		}
		if (flag) ans += 1;
		else continue;
	}

	printf("%d", ans);
	return 0;
}

标签:202206,psi,int,scanf,++,CSP,大冒险
From: https://www.cnblogs.com/ticlab/p/16651248.html

相关文章

  • hzx的CSP-J模拟赛题解
    T1按题意模拟即可,注意不用考虑闰年。T2\(30\%\)的数据:使用\(Floyd\)求出图的全源最短路,时间复杂度\(O(n^3)\)。\(50\%\)的数据:对图上每个点使用\(Dijkstra\)求......
  • CSP2022初赛笔寄
    下面的全都不会图论存储图邻接矩阵(权矩阵)边集数组邻接表最小生成树MSTPrim(贪心)Kruskal(贪心)最短路Floyd(₯)(多源最短路APSP)Dijkstr......
  • CSP基础知识(汇总)
    目录linux基础命令进制转换排序算法原码、补码、反码、计算运算符linux基础命令ls--查看当前目录下所有文件cd--切换目录cp--复制文件mv--移动文件touch--建立新......
  • CSP 202006-1 202006-2 题解
    #202006-1线性分类器在坐标系中,我们可以考虑使用同一横坐标x值对应的y值来判断在直线的上方一侧还是在下方一侧。当然,如果不在坐标系中也可以统计点和直线的位置关系,这......
  • CSP认证(2022-06-12)
    Themorepeopleyoulove,theweakeryouare.Thethingswelovedestroyuseverytime.\(vscode\)也配置好了,\(html\)慢慢摸索着也能写些简单的本地网页了,\(CSP\)......
  • 2022河南萌新联赛第(七)场:南阳理工学院ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛牛客
    2022河南萌新联赛第(七)场:南阳理工学院ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛牛客竞赛OJ(nowcoder.com)1.B-龍_2022河南萌新联赛第(七)场:南阳理工学院(nowcoder.com)......
  • NOIp/CSP-S 历年真题混做
    由于自己比较菜,还不希望考的太差,>-<抽出时间狠狠的练了预计到CSP复赛之前都会做。排除一些原来已经刷过去了的题,写一些简单的题解。P1082[NOIP2012提高组]同余......
  • P7071 [CSP-J2020] 优秀的拆分
    题目描述一般来说,一个正整数可以拆分成若干个正整数的和。例如,1=11=1,10=1+2+3+410=1+2+3+4 等。对于正整数 nn 的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆......
  • P5660 [CSP-J2019] 数字游戏
    题目描述小K同学向小P同学发送了一个长度为8的 01字符串来玩数字游戏,小P同学想要知道字符串中究竟有多少个1。注意:01字符串为每一个字符是0或者1的字符......
  • P5681 [CSP-J2019 江西] 面积
    题目描述Alice有一个边长为 aa 的正方形,Bob有一个长宽分别为 b,cb,c 的矩形,请你告诉他们俩谁的图形面积更大。输入格式仅一行三个正整数 a,b,ca,b,c输出格......