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;
    }

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

  • 相关阅读:
    java基础之 javac编译单个文件并执行 带jar包
    java 按照字符数分解字符串
    转载 模糊查询map中的key
    public final static PrintStream out = null; 的实例化猜想
    从0开始搭个网站在云上 思路引导
    java 泛型操作
    git 命令行
    React Native 安卓添加阴影
    react native 按钮的那些事
    mac 下 react Native android环境搭建
  • 原文地址:https://www.cnblogs.com/hello-dummy/p/12531642.html
Copyright © 2011-2022 走看看