链接

题意从尾部找第一个非0的数 这样就可以考虑下怎样会形成0  这个都知道 只有因子2和因子5相遇会形成0 那这样可以先把所有的2和5先抽出来,这样就保证了其它的数相乘就不会再出现0了 这样就可以转换成尾数相乘的结果 当然可能2的个数会剩余 这一部分留到最后去算

step1 抽出所有的5和2  n!里因子x的个数 求法: n/x+gn(n/x);

这样结果就为1 3 7 9 之一  这样就需要求一下尾部3,,7,9的出现的次数,并且可以发现它们都是以4为周期的 包括2

step2 尾部3 7 9出现的次数 f[n] + find(n/2) 因为抽走了2  x出现的次数g[n][x] = n/10+(n%10>=x)+ggn(n/5)因为抽走了5

最后再把2的影响补上

题意求N!/(n-m)!  因为N!包含(n-m)! 故可以通过各个数出现的次数相减求得最后的结果

  1. #include <iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<stdlib.h>
  6. #include<vector>
  7. #include<cmath>
  8. #include<queue>
  9. #include<set>
  10. using namespace std;
  11. #define N 100000
  12. #define LL long long
  13. #define INF 0xfffffff
  14. const double eps = 1e-;
  15. const double pi = acos(-1.0);
  16. const double inf = ~0u>>;
  17. int o[][];
  18. int p[][];
  19. int gn(int n,int x)
  20. {
  21. if(n==)
  22. return ;
  23. return n/+(n%>=x)+gn(n/,x);
  24. }
  25. int ggn(int n,int x)
  26. {
  27. if(n==)
  28. return ;
  29. return gn(n,x)+ggn(n/,x);
  30. }
  31. int find0(int n,int x)
  32. {
  33. if(n==) return ;
  34. return n/x+find0(n/x,x);
  35. }
  36. int main()
  37. {
  38. int n,m;
  39. p[][] = ,p[][] = ,p[][] = ,p[][] = ;
  40. p[][] = ,p[][] = ,p[][] = ,p[][] = ;
  41. p[][] = ,p[][] = ,p[][] = ,p[][] = ;
  42. p[][] = ,p[][] = ,p[][] = ,p[][] = ;
  43. while(cin>>n>>m)
  44. {
  45. memset(o,,sizeof(o));
  46. m = n-m;
  47. o[][] = find0(n,);
  48. o[][] = find0(m,);
  49. o[][] = find0(n,);
  50. o[][] = find0(m,);
  51.  
  52. o[][] = ggn(n,);
  53. o[][] = ggn(n,);
  54. o[][] = ggn(n,);
  55. o[][] = ggn(m,);
  56. o[][] = ggn(m,);
  57. o[][] = ggn(m,);
  58. o[][] -= o[][];
  59. o[][] -= o[][];
  60. int a = o[][]-o[][];
  61. int b = o[][]-o[][];
  62. int c = o[][]-o[][];
  63. int k = o[][]-o[][];
  64. int ans = ;
  65. if(a) ans*=p[][a%];
  66. if(b) ans*= p[][b%];
  67. if(c) ans*= p[][c%];
  68. if(k) ans*= p[][k%];
  69. cout<<ans%<<endl;
  70. }
  71. return ;
  72. }

POJ1150he Last Non-zero Digit(组合)的更多相关文章

  1. [Swift]LeetCode902. 最大为 N 的数字组合 | Numbers At Most N Given Digit Set

    We have a sorted set of digits D, a non-empty subset of {'1','2','3','4','5','6','7','8','9'}.  (Not ...

  2. BZOJ 4421: [Cerc2015] Digit Division 排列组合

    4421: [Cerc2015] Digit Division 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4421 Descripti ...

  3. [LeetCode] 902. Numbers At Most N Given Digit Set 最大为 N 的数字组合

    We have a sorted set of digits D, a non-empty subset of {'1','2','3','4','5','6','7','8','9'}.  (Not ...

  4. Digit Division(排列组合+思维)(Gym 101480D )

    题目链接:Central Europe Regional Contest 2015 Zagreb, November 13-15, 2015 D.Digit Division(排列组合+思维) 题解: ...

  5. [leetcode] 题型整理之排列组合

    一般用dfs来做 最简单的一种: 17. Letter Combinations of a Phone Number Given a digit string, return all possible ...

  6. Project Euler 90:Cube digit pairs 立方体数字对

    Cube digit pairs Each of the six faces on a cube has a different digit (0 to 9) written on it; the s ...

  7. 【CF521C】【排列组合】Pluses everywhere

    Vasya is sitting on an extremely boring math class. To have fun, he took a piece of paper and wrote ...

  8. USB组合设备 Interface Association Descriptor (IAD)

    Communication Device Class,简称CDCUSB Compound Device,USB复合设备USB Composite Device,USB组合设备 摘要USB复合设备 Co ...

  9. php如何判断字符串是否是字母和数字的组合

    转载自百度 /其实判断是否是字母和数字或字母数字的组合还可以用PHP ctype_alnum函数 if(!ctype_alnum($vipurl)){ echo '只能是字母或数字的组合';exit; ...

随机推荐

  1. js appendChild 自带remove和append两个功能

    一提到appendChild ,我们就知道是在父节点上增加子节点. 经常使用到它就是动态增加一个元素,将其加入到指定的父节点下. 其实appendChild除了这个功能之外,他还有一个功能:如果子节点 ...

  2. dedecms列表页如何调用栏目关键词和描述

    问:dedecms列表页如何调用栏目关键词和描述 答:有人问起dedecms列表页如何调用栏目关键词和描述.解答如下: 自己实验了下总结方法如下:(以下方法使用于栏目封面和列表和内容页,其他的地方没有 ...

  3. java.lang.IllegalArgumentException: No converter found for return value of type: class com.st.bean.User

    原因:springmvc默认是没有对象转换成json的转换器的,要添加jackson依赖 在pom.xml中添加 <dependency> <groupId>com.faste ...

  4. android TextView 设置部分文字背景色 和 文字颜色

    通过SpannableStringBuilder来实现,它就像html里边的元素改变指定文字的文字颜色或背景色 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  5. html5--6-63 布局

    html5--6-63 布局 实例 学习要点 掌握传统布局与CSS3新增布局方式的实现和应用 掌握CSS3新增属性box-sizing 了解CSS3新增的多列布局 常用布局方式 固定布局与流体布局的优 ...

  6. luogu 4782【模板】 2-SAT 问题

    2-SAT就是给出$m$个限制表示$x==val_x || y==val_y$ 求出满足的解 每个点拆成两个点,如果$x$不满足则$y$一定满足,$y$不满足同理.这样我们连边,然后$tarjan$即 ...

  7. MySQL主从详细安装步骤

    网站: 程序在:web服务器192.168.1.100上面 数据库在:MySQL服务器192.168.1.123上面 实现目的:增加一台MySQL备份服务器(192.168.1.124),作为MySQ ...

  8. finalize方法的作用

            finalize是在对象回收前做一些清扫工作,以及可清理栈上的内存,比如调用本地方法可能在栈上创建对象.即使对象不可达,也并不是非死不可,还是可以抢救一下,当一个对象没有与GCroot ...

  9. LightOJ 1140 How Many Zeroes? (数位DP)

    题意:统计在给定区间内0的数量. 析:数位DP,dp[i][j] 表示前 i 位 有 j 个0,注意前导0. 代码如下: #pragma comment(linker, "/STACK:10 ...

  10. (水题)洛谷 - P1996 - 约瑟夫问题 - 链表

    https://www.luogu.org/problemnew/show/P1996 试了一下数组实现的双向链表,是挺难用的,估计是应该写个get_next()函数比直接用next数组好. #inc ...