首页 > 其他分享 >第九十八场周赛. AcWing 4949. 末尾连续0

第九十八场周赛. AcWing 4949. 末尾连续0

时间:2023-09-25 23:55:05浏览次数:46  
标签:满足条件 正整数 周赛 int 样例 4949 输出 末尾 AcWing

第九十八场周赛. AcWing 4949. 末尾连续0

给定一个正整数 \(m\),请你统计一共有多少个正整数 \(n\) 满足,\(n\) 的阶乘的末尾连续 \(0\) 的数量恰好为 \(m\)。

输出满足条件的 \(n\) 的数量以及所有满足条件的 \(n\)。

例如,当 \(m=1\) 时,满足条件的正整数 \(n\) 共有 \(5\) 个,分别是 \(5,6,7,8,9,\) 其中 \(5!=120,6!=720,7!=5040,8!=40320,9!=362880\)

输入格式

共一行,一个正整数 \(m\)。

输出格式

如果存在满足条件的 \(n\),则第一行输出满足条件的 \(n\) 的数量,第二行按从小到大的顺序输出所有满足条件的 \(n\)。

如果不存在满足条件的 \(n\),则输出一行 0 即可。

数据范围

前 55 个测试点满足 \(1≤m≤10\)。
所有测试点满足 \(1≤m≤10^5\)。

输入样例1:

1

输出样例1:

5
5 6 7 8 9

输入样例2:

5

输出样例2:

0
思路分析:只需要将n!分解质因数找其中的5的个数就行了,如果分解质因数有一个5,那么一定会有一个对应的2,这个可以证明。一个5
对应一个2,尾部必定有一个0,两个5对应两个2,尾部必定有两个0。可以用前缀和存5的个数。
ps:居然比上一题做的快,逆天。
代码:
#include<iostream>
#include<vector>
using namespace std;
typedef long long ll;
const int N=1000010;
vector<int> res;
int q[N];//前缀和数组
int m,cnt;
int main(){
    for(int i=1;i<N;i++){
        int s=0,t=i;
        while(t%5==0) s++,t=t/5;
        q[i]=q[i-1]+s;
    }
    cin>>m;
    for(int i=0;i<N;i++) if(q[i]==m) res.push_back(i);//符合条件的push进去
    //按题目要求输出就行了
    if(res.size()){
        cout<<res.size()<<endl;
        for(auto it:res) cout<<it<<' ';
    } else cout<<0;
    return 0;
}

标签:满足条件,正整数,周赛,int,样例,4949,输出,末尾,AcWing
From: https://www.cnblogs.com/neko333/p/17729175.html

相关文章

  • 第九十八场周赛. AcWing 4948. 大乘积
    第九十八场周赛.AcWing4948.大乘积我们规定,如果一个非负整数\(a\)满足以下两个条件之一,则称\(a\)为美丽数:\(a=0\)\(a=10^x\),其中\(x\)为任意非负整数。给定\(n\)个非负整数\(a_1,a_2,…,a_n\),这其中有至少\(n−1\)个数是美丽数。请你计算并输出\(a_......
  • AcWing 896. 最长上升子序列 II
    题目给定一个长度为$N$的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数$N$。第二行包含$N$个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围$1≤N≤100000,−10^9≤数列中的数≤10^9$输入样例:73121856输出样例......
  • 牛客周赛 Round 11
    https://ac.nowcoder.com/acm/contest/64593A题签到B题值得说得是对非降序的理解:非降序表示数组中的前一个数要<=下一个数C题也算dp,因为需要注意遍历顺序,计算的是所有子串的的权重,我们知道枚举所有子串需要\(O(n^2)\)的复杂度,按照本题数据范围显然不能\(O(n^3)\),我们只能在枚......
  • Acwing 周赛110 5046
    Acw5046思路dp,\(dp_i\)表示前i种药且吃第i种药使智商达到\(r_i\)的方案,根据题意可知\[dp_i=\sumdp_j,(r_j\in[l_i,r_i-1])\]先将各区间按右端点排序,求j的区间可用二分.代码//9.24intn,m,k;intf[N],s[N];//acw110structseg{ intl,r; booloperator<(c......
  • Acwing. 第122场周赛
    比赛链接A简单输出题目链接简单的模拟一下就好了,注意是多组样例就行。#include<bits/stdc++.h>usingnamespacestd;voidsolve(){intn;cin>>n;for(inti=1;i<=n;i++){cout<<i<<"";}cout<<endl;}intmain(){......
  • 容斥原理应用Acwing890借鉴题解
    参考文献简单的容斥原理介绍请看下图:C++代码简单的容斥原理介绍请看下图:本题思路:将题目所给出的m个数可以看成是m位的二进制数,例如当p[N]={2,3}时,此时会有01,10,11三种情况而二进制的第零位表示的是p[0]上面的数字2,第1位表示p[1]上面的数字3所以当i=1时表示只选择2的......
  • Acwing393. 雇佣收银员 题解 差分约束
    题目链接:https://www.acwing.com/problem/content/description/395/解题思路:差分约束。为了方便起见,定义第\(i\)个时间段为\(i-1:00\)到\(i:00\)这个时间段。首先,为了方便开一个额外的点,令\(R_i\)对应为题目中的\(R(i+1)\),即\(R_i\)表示\(i-1:00\)到\(i:00\)这......
  • Acwing 5220
    Acw5220题意自己看思路假设串N长度为\(n\),串H长度为\(m\),遍历串H,对于\([i,i+n-1]\)这一段子串,如果所含字母个数与串N所含字母个数相同,则认为匹配,问题在于如何判断排列重合的问题。字符串哈希。匹配的话直接将这一段的哈希值放入set中,去重,最后set的size就是答案代码const......
  • 牛客周赛 Round 12 D 小美的区间异或和
    Link首先这个题目的限制卡的很死,最好是O(n)解决,其次当看到异或的时候,就可以考虑按照二进制位进行计算。对于这个题,我们定义\(dp_i\)表示以\(a_i\)为最右端的子区间的答案的和那么首先可以想到,贡献给这个答案的有两个部分,包括\(a_i\)的和不包括的,其中不包括\(a_i\)的部分的答案......
  • LeetCode 周赛上分之旅 #46 经典二分答案与质因数分解
    ⭐️本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]和BaguTreePro知识星球提问。学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场LeetCode周赛的解题报告,一......