• 大学ACM第六周心得(11.29)


    写在前面:

    1. 后面要用到浮点数计算的,输入哪怕是整形也可以直接当浮点数,不然容易出错
    2. 多组数据的初始化要考虑全

    USACO训练题:

    一:2.1.1 The Castle

    ​ 很善良的,每一格墙的情况题目已经用二进制凑好了,处理一下就行。对每一块染色(用dfs)并记录块的大小。然后枚举,对每一格枚举它四个方向是否是墙,是的话就打通,两个块大小加起来大于目前答案就记录。

    二:2.1.2 Ordered Fractions

    ​ 用个结构体分别放分子,分母,然后用个浮点数记大小,排序输出。记得约分和0/1的情况就行。

    三:2.1.3 Sorting A Three-Valued Sequence

    ​ 最终排好序的肯定是分成1,2,3三个数字区间,数字位置错误的情况有这两种:

    ​ 某两种数字相互错位,比如:有一个1到了2的区间,有一个2到了1的区间,那交货一次就行

    ​ 三个数字错位,比如1到2,2到3,3到1,那么需要交换两次

    ​ 先贪心找前三种交换,再找还有几个数未归位,这时由于只会剩下第四、五种情况,三个数为一组,每组需交换两次,所以答案为:前三种交换次数+未归位的数的个数×2/3

    四:2.1.4 Healthy Holsteins

    ​ 就直接dfs,决策某种饲料要不要

    五:2.1.5Hamming Codes

    ​ n<=8,最大也就1<<8,可以直接暴力枚举,对每个数判断会不会和当前集合里已经有的数冲突。(输出有点坑点)

    六:靶形数独

    ​ 学完DLX应该算偏模板了,就是数独的做法加个记录答案,输出最大的。

    ​ 没学之前一直T,吸氧能过,但是应该是有非DLX的解法的,可能需要更优秀的剪枝,我还没想出来


    这周学的算法:

    DLX:从精确覆盖到重复覆盖,再把数独和八皇后问题打了

    分块:分块有个经典入门9题,暂时没打完,但是感觉真的很玄学

    莫队:基于分块的算法,推荐博客:[https://www.cnblogs.com/Paul-Guderian/p/6933799.html]

  • 相关阅读:
    c++作用域运算符---7
    REDIS类和方法说明
    netty WEBSOKET 客户端 JAVA
    出入库算法
    演讲的要义
    别人的面试经历
    在线表单生成器
    windows server 2012 安装 VC14(VC2015) 安装失败解决方案
    esxi 配置 交换主机 虚拟机交换机 linux centos 配置双网卡
    Linux下开发常用配置
  • 原文地址:https://www.cnblogs.com/71-111/p/14059582.html
Copyright © 2020-2023  润新知