首页 > 其他分享 >13.非常可乐

13.非常可乐

时间:2023-04-04 21:56:42浏览次数:37  
标签:非常 13 dist min int max && include 可乐

原题链接:https://www.acwing.com/solution/content/90865/


#include<iostream>
#include<queue>
#include<cstring>
using namespace std;

const int N=105,INF=0x3f3f3f3f;
int s,n,m;
struct colo{
    int x,y,z;
};
int dist[N][N][N];

int bfs()
{
    queue<colo> q;
    q.push({s,0,0});
    memset(dist,0x3f,sizeof dist);
    dist[s][0][0]=0;
    while(q.size())
    {
        auto t=q.front();
        q.pop();
        if((t.x==t.y&&t.z==0)||(t.x==t.z&&t.y==0)||(t.y==t.z&&t.x==0)){
            return dist[t.x][t.y][t.z];
        }
        //1-2,2-1,1-3,3-1,2-3,3-2
        int dx[6]={max(t.x-n+t.y,0),min(s,t.x+t.y),max(t.x-m+t.z,0),min(s,t.x+t.z),t.x,t.x};
        int dy[6]={min(n,t.y+t.x),max(0,t.y-s+t.x),t.y,t.y,max(0,t.y-m+t.z),min(n,t.y+t.z)};
        int dz[6]={t.z,t.z,min(m,t.z+t.x),max(0,t.z-s+t.x),min(m,t.z+t.y),max(0,t.z-n+t.y)};
        for(int i=0;i<6;i++)
        {
            if(dist[dx[i]][dy[i]][dz[i]]==INF)
            {
                dist[dx[i]][dy[i]][dz[i]]=dist[t.x][t.y][t.z]+1;
                q.push({dx[i],dy[i],dz[i]});
            }
        }
    }
    return INF;
}

int main()
{
    while(cin>>s>>n>>m,s||n||m)
    {
        if(s&1) puts("NO");
        else {
            int t=bfs();
            if(t==INF) puts("NO");
            else cout<<t<<endl;
        }
    }
    return 0;
}

标签:非常,13,dist,min,int,max,&&,include,可乐
From: https://www.cnblogs.com/linearlearn/p/17288028.html

相关文章

  • 洛谷4113(树状数组+离线处理)
    [HEOI2012]采花题目描述萧薰儿是古国的公主,平时的一大爱好是采花。今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花。花园足够大,容纳了$n$朵花,共有$c$种颜色,用整数$1\simc$表示。且花是排成一排的,以便于公主采花。公主每次采花后会统计采到的花的颜色数,颜色......
  • 39. 组合总和 40.组合总和II 131.分割回文串
    39.组合总和自己写的回溯算法:classSolution{List<List<Integer>>list;LinkedList<Integer>res;publicList<List<Integer>>combinationSum(int[]candidates,inttarget){list=newArrayList<>();res=......
  • 报错ValidationError: Progress Plugin Invalid Options (非常重要)
    此方法可以解决:使用Vue-ptf时报错:maintemplate.hooks.hotbootstraphasbeenremoved(useyourownruntimemodule和package-lock.json导包( less,lessloader)和(npminstallpdfjs-dist--save)等后出现ValidationError:ProgressPluginInvalidOptions两种问......
  • 138. 复制带随机指针的链表
    /*//DefinitionforaNode.classNode{public:intval;Node*next;Node*random;Node(int_val){val=_val;next=NULL;random=NULL;}};*/classSolution{public:Node*copyRandomList(Node*......
  • [小迪安全]笔记 day12、13 MySQL注入
    1.简单案例1.1简易代码分析SQL注入原理http://localhost:8085/sqli-labs/Less-2/index.php?id=2id=2正常查询http://localhost:8085/sqli-labs/Less-2/index.php?id=-2id=-2的话什么都查不出来,表中没有负数的id。http://localhost:8085/sqli-labs/Less-2/index.php?......
  • 1345. 跳跃游戏 IV
    题目描述给一个数组arr,起点是0,终点是n-1有3种选择:可以退一步、进一步、跳到值相等的位置问跳到终点的最少操作次数?f1哈希表+bfs基本分析为什么是bfs?求从起点到终点的最短路图是什么?当前节点到前、后、等值可跳的索引怎么获取x到所有等值点索引y的映射关系?哈希表预处理......
  • 51nod 1327 棋盘游戏
    1327 棋盘游戏题目来源: TopCoder基准时间限制:1 秒空间限制:131072 KB分值: 640 难度:8级算法题 收藏 关注有一个N行M列的棋盘,即该棋盘被分为N*M格。现在向棋盘中放棋子,每个格子中最多放一个棋子,也可以一个不放。放完棋子后需要满......
  • 51nod 1370 排列与操作
    1370 排列与操作题目来源: TopCoder基准时间限制:2 秒空间限制:131072 KB分值: 320 难度:7级算法题 收藏 关注给定N长排列P,其中排列指数集{1,2,3...N}组成的一个序列,序列中每个元素恰好出现一次。初始时这个排列是给出的。之......
  • 一个非常简单用.NET操作RabbitMQ的方法
    一个非常简单用.NET操作RabbitMQ的方法 RabbitMQ作为一款主流的消息队列工具早已广受欢迎。相比于其它的MQ工具,RabbitMQ支持的语言更多、功能更完善。 本文提供一种市面上最/极简单的使用RabbitMQ的方式(支持.NET/.NETFramework/.NETCore),只需要会调用以下三个方法,你就几......
  • 实验一-密码引擎-3-加密API研究--20201313
    目录微软的CryptoAPI加密技术PKCS#11及CSP接口标准GMT0016-2012GMT0018-20123以龙脉GM3000Key为例,写出调用不同接口的代码(CryptoAPI,PKCS#11,SKF接口),把运行截图加入博客,并提供代码链接3.1CryptoAPI3.1.1龙脉密码钥匙驱动实例工具等\mToken-GM3000\csp\samples\CryptAPI\VC\E......