牛客-策策学长找py

2024-01-15 07:50
文章标签 牛客 py 学长 策策

本文主要是介绍牛客-策策学长找py,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

在上一集中(新生赛),策策学长的 hxd 终于帮助策策学长打到了超凡大师,但是他却拿走了策策学长的 py。(某python项目源码真的是源码吗?))
策策学长决定找回他自己 py,但他的 py 被分裂成了 k 份,被无情的散布在一个 n×m 的网格中,他需要找回所有的 py 碎片来重获 py。
策策学长从 (1, 1)(1,1) 出发走到 (n, m)(n,m),每次只能向下或者向右移动一格,策策学长会在移动的过程中收集 py 碎片,请你帮他判断是否能收集到所有的 py 碎片。

输入描述

第一行有一个正整数 T(1<=T<=1000),表示有 T 组数据。对于每一组样例,第一行有三个正整数 n, m, k,其中 1<=n,m<=10^4,1<=k<=nm.接下来的 k 行,每行有两个正整数xi,yi其中1 <= xi <= n,1 <= yi <= m.保证全部 T 组输入满足∑k⩽2×10 ^5,同一个格子可能含有多个py碎片。
输入描述
输出 TT 行, 每行输出 `YES` 或者 `NO`, 
表示策策学长是否能找回他的 py。
示例 1:
输入:
2
3 3 3
1 1
2 2
3 3
3 3 3
1 1
1 2
2 1
输出:
YES
NO
说明

样例的两张图如下所示:
左图可以通过:向右、向下、向右、向下的步骤找到所有 py 碎片,输出 YES, 右图无解输出 NO.

在这里插入图片描述

Java代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;public class Main {//拿人家py真过分public static void main(String[] args) throws IOException {//InputReader是自己写的一个输出类,代码就不放了,你可以换成scanner。InputReader scanner = new InputReader(System.in);int t = scanner.nextInt();for (int i = 0; i < t; i++) {int n = scanner.nextInt();int m  = scanner.nextInt();int k  = scanner.nextInt();int[][] arr = new int[k][2];boolean flag = true;for (int j = 0; j < k; j++) {arr[j][0] = scanner.nextInt();arr[j][1] = scanner.nextInt();}Arrays.sort(arr, new sort2());for (int j = 0; j < k-1; j++) {if(arr[j+1][1] < arr[j][1]){flag = false;break;}}if (flag) {System.out.println("YES");}else {System.out.println("NO");}}}
}
class sort2 implements Comparator<int[]> {@Overridepublic int compare(int[] o1, int[] o2) {if(o1[0] > o2[0]) {return 1;} else if(o1[0] == o2[0]){if(o1[1] > o2[1]){return 1;}else if(o1[1] == o2[1]){return 0;}else{               return -1;}}else{return -1;}}
}
解题思路

对数组进行排序,要自定义排序规则,注意不要写错,比赛时就因为一个下标写错,结果一直没过去(草),
优先对x排序,x想等则对y排序,我们只需保证排序后的数组中y有序递增即可证明可以收集到全部py(笑😂 ),不要想着生成数组后用什么动归,那玩意时间复杂度应该是nmt,太高了,而且生成数组会占用大量空间,我们这样时间复杂度是tlogk,而且空间应该也是tk。

这篇关于牛客-策策学长找py的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/608165

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

LibSVM学习(六)——easy.py和grid.py的使用

我们在“LibSVM学习(一)”中,讲到libSVM有一个tools文件夹,里面包含有四个python文件,是用来对参数优选的。其中,常用到的是easy.py和grid.py两个文件。其实,网上也有相应的说明,但很不系统,下面结合本人的经验,对使用方法做个说明。        这两个文件都要用python(可以在http://www.python.org上下载到,需要安装)和绘图工具gnup

牛客小白月赛100部分题解

比赛地址:牛客小白月赛100_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A.ACM中的A题 #include<bits/stdc++.h>using namespace std;#define ll long long#define ull = unsigned long longvoid solve() {ll a,b,c;cin>>a>>b>

牛客小白月赛100(A,B,C,D,E,F三元环计数)

比赛链接 官方讲解 这场比较简单,ABC都很签到,D是个不太裸需要预处理的 B F S BFS BFS 搜索,E是调和级数暴力枚举,F是三元环计数。三元环考的比较少,没见过可能会偏难。 A ACM中的A题 思路: 就是枚举每个边变成原来的两倍,然后看看两短边之和是否大于第三边即可。 不能只给最短边乘 2 2 2,比如 1 4 8 这组数据,也不能只给第二短边乘 2 2 2,比

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机(二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用,那个马的关系,后面就注意,dp需要作为long的类型。 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publ

每日OJ_牛客_求和(递归深搜)

目录 牛客_求和(递归深搜) 解析代码 牛客_求和(递归深搜) 求和_好未来笔试题_牛客网 解析代码         递归中每次累加一个新的数,如果累加和大于等于目标,结束递归。此时如果累加和正好等于目标,则打印组合。向上回退搜索其它组合。此题本身就是一个搜索的过程,找到所有的组合。 #include <iostream>#include <cmath>#in

python IDLE的执行py文件

Import 在IDLE下也可以用import来运行文件。如运行test.py文件:improt test 但是对于一个文件,improt只能在第一次导入时运行文件。在第一次导入之后,其他的导入都不会再工作,甚至在另一个窗口中改变并保存了模块的源代码文件也不行。实验了下,发现重启IDEL后依然不行。这是有意设计的结果。导入是一个开销很大的操作以至于每个程序不能够重复多于1次。 Reload

YOLOV5入门教学-common.py文件

在 YOLOv5 框架中,common.py 文件是一个核心组件,负责定义深度学习模型的基础模块和常用操作。无论是卷积层、激活函数、特征融合还是其他复杂的模型结构,common.py 都提供了灵活且高效的实现。在这篇文章中,我们将深入解析 common.py 的设计思想、各个模块的功能以及它在 YOLOv5 中的应用。通过理解该文件的实现细节,不仅可以帮助我们更好地掌握 YOLOv5 的内部结构,