首页 > 其他分享 >P2285 [HNOI2004] 打鼹鼠

P2285 [HNOI2004] 打鼹鼠

时间:2024-04-05 14:48:20浏览次数:24  
标签:int 鼹鼠 mouselst times ++ HNOI2004 include P2285 dp

题目:
链接:https://www.luogu.com.cn/problem/P2285
这题感觉如果想不到递推关系可能会很麻烦,因为我之前想到的关系就是用dp存:包含三个维度:times,x,y,即dp[times][x][y]来存,然后递推。
但是如果把dp看作是以p结尾的抓到的耗子数量时就会方便很多

同时要注意,每次到一个点的时候先立为1,因为无论怎么样这个都是肯定可以抓到的
O(n^2),感觉有点水?(

#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<sstream>
#include<string>
#include<string.h>
#include<iomanip>
#include<stdlib.h>
#include<map>
#include<queue>
#include<limits.h>
#include<climits>
#include<fstream>
#include<stack>
typedef unsigned long long ll;
using namespace std;

const int N = 1e4 + 1;
int n, m;
struct mouse
{
	int times, x, y;
}mouselst[N];
int dp[N];
bool is_get(mouse a, mouse b)
{
	if (abs(a.x - b.x) + abs(a.y - b.y) <= abs(a.times - b.times))return true;
	return false;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cin >> n >> m;
	for (int i = 0; i < m; i++)cin >> mouselst[i].times >> mouselst[i].x >> mouselst[i].y;
	for (int i = 0; i < m; i++)
	{
		dp[i] = 1;//this!important
		for (int j = 0; j < i; j++)
			if (is_get(mouselst[i], mouselst[j]))
				dp[i] = max(dp[i], dp[j] + 1);
	}
	int ans = 0;
	for (int i = 0; i < m; i++)ans = max(ans, dp[i]);
	cout << ans ;
	
	return 0;
}

标签:int,鼹鼠,mouselst,times,++,HNOI2004,include,P2285,dp
From: https://www.cnblogs.com/zzzsacmblog/p/18115735

相关文章

  • 打鼹鼠
    鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的。根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个nn的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气。你可以控制一个机器人来打鼹鼠,如果i时刻鼹鼠在某个网格中出现,而机器人也处于同一网格的......
  • 「杂题乱刷」洛谷P2285
    题目传送门一道小清新动态规划题,直接设\(dp[i]\)表示前\(i\)个鼹鼠最多能打到几个,然后状态转移方程也很好想了。参考代码:点击查看代码#include<bits/stdc++.h>usingnamespacestd;longlongn,m,ans,dp[10010],x[10010],y[10010],times[10010];#definelowbit(x)x&-......
  • 洛谷 P2290 [HNOI2004] 树的计数(Prufer序列,Cayley 公式)
    传送门解题思路关于Prufer序列的构造,见OI-wiki这里直接放结论:一个Prufer序列与一个无根树一一对应度数为\(d_i\)的节点在序列中出现了\(d_i-1\)次\(\sum(d_i-1)=n-2\)n个点的完全图的生成树有\(n^{n-2}\)种所以相当于n-2个数(有重复的)进行全排列,答案即为:\[\frac......
  • [刷题笔记] Luogu P2285 [HNOI2004] 打鼹鼠
    ProblemAnalysis我们初始可以任意决定机器人的位置,状态很多,暴力显然会寄掉。不妨先贪心的思考一下。我们肯定希望机器人初始在最先出现鼹鼠的洞,因为出现在没有鼹鼠的洞是无效的。题目保证输入数据是严格按照出现时间递增顺序给出。定义\(f_i\)表示前\(i\)只鼹鼠最多能打到......
  • P2292 [HNOI2004] L 语言
    给出字典(个数为\(n\))和文章(个数为\(m\)),求文章最大匹配前缀。\(n\leq20,m\leq50\),\(|s|\leq20,|t|\leq2\times10^6\)首先想到用AC自动机,在每个字串结尾标记串......
  • [HNOI2004] L 语言 题解(AC 自动机上 dp)
    前言:原版数据超弱,爆搜就能过(即洛谷里面80分的数据),在此不多说,这里讲的是正解。(如果不是正解我还敢写题解吗)唔······话说洛谷里的题解用的都有状压,蒟蒻表示这题不......