【20180807模拟测试】t1 function
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的更多相关文章
- 【20180807模拟测试】T2 box
[问题描述] 有个桌子长 R 宽 C,被分为 R*C 个小方格.其中,一些方格上有箱子,一些方格上有按 钮,一些方格上有障碍物,一些方格上是空地.现在有个任务,需要把所有箱子推到这些按 钮上面.箱子有 ...
- 【20180807模拟测试】tree
题目描述 或许会传送失败的传送门 #分析 考虑如何才能让白边显得更(不)重要,即在每条白边上(加上)减去一个值. 我们可以二分这个值,然后用寻常方法做最小生成树.统计在此最小生成树里有多少白 边. 然 ...
- [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)
目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...
- noi2019模拟测试赛(四十七)
noi2019模拟测试赛(四十七) T1与运算(and) 题意: 给你一个序列\(a_i\),定义\(f_i=a_1\&a_2\&\cdots\&a_i\),求这个序列的所 ...
- [考试反思]1109csp-s模拟测试106:撞词
(撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...
- [考试反思]1003csp-s模拟测试58:沉淀
稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...
- [考试反思]0814NOIP模拟测试21
前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...
- [考试反思]0729NOIP模拟测试10
安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...
- csp-s模拟测试99
csp-s模拟测试99 九九归一直接爆炸. $T1$一眼板子. $T2$一眼语文题(语文的唯一一次$120+$是给模拟出来的可知我的语文能力). $T3$一眼普及题. ?? Hours Later 板 ...
随机推荐
- ARM 内核 汇编指令 的 8种 寻址方式
str: store register ->指令将寄存器内容存到内存空间中, ldr: load register 将内存内容加载到通用寄存器, ldr/str 组合来实现ARM CPU 和内 ...
- iOS多语言设置
最近公司做的项目需要向国外推广,因此app需要添加相应的语言设置,为此整理记录下多语言设置的过程.如有不对的地方,欢迎各位大神指正.下面就详细介绍下设置的过程: 1.基本设置 第一步:首先在 项目工程 ...
- ubuntu系统的软件包管理工具
ubuntu系统的软件包管理工具有两种,一种是离线管理,另一种是在线管理 1.离线管理 dpkg工具可以对本地存放的deb安装包进行安装,卸载,查看状态等. dpkg -i app_name_vers ...
- ACM 2000~2002
ACM 2000 输入三个字符后,按各个字符的ASCⅡ码从小打到的顺序输出这三个字符. import java.util.Scanner; public class Lengxc {public ...
- MySQL5.7主从同步--点位方式及GTID方式
MySQL5.6加入了GTID的新特性,其全称是Global Transaction Identifier,可简化MySQL的主从切换以及Failover.GTID用于在binlog中唯一标识一个事务 ...
- 使用Wamp搭建Php本地开发环境,HBuilder调试
初涉Php,此处做点笔记,希望下次不要能够轻松应对,至少不要在入同一个坑 本文摘要: wamp和HBuilder和Mysql5.7的安装包 Wamp的使用,包括80端口,443端口的占用问题 HBui ...
- 20190120-自定义实现split方法
1. 实现字符串的split方法Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串 思路同自定义实现replace方法类型: 1. ...
- 《PHP实用问题解决案例》系列分享专栏
<PHP实用问题解决案例>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201725.html 文章 PHP汉字拼音转换和公历农历 ...
- Git安装配置(Windows)
下载Git并安装 下载地址:https://git-scm.com/ 安装一般默认即可 配置用户信息 配置之前最好已经有了Github的账号,如果没有可以先去注册一个 安装后打开Git Bash gi ...
- python Tkinter 的 Text 保持焦点在行尾
https://bbs.csdn.net/topics/390712532 text.see(END)