首页 > 其他分享 >nflsoj 1351 抓住奶牛

nflsoj 1351 抓住奶牛

时间:2023-08-05 09:11:41浏览次数:32  
标签:return 第几个 nflsoj int 1351 拓展 坐标 奶牛

这题类似走迷宫,走迷宫是向四个方向进行拓展,而这道题好比是向三个方向拓展,分别是:\(x+1,x-1,x×2\)
在这里拓展的时候我写了一个函数 operation 来计算拓展后的坐标
这里判断坐标是否合法的时候我取了最大值的两倍加5,因为坐标不一定在 \(k\) 的左边,有可能超出去了再往回走,不过超出一次就行了,再超就没有意义了,那样往回走的步数更多
每个点记录两个东西,坐标以及是第几个拓展到的(时间)
注意:数组d是用来记录第几个拓展到的,所以初始化的时候是 d[n]=0;,把 \(n\) 当作是第0层往外拓展
最后返回 d[k] 就搞定了

#include <iostream>
#include <cstring>
using namespace std;
const int N = 100005;
typedef pair<int,int> PII; //当前位置及已经走了多少步
PII q[N];
int d[N];
int n,k;
int operation(int x,int i)
{
    if(i==0) return x+1;
    if(i==1) return x-1;
    if(i==2) return x*2;
}
int bfs()
{
    int hh=0,tt=0;
    q[0]={n,0};
    memset(d,-1,sizeof d);
    d[n]=0;
    while(hh<=tt)
    {
        PII t=q[hh++];
        for(int i=0;i<3;i++)
        {
            int x=operation(t.first,i);
            if(x>=0&&x<=200005&&d[x]==-1)
            {
                d[x]=d[t.first]+1;
                q[++tt]={x,t.second+1};
            }
        }
    }
    return d[k];
}
int main()
{
    cin>>n>>k;
    cout<<bfs();
    return 0;
}

标签:return,第几个,nflsoj,int,1351,拓展,坐标,奶牛
From: https://www.cnblogs.com/xiaozhu0602/p/17607481.html

相关文章

  • nflsoj 5924 选排列
    与全排列略微有些不同,只需要将退出条件需要改成u==r#include<iostream>usingnamespacestd;constintN=15;intr,n;intpath[N];boolst[N];voiddfs(intu){if(u==r){for(inti=0;i<r;i++)printf("%d",path[i]);printf("\n&......
  • nflsoj 5926 素数环
    题目非常简单,只需要判断相邻两个数的和是不是素数,素数的判断参考数论不过要注意的一点是题目说的是一个环,所以首尾两个数的和也要是素数我在输出的时候加上了is_prime(path[n-1]+1)来判断#include<iostream>usingnamespacestd;constintN=20;intn;intpath[N];bo......
  • P8271 [USACO22OPEN] COW Operations S 奶牛操作
    P8271[USACO22OPEN]COWOperationsS奶牛操作目录P8271[USACO22OPEN]COWOperationsS奶牛操作[USACO22OPEN]COWOperationsS题目描述输入格式输出格式样例#1样例输入#1样例输出#1提示分析code[P8271USACO22OPEN]COWOperationsS-洛谷|计算机科学教育新生态(......
  • Closest Cow Wins S 最近的奶牛获胜
    ClosestCowWinsS最近的奶牛获胜题目传送门目录ClosestCowWinsS最近的奶牛获胜题目描述输入格式输出格式样例#1样例输入#1样例输出#1提示思路code题目描述FarmerJohn沿着一条高速公路拥有一个很长的农场,可以被看作类似于一维数轴。沿着农场有\(K\)块草地(\(1\le......
  • BZOJ 1915: [Usaco2010 Open]奶牛的跳格子游戏 单调队列优化dp
    1915:[Usaco2010Open]奶牛的跳格子游戏TimeLimit: 4Sec  MemoryLimit: 64MBSubmit: 281  Solved: 110[Submit][Status][Discuss]Description奶牛们正在回味童年,玩一个类似跳格子的游戏,在这个游戏里,奶牛们在草地上画了一行N个格子,(3<=N<=250,000),编号为1..N......
  • P1578 奶牛浴场
    显然极大子矩形的任意边界要么上面有障碍点,要么贴着整个矩形的边界。枚举上边界,这样我们就只需要考虑上边界下面的那些点了,正反预处理出\(x\)轴严格单调递增的单调栈。再枚举下边界上的障碍点,根据向左向右能到的最远位置计算面积。具体实现时可以添加\((0,0)\)这个点,解决上......
  • 【寒假每日一题】AcWing 4818. 奶牛大学(补)
    一、题目1、原题链接4818.奶牛大学2、题目描述FarmerJohn计划为奶牛们新开办一所大学!有N头奶牛可能会入学。每头奶牛最多愿意支付ci的学费。FarmerJohn可以设定所有奶牛入学需要支付的学费。如果这笔学费大于一头奶牛愿意支付的最高金额,那么这头奶牛就不会入学。Farm......
  • 牛客题解-mixup2混乱的奶牛(状压dp)
    题解-mixup2混乱的奶牛[原题连接](1026-mixup2混乱的奶牛_2021秋季算法入门班第八章习题:动态规划2(nowcoder.com))题目描述混乱的奶牛[DonPiele,2007]FarmerJohn的N(4<=N<=16)头奶牛中的每一头都有一个唯一的编号S_i(1<=S_i<=25,000).奶牛为她们的编号感到骄傲......
  • 洛谷P1578 奶牛浴场
    题目大意又是农夫约翰有一个$L\timesW$的矩阵,中间有$n$个障碍,你要框出面积最大的一块长方形,其中不能包含障碍。数据范围对于所有数据,\(0\len\le5\times10^3,1\leL,W\le3\times10^4\)题解首先,可以根据极大化思想设计一个基本算法:枚举上下左右四个边界......
  • papamelon 344. 奶牛展览 Cow Exhibition(挑战程序设计竞赛) dp
    地址https://www.papamelon.com/problem/344贝西有权选择让哪些奶牛参加展览。由于负的智商或情商会造成负面效果,所以贝西不希望出展奶牛的智商之和小于零,或情商之和小于零。满足这两个条件下,她希望出展奶牛的智商与情商之和越大越好,请帮助贝西求出这个最大值。输入第一行:......