zoukankan      html  css  js  c++  java
  • [蓝桥杯2018决赛]调手表

    链接: http://oj.ecustacm.cn/problem.php?id=1393

    1、按照最优策略按键(最坏需要调n-1次),从任意一个分钟数调到另外任意一个分钟数最多要按多少次(*)。 

    2、注意,按 +k 按钮时,如果加k后数字超过n-1,则会对n取模。

    宽搜是参考其他兄弟的博客。。。。。

    #include <iostream>
    #include <cstdio>
    #include <queue>
    #include <vector>
    #include <cstring>
    
    using namespace std;
    
    int n,k;
    int cur,ans;
    int mem[100005];
    
    // 深搜 ,只能得了40分,提示超时....
    void dfs(int end, int step, int cur) {
        if (cur == end) {
            if (step > ans) {
                if (ans < step) ans = step;
            }
            return;
        }
        // 按最优决策
        if (end-cur >= k) {
            dfs(end, step+1, (cur+k)%n);
        } else {
            dfs(end, step+1, (cur+1)%n);
        }
    }
    
    // 宽搜,满分
    void bfs()  {
        queue<int> q;
        // 初始化从0点开始
        q.push(0); 
        mem[0] = 0;
        
        while(!q.empty()) {
            int p = q.front();
            q.pop();
            if (mem[(p+1)%n] == -1) {
                mem[(p+1)%n] = mem[p] + 1;
                q.push((p+1)%n);
            }
            if (mem[(p+k)%n] == -1) {
                mem[(p+k)%n] = mem[p] + 1;
                q.push((p+k)%n);
            }
        }
    }
    
    int main() {
    
        while(~scanf("%d%d", &n, &k)) {
            ans = 0;
            memset(mem, -1, sizeof mem);
    //        for (int i = 0; i < n; i++) {
    //            dfs(i, 0, 0);
    //        }
            bfs();
            for (int i = 0; i < n; i++) {
                if (mem[i] > ans) ans = mem[i];
    //            printf("%d ", mem[i]);
            }
            cout << ans << endl;    
        }
        return 0;
    }

    。。。。。。。。。。。。。。。

  • 相关阅读:
    【每日经典】李嘉诚:赚钱可以无处不在、无时不有
    hadoop yarn running beyond physical memory used
    Hadoop执行作业时报错:java.lang.OutOfMemoryError: Java heap space
    hadoop 問題
    微信小程序-scroll-view组件
    微信小程序-view组件
    微信小程序登录
    SignalR实时通信
    手机端-上传头像并裁剪
    PC端-上传头像并裁剪
  • 原文地址:https://www.cnblogs.com/hello-dummy/p/12531642.html
Copyright © 2011-2022 走看看