UVa:11076 Add Again
来源:互联网 发布:照片贴图软件 编辑:程序博客网 时间:2024/05/22 15:02
第三百个题。
这个题比较好想。对于所有组合得到的整数来说,它们某个确定位上的数字就是给定的这些数字。
对于每个数字统计它出现的次数,然后算当这个数位于最后一位的时候,有多少种情况。这里用到了一个排列组合去掉重复元素的公式,也很简单。
算出所有数的所有情况以后再求和,这样再算n位就行了。
#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#define MAXN 100005#define MOD 1000000007#define INF 2139062143#define ll unsigned long longusing namespace std;int fac[15];int main(){ fac[0]=1; for(int i=1; i<=12; ++i) fac[i]=fac[i-1]*i; int N; while(scanf("%d",&N)&&N) { int num[12]= {0}; for(int i=0; i<N; ++i) { int t; scanf("%d",&t); num[t]++; } int val[12]= {0}; for(int i=0; i<=9; ++i) if(num[i]) { num[i]--; int res=fac[N-1]; for(int j=0; j<=9; ++j) res=res/fac[num[j]]; val[i]=res; num[i]++; } ll sum=0; for(int i=0; i<=9; ++i) sum+=i*val[i]; ll ans=0; for(int i=0; i<N; ++i) { ans=ans+sum; sum=sum*10; } printf("%lld\n",ans); } return 0;}
0 0
- UVA 11076 - Add Again
- UVA 11076 Add Again
- UVa:11076 Add Again
- UVA 11076 Add Again
- uva 11076 Add Again
- UVA 11076 Add Again
- UVA 11076-Add Again
- uva 11076Add Again
- Add Again(UVA 11076)
- UVA 11076 Add Again(重复元素排列)
- UVa 11076 Add Again (组合数学)
- uva 11076 - Add Again(组合数学)
- UVa 11076 Add Again(数学)
- UVa-11076 Add Again(平均数思想)
- Add Again UVA
- Uva 11076 Add Again 解题报告(组合数学)
- UVA 11076 - Add Again(数论+组合数学)
- UVA - 11076 Add Again (重复元素的排列)
- java设计模式——综述
- Linux单网卡NAT代理的配置
- jQuery 到顶部
- 小程序
- C#之"0x{0:x}"
- UVa:11076 Add Again
- java设计模式1——工厂方法模式(Factory Method)
- JavaScript与Java的区别:
- POJ1555解题报告
- hdu1081To The Max(dp)
- hdu 1394 树状数组
- 插APC实现DLL注入
- (十四)矩阵类与对称矩阵的压缩算法
- 温州企业家苦干1年挣百万 妻子炒房8年赚3000万