URAL 1044. Lucky tickets. Easy!

 problem url: http://acm.timus.ru/problem.aspx?space=1&num=1044

This issue require some math trick, we shoud use "Permutations" here:

 

#include  < cstdio >
#include 
< iostream >

#define  MAX_SUM 36

using   namespace  std;


void  main()
{
int n = 1;
int hn =1;
int count =0;
int temp= 0;
int    tsum =0;

int sumdb[MAX_SUM+1];

memset(sumdb, 
0sizeof(int* (MAX_SUM+1));

cin
>> n;
hn 
= n/2;

int i=0;
int j= 0;
int ub = 1;

for(i=0;i<hn;++i) ub*=10;

for(i=0;i<ub;++i)
{

tsum 
= 0;
temp 
= i;

for(j=0;j<hn;++j)
{
    tsum 
+= temp%10;
    temp 
/= 10;
}


sumdb[tsum]
++;

}


for(i=0;i<MAX_SUM+1;++i)
{
    
if(sumdb[i]>0)
    
{
        count 
+= (sumdb[i]*(sumdb[i]-1+ sumdb[i]);
    }


}


cout
<< count;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值