zoukankan      html  css  js  c++  java
  • 模拟和枚举

    模拟和枚举

    模拟:顾名思义,模拟就是我们去用代码实现某种操作,他怎么说你就怎么做,他要求你做什么你就做什么。

    模拟是竞赛中最基础的一项基本功,对思想难度要求不高,主要考察选手的语法和代码能力

    例题:

    1.输出所有的"水仙花数".

    所谓"水仙花数"是指这样的一个三位数:其各位数字的立方和等于该数本身。

    例如:371是一个"水仙花数",371=3^3+7^3+1^3.

    题解:只需枚举出所有三位数,计算其立方和是否等于其本身即可。题目本身不难,代码不再给出。

    1. 寻找三位数1, 2, …, 9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1: 2: 3的比例,试求出所有满足条件的三个三位数。

    例如:三个三位数192, 384, 576满足以上条件

    题解:刚看到这个题,我的思路是暴力枚举。但后来发现从100-999枚举的话会爆时间,于是就可以简化,只枚举100-333的部分,将次数的两倍、三倍与次数比较看看有没有重叠数字,如果没有则成立。

    代码:

    其中,time[n]用于计算第n个数字被使用的次数,若使用过酒驾一,到最后用标记flag判断这个三位数是否成立。

    1. 河伯阵型

    河伯最近在打一个叫魔兽争霸3的游戏,这个游戏可以控制兵推掉对面的老家,而这个游戏阵型很重要,河伯现在要排成一个菱形,所以请你帮河伯排一下阵型

    【样例输入】

    3 ^

    【样例输出】

      ^

     ^^^

    ^^^^^

     ^^^

      ^

    题解:模拟思想,按照题目要求在第n行开始逆向回环,要注意,这里的阵型每两行之间差元素2个,且回环行只有一行,所以第二次输出时的for要少一次(或者在正向环时少一次,反向时补回来)

    代码:

     

    4.usaco-1.1.2-Greedy Gift Givers

    一共有n个人要互相送礼物,每个人准备了一些钱来给自己想送的人买礼物。

    同一个人送出的礼物都是等价的(整数),多余的钱会自己留下

    n个人送完礼物之后,每个人都赚了或者亏了多少钱

    样例:

     

    题解:说实话这题的代码我没咋看= =

    我的思路是在输入名字时把名字转化为数字,成为数组的角标,然后轮到他送礼物时,除出他送出去的钱,加到对应的角标下,然后自己留下自己的部分。(但是似乎会爆。。?)

    代码:

     

  • 相关阅读:
    黑鲨2无限重启 把竞技按钮调到最上
    绿联 电池
    阿里云
    Centos 8 搭建时钟服务器
    CentOS8系统时间同步解决方法
    解决问题的人干活快的人
    【海通国际】Joe Lowry(Mr. Lithium)谈全球电池原材料供应危机
    Linux 实验楼
    用 set follow-fork-mode child即可。这是一个 gdb 命令,其目的是告诉 gdb 在目标应用调用fork之后接着调试子进程而不是父进程,因为在 Linux 中fork系统调用成功会返回两次,一次在父进程,一次在子进程
    【随笔】阿里云修改DNS
  • 原文地址:https://www.cnblogs.com/SKTskyking/p/12283916.html
Copyright © 2011-2022 走看看