首页 > 其他分享 >Game on Paper 题解

Game on Paper 题解

时间:2023-05-24 13:23:24浏览次数:46  
标签:格子 int 题解 矩阵 vis Game Paper dx dy

题目传送门

一道模拟题。

如果每涂一个格子就判断整个矩阵,那时间复杂度显然会炸。

我们每涂一个格子,影响的应该只是以这个格子为中心的 \(3 \times 3\) 矩阵,判断以这些点为中心的话会不会涂出 \(3 \times 3\) 的矩阵即可。

Code

#include <bits/stdc++.h>
#define ll long long
#define INF 1e9
using namespace std;
int n, m;
int dx[9] = {1, 1, 1, -1, -1, -1, 0, 0, 0}; // x 坐标变化
int dy[9] = {0, -1, 1, 0, -1, 1, 0, -1, 1}; // y 坐标变化
bool vis[1005][1005];
bool check(int x, int y) {
    for (int i = 0; i < 9; i++) {
        if (!vis[x + dx[i]][y + dy[i]]) return 0;
    }
    return 1;
}
signed main() {
    ios :: sync_with_stdio(0);
    cin >> n >> m;
    for (int i = 1; i <= m; i++) {
        int x, y;
        cin >> x >> y;
        vis[x][y] = 1;
        for (int j = 0; j < 9; j++) {
            if (check(x + dx[j], y + dy[j])) {
                cout << i;
                return 0; // 直接结束程序
            }
        }
    }
    cout << -1;
    return 0;
}

标签:格子,int,题解,矩阵,vis,Game,Paper,dx,dy
From: https://www.cnblogs.com/xvl-/p/17428020.html

相关文章

  • 2023(ICPC)江西省赛I题题解
    I.Tree题意:两种操作,操作1:将一棵树一条路径上的边权异或上一个数,操作2:或者询问一个点周围所有边权的异或和。题解:首先,异或有一个性质A⨁A=0⇒A⨁B⨁A=B在进行操作一时,对X到Y的简单路径上的每一条边权异或,会是这样的情况X_w1_Z_w2_P_w3_Y,根据上面......
  • Paper Reading: forgeNet a graph deep neural network model using tree-based ensem
    目录研究动机文章贡献本文方法图嵌入深度前馈网络forgeNet特征重要性评估具体实现模拟实验合成数据生成实验评估实验结果真实数据应用BRCA数据集microRNA数据Healthyhumanmetabolomics数据集优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重......
  • CF1196F K-th Path 题解 floyd
    题目链接:https://codeforces.com/problemset/problem/1196/F题目大意:给定一个包含\(n\)个节点\(m\)条边的无向图(\(n,m\le2\cdot10^5\))。图中任意两点之间(如果连通的话)都存在一条最短路(节点\(i\)到它自己不算最短路,\(i\)到\(j\)的最短路和\(j\)到\(i\)的最短......
  • JOISC 2022 题解
    JOISC2022Day1监狱Jail首先我们发现操作一定是给所有人排序,然后按照顺序直接从\(s_i\)挪到\(t_i\),要求是对于\(i\),所有在它之前挪的\(t\)不能在\(s_i\tot_i\)上,所有在它之后挪的\(s\)不能在\(s_i\tot_i\)上。有了这个条件我们就可以\(O(n^2)\)建图。但是这样......
  • abc271_e Subsequence Path 题解
    SubsequencePath题意有\(n\)个城市和\(m\)条有向道路,编号从\(1\)开始,第\(i\)条道路从\(a_i\)到\(b_i\),长度为\(c_i\)。给定一个长度为\(k\)的序列\(e\),我们定义从\(1\)到\(n\)的一条路径是优秀的当且仅当:经过的边的编号按顺序构成\(e\)的一个子序列。......
  • NOIP2016普及组试题题解
    1.买铅笔代码:#include<bits/stdc++.h>#definelllonglongusingnamespacestd;intn,ans=1e9,a,b;intmain(){ cin>>n; for(inti=1;i<=3;i++){ cin>>a>>b; ans=min(ans,int(ceil(n*1.0/a)*b)); } cout<<ans; return0;}......
  • CF1770F 题解
    \(\text{link}\)。很困难的二进制计数。前置知识\(1\):范德蒙德卷积推广。即\(\sum\limits_{a_1+a_2+\dots+a_n=k,a_i\in\N}\prod\limits_{j=1}^n\dbinom{b_i}{a_i}=\dbinom{b_1+b_2+\dots+b_n}{k}\)。这里给一个组合意义的证明。\(RHS\)相当于在\(\sumb_i\)个物品中选......
  • Atcoder Beginner Contest ABC302 题解
    代码见此:https://atcoder.jp/contests/abc302/submissions?f.Task=&f.LanguageName=&f.Status=&f.User=frequenter。AAttackhttps://atcoder.jp/contests/abc302/tasks/abc302_a直接计算a/b,有余数的话答案加一。BFindSnukehttps://atcoder.jp/contests/abc302/tasks/abc......
  • NOIP2017普及组试题题解
    1.成绩原题:https://www.luogu.com.cn/problem/P3954代码:#include<bits/stdc++.h>#definelllonglongusingnamespacestd;inta,b,c;intmain(){ cin>>a>>b>>c; cout<<a/10*2+b/10*3+c/10*5; return0;}解题思路:因为数据保证a,b,c都是10的......
  • III.追想 题解
    原题链接我第一次出的一道比较正经的菜题,欢迎大家来切哦。感谢魔法少女老干妈GM_Joanna_的支持对于操作1,3:注意到1e9的数据至多5此操作就能把一个位置变为0,这个次数可视为常数。考虑每个位置暴力改,也只会递归\(5\timesn\logn\)次。对于3操作,考虑最坏的情况,每......