zoukankan      html  css  js  c++  java
  • 一模 (1) day1

    第一题:(水题)

    题目大意:求出n个  X% (X是小于等于2位的整数) 的乘积,去掉末尾的0;

    解题过程:

    1.直接 把整数乘好,然后确定小数点的位置,去掉多余的0 输出即可。

    第二题:(搜索题)

    题目大意:给出5*5的矩阵,矩阵由J 和 H 组成。 求出 规模为7 且 J的个数多于H的四连通块的个数。

     

    解题过程:

    1.一开始 直接 爆搜+hash 判重,但是样例过不去,然后才发现 深搜 的路径是一直走到底的,也就是不可能出现十字的情况。

    2.然后想到可以先深搜5个,然后剩下2个用枚举的方法加上去。。(这样是错的,见反例B,应该深搜4个,枚举3个)枚举比较费时间,为了节省时间,我保存了上次枚举时方块的横坐标,然后这次枚举的横坐标就从上次的开始。但是这样是错的。(见反例A)应该从上次枚举时方块的横坐标-1开始。

    反例A:

    0 0 0 0 0
    0 1 0 1 0
    0 1 0 1 0
    0 1 1 1 0
    0 0 0 0 0

     

    反例B:

    0 0 0 0 0
    0 0 0 0 0
    0 0 1 0 1
    0 1 1 1 1
    0 0 0 1 0

    坑爹啊!!!!!!

    第三题:

     题目大意:经典约瑟夫问题,求出队顺序;

    解题过程:

    1.写了个链表暴力模拟竟然也能过。。

    2.题解是排序二叉树,本来一直以为约瑟夫只能暴力模拟的。。找了好多资料,终于搞懂了。算法大致如下:

    每次找到一个元素,删掉之后,剩下的编号大于它的重新编个号,比如 N=5 M=3,1 2 3 4 5,删去3,那么 变成 1 2 3(4) 4(5),可以发现重新编号后现在还是指着3,再往后数3个,那么指向1,也就是剩余的人中编号第1个小的。也就是 把删掉的元素拿掉后形成的队列中,再去数m个,找到队列中的元素i,那么这里的元素i的真实编号是 当前还没被删掉的编号第i个小的人的编号。  用排序二叉树来维护即可。

  • 相关阅读:
    记一次在黑盒环境下使用网络设备(华为)寻找主机
    mips交叉编译zlib
    Python 爬虫 之LOL皮肤图片抓取
    gitlab 新建项目 并将本地项目上传
    flask项目目录结构
    SQLALCHEM 初始化数据库
    python连接access数据库查询
    .Net Core 3.1 -- APISIX2.6 微服务网关入门
    SqlServer Agent代理无法启动(启动后自动关闭)的解决方法
    Centos7安装配置DNS服务器
  • 原文地址:https://www.cnblogs.com/vb4896/p/3922372.html
Copyright © 2011-2022 走看看