【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 板 ...
随机推荐
- bit and sbit---c51
bit和sbit都是C51扩展的变量类型. bit和int char之类的差不多,只不过char=8位, bit=1位而已.都是变量,编译器在编译过程中分配地址.除非你指定,否则这个地址是随机的.这个 ...
- 设计一个方法injectBeforeAsyncSend,能够实现如下功能:在发起异步请求之前打印出请求的类型、URL、method、body、timestamp 等信息。
异步请求逻辑注入 工作中我们需要对异步请求的请求信息打印日志,但是又不能耦合在业务代码中打印.请设计一个方法injectBeforeAsyncSend,能够实现如下功能:在发起异步请求之前打印出请求的 ...
- Python 学习笔记(十二)Python文件和迭代(一)
文件 文件和文件夹 文件:文本文件.二进制文件 文件夹:(windows) G:\pythonWorkspace\python\study (linux/mac) /home/workspace/py ...
- hibernateDAO层基本的增删改查
完整的学习项目放在了我的github上,是一个半成品的在线音乐网站. hibernate版本1.4 下面是userDAO 即对user表进行增删改查 package DAO; import java. ...
- 基于MySql和Sails.js的RESTful风格的api实现
Sails.js是类似于express的node后台框架,她面向数据库的特性使得面向数据库的服务器的搭建变得特别简单快捷. 现在网上关于Sails的教程大多是基于V0.12版本的,但是现在Sails的 ...
- 19-3-1Python的PyCharm编辑器,以及格式化输出、while循环、运算符、编码初识
第一次使用PyCharm,需要注意到是否使用的自己安装的python版本,或者使用的自带版本,如果使用的自带版本,注意切换. PyCharm使用优点,可以一步一步看程序的出错问题,即Debug的使用, ...
- HTML中汉字空格占位符
== 普通的英文半角空格 == == == no-break space (普通的英文半角空格但不换行) == 中文全角空格 (一个中文宽度) == == en空格 (半个中文 ...
- flask(列表数据接口设计)
新闻列表数据只是当前页面的一部分 点击分类时需要去获取当前分类下的新闻数据 并在展示的时候需要更新新闻列表界面,不需要整体页面刷新 所以新闻数据也使用 ajax 的方式去请求后台接口进行获取 接口设计 ...
- javascript array.property.slice.call
function foo() { //var var1=Array.prototype.slice.call(arguments); var var1=[].slice.call(arguments) ...
- MySQL入门第三天(下)——存储过程与存储引擎
一.存储过程 1.简介 原始的SQL执行的流程: 通过存储过程,便可以简化以上流程,那么存储过程是什么,如何进行性能提高呢? 是什么? 存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和 ...