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数组基础
    java异常处理机制
    java面向对象基础(四):抽象类和接口
    java面向对象基础(二)
    java类路径classpath和包
    java面向对象基础(一)
    Tomcat(二):tomcat配置文件server.xml详解和部署简介
    java集合框架(Collections Framework)
    java基础数据类型包装类
    String、StringBuilder和StringBuffer类
  • 原文地址:https://www.cnblogs.com/hello-dummy/p/12531642.html
Copyright © 2011-2022 走看看