【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 板 ...
随机推荐
- LeetCode22.括号生成 JavaScript
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "(()())& ...
- CentOS7利用本地yum源配置NBD
一:CentOS7.0创建本地YUM源 (物理机:直接将刻录的CentOS7光盘利用光驱插入物理机上) (虚拟机: CD/DVD>>连接本地ISO) 针对物理机192.168.9.112进 ...
- swift实现一个对象池
1.创建一个对象池 对象池:对象池一般用来管理一组可重用的对象, 这些对象的集合叫做对象池. 组件可以从对象池中借用对象, 完成一些任务之后将它归还给对象池. 返回的对象用于满足调用组件的后续请求, ...
- Java之环境变量配置
1.首先安装Java的JDK(Java开发工具包 包含JRE(Java运行环境))下载地址URL:www.oracle.com (64位或32位) 安装:傻瓜式安装(点击下一步即可)中间可更改安装目录 ...
- C++笔记011:C++对C的扩展——变量检测增强
原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 在C语言中重复定义多个同名的变量是合法的,多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上. 在C++中,不允许定义多个同名的 ...
- git 对文件大小写修改无反应 不敏感解决办法
git config core.ignorecase false 执行之后就能自动检测到了 2019-01-18
- Java中BigDecimal的一个除法异常
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal res ...
- Jmeter的实例应用
目标: 获取城市的天气数据: 第一步: 发送request 获取城市的城市代号http://toy1.weather.com.cn/search?cityname=上海 从这个请求的response ...
- Ansible实现主备模式的高可用(Keepalived)
前言 Ansible是一款极其简单的IT自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序 ...
- MySQL慢日志实践
慢日志查询作用 慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句.例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超过了1s,则将被写入到慢查询配置的日志 ...