low逼的我也只能写这样的水题。。。

题面

对于一个整数,定义 f(x)为他的每个数位的阶乘的乘积。例如 f(135)=1! * 3! * 5! =720。给出一个数 a(可以包含前缀零),a 满足他的至少一个数位大于 1。我们要求出最大 的整数 x,其中 x 不含 0 或 1,并且满足 f(a) = f(x)。

【输入】

第一行一个整数 n,表示 a 的长度。 接下来一个整数 a。

【输出】

一行一个整数 x 表示答案。

【输入样例 1】

4

1234

【输出样例 1】

33222

【样例 1 说明】

1! * 2! * 3! * 4! = 3! * 3! * 2! * 2! * 2!

分析

算了吧,你看着我无比整齐的代码会明白的

emm,以下官方正解

统计出质数 2、3、5、7 作为因子出现了多少次。

我们 claim 最后的答案一定由这四个数字构成。(比如考虑 8,还不如 7222)。

我们看看可以放几个 7,能放几个放几个,然后我们就没有 7 了。

我们看看可以放几个 5,能放几个放几个,然后我们就没有 5 了。

我们看看可以放几个 3,能放几个放几个,然后我们就没有 3 了。

最后再把剩下的 2 全放上去。

关于考试时的思路

亲测9!=7!*3!*3!*2!

8!=7!*2!*2!*2!

。。。

以此类推9个数而已3分钟就推完了

反正宁愿要多位数不要大的个位数

哪那么多废话

拆了

然后就只剩2,3,5,7开始拼凑(这和你拆的时候是个反向过程)

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int a[10010],b[1001],n,c[100100],cnt=0;
int main(){ scanf("%d",&n);
for(int i=1;i<=n;i++){
char x;
cin>>x;
a[i]=x-'0';
if(a[i]==2){b[2]++;}
if(a[i]==3){b[2]++;b[3]++;}
if(a[i]==4){b[2]+=3;b[3]++;}
if(a[i]==5){b[2]+=3;b[3]++;b[5]++;}
if(a[i]==6){b[2]+=4;b[3]+=2;b[5]++;}
if(a[i]==7){b[2]+=4;b[3]+=2;b[5]++;b[7]++;}
if(a[i]==8){b[2]+=7;b[3]+=2;b[5]++;b[7]++;}
if(a[i]==9){b[2]+=7;b[3]+=4;b[5]++;b[7]++;}
}
for(int i=7;i>=2;i--){
while(b[i]>0){
c[++cnt]=i;
if(i==2){b[2]--;}
if(i==3){b[2]--;b[3]--;}
if(i==4){b[2]-=3;b[3]--;}
if(i==5){b[2]-=3;b[3]--;b[5]--;}
if(i==6){b[2]-=4;b[3]-=2;b[5]--;}
if(i==7){b[2]-=4;b[3]-=2;b[5]--;b[7]--;}
}
}
for(int i=1;i<=cnt;i++)
printf("%d",c[i]);
return 0;
}

【20180807模拟测试】t1 function的更多相关文章

  1. 【20180807模拟测试】T2 box

    [问题描述] 有个桌子长 R 宽 C,被分为 R*C 个小方格.其中,一些方格上有箱子,一些方格上有按 钮,一些方格上有障碍物,一些方格上是空地.现在有个任务,需要把所有箱子推到这些按 钮上面.箱子有 ...

  2. 【20180807模拟测试】tree

    题目描述 或许会传送失败的传送门 #分析 考虑如何才能让白边显得更(不)重要,即在每条白边上(加上)减去一个值. 我们可以二分这个值,然后用寻常方法做最小生成树.统计在此最小生成树里有多少白 边. 然 ...

  3. [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)

    目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...

  4. noi2019模拟测试赛(四十七)

    noi2019模拟测试赛(四十七) T1与运算(and) 题意: ​ 给你一个序列\(a_i\),定义\(f_i=a_1\&a_2\&\cdots\&a_i\),求这个序列的所 ...

  5. [考试反思]1109csp-s模拟测试106:撞词

    (撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...

  6. [考试反思]1003csp-s模拟测试58:沉淀

    稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...

  7. [考试反思]0814NOIP模拟测试21

    前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...

  8. [考试反思]0729NOIP模拟测试10

    安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...

  9. csp-s模拟测试99

    csp-s模拟测试99 九九归一直接爆炸. $T1$一眼板子. $T2$一眼语文题(语文的唯一一次$120+$是给模拟出来的可知我的语文能力). $T3$一眼普及题. ?? Hours Later 板 ...

随机推荐

  1. 查询sqlserver 表结构呀

    SQL Server里查询表结构命令 对于SQL Server数据库有两种方法查询表结构 第一种方法 sp_help Accounts_Users     其中Accounts_Users 表示表名 ...

  2. 利用DBMS_REDEFINITION包将非分区表转化成分区表

    将普通表格转化分区表的方法大致有四种: A. 通过 Export/import 方法B. 通过 Insert with a subquery 方法C. 通过 Partition Exchange 方法 ...

  3. 基于java的简易计算器实现

    方法: 1.将string类型的表达式输入转换成后缀表达式 2.计算后缀表达式 步骤一:将string类型的表达式输入转换成后缀表达式 输入字符串表达式,并将表达式转换成char型数组 String ...

  4. iOS 获取蜂窝网络信号强度 包含iPhoneX XS XR XSMASX (最新)

    1.虽然各种直接获取信号强度的api都被封杀了.但是还有一个另类的黑魔法可以获取到.那就是遍历UIStatusBar了 网络上有的文章写的会崩溃 比如: - (int)getSignalStrengt ...

  5. 浅谈React、Vue 部分异步

    React中的setState setState为什么需要异步? 无法限制何时使用异步,多次连续使用setState 防止多次渲染,异步rendering不仅仅是性能上的优化,而且这可能是react组 ...

  6. MySQL数据导入导出(一)

    今天遇到一个需求,要用自动任务将一张表的数据导入另一张表.具体场景及限制:将数据库A中表A的数据导入到数据库B的表B中(增量数据或全量数据两种方式):体系1和体系2只能分别访问数据库A和数据库B.附图 ...

  7. css 自定义checkbox多选复选框样式

    html: <input type="checkbox" id="" value="">菜单1 <input type=& ...

  8. Java中枚举的相关应用

    package example6; import org.junit.Test;/*1.什么是枚举? * 需要在颐堤港范围内取值,这个值只能是这个范围内的一个 * 使用枚举关键字enum * 枚举里也 ...

  9. Python-调用系统指令小记

    import subprocess def exec_command(cmd, log_path, **kwargs): with open(log_path, 'w') as f: p = subp ...

  10. nginx php-fpm 高并发优化

    PHP-php-fpm配置优化 前言: 1.少安装PHP模块, 费内存 2.调高linux内核打开文件数量,可以使用这些命令(必须是root帐号)(我是修改/etc/rc.local,加入ulimit ...