1、模拟小飞机游戏; 100%;  #include <iostream>#include <vector>using namespace std;long ret = 0;long path = 1;void get_dis(vector<string>& num_map, vector<vector<bool>>& vis, int x, int y){    if( !(x>=0&& x< num_map.size() && y>=0 && y< 8) || num_map[x][y] == '1' || vis[x][y]){        return;    }    ret = max(path, ret);    vis[x][y] = true;        get_dis(num_map, vis, x, y+1);    get_dis(num_map, vis, x, y-1);    path += 1;    get_dis(num_map, vis, x+1, y);    path -= 1;}int GetFarthestRoad(vector<uint8_t>& vecRoad){      // todo     vector<string> num_map;    for(int i=0; i< vecRoad.size(); i++){        string map_i(8, '0');        uint8_t num = vecRoad[i];        int idx = 0;        while(num){            if(num % 2){                map_i[idx] = '1';            }            idx++;            num >>= 1;        }        num_map.push_back(map_i);    }        bool fig = false;    for(int i=0; i< 8; i++){        if(num_map[0][i] == '0'){            if(!fig)                ret = 1;            fig = true;            vector<vector<bool>> vis(num_map.size(), vector<bool>(8, false));            get_dis(num_map, vis, 0, i);        }    }    return ret;}int main() { vector<uint8_t> vecRoad; int tmp; while (cin >> tmp)  vecRoad.push_back((uint8_t)tmp);        cout<<GetFarthestRoad(vecRoad);    return 0;}   2、进水出水问题; 100%;  class Solution {public:    /**     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可     *     *      * @param m int整型 水池容量     * @param t int整型 总时长     * @param m1 int整型 进水阀打开时每分钟进水量     * @param t1 int整型 进水阀开关切换时长     * @param m2 int整型 排水阀打开时每分钟排水量     * @param t2 int整型 排水阀开关切换时长     * @return int整型     */    int ComputeRemanentWater(int m, int t, int m1, int t1, int m2, int t2) {        // write code here                int time = 0;        bool in_fig = true, out_fig = true;        int cap = 0;        while(time< t){            if(in_fig && out_fig){                cap = cap + (m1-m2);                cap = min(cap, m);                cap = max(0, cap);            }            else if(in_fig){                cap = min(cap+m1, m);            }            else if(out_fig){                cap = max(0, cap-m2);            }                        time += 1;            if(time % t1 == 0){                in_fig = in_fig? false: true;             }            if(time % t2 == 0){                out_fig = out_fig? false: true;            }        }        return cap;    }}; 3、给定三角形得三个点,判断三角形覆盖得正方形个数; 思路:模拟,不想做    4、有4种购买策略,分别对应于不同的格子,每个格子可以放比他小的商品,现给一堆商品,给出最小的花费;思路:暴力回溯,不想做
点赞 15
评论 4
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务