码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 4432 数学杂题

时间:2014-08-22 12:56:28      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:http   os   io   for   ar   问题   代码   amp   size   

http://acm.hdu.edu.cn/showproblem.php?pid=4432

6分钟写的代码,一上午去调试,,

哎,一则题目没看懂就去写了,二则,哎,,恶心了,在坚持几天然后ACM退役,想当初一直想着regional拿奖,然后在保研的时候有个更漂亮的简历,卧槽,但是,其实喜欢的是静下心,把一块知识好好弄懂,看着自己一点点由不会到会,由不熟到熟练,而且在这个过程中总结一些思考问题的方法,能把这种思维应用于其他

但是----唉,急功近利式地学,老想着快,一没思路就去看题解,然后平均每两天一场比赛,外加队友之间相互抱怨猜忌,哎,恶心了,,真的,做完明天的排位,可能就该退掉了,最后几次排位再好好去做做,然后滚蛋

以后还是先好好试下样例再去写,那个hint的解释我发现我想了三个版本都没对,擦,,

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <iostream>
#include <iomanip>
#include <cmath>
#include <map>
#include <set>
#include <queue>
using namespace std;

#define ls(rt) rt*2
#define rs(rt) rt*2+1
#define ll long long
#define ull unsigned long long
#define rep(i,s,e) for(int i=s;i<e;i++)
#define repe(i,s,e) for(int i=s;i<=e;i++)
#define CL(a,b) memset(a,b,sizeof(a))
#define IN(s) freopen(s,"r",stdin)
#define OUT(s) freopen(s,"w",stdout)
const ll ll_INF = ((ull)(-1))>>1;
const double EPS = 1e-8;
const int INF = 100000000;
int bit[5000];
ll quick(ll base, ll x)
{
    ll ret=1;
   // printf("## b=%lld x=%lld ",base,x);
    while(x)
    {
        if(x&1)
            ret=ret*base;
        base*=base;
        x/=2;
    }
   // printf("ret=%lld\n",ret);
    return ret;
}

ll cal(ll i, ll m)
{
    ll ret=0;
   // printf("###########%lld\n",i);
    while(i)
    {
        ret+=(i%m)*(i%m);//quick(i%m,m);
        i/=m;
    }
    //putchar('\n');
    return ret;
}

int main()
{
    //IN("hdu4432.txt");
    ll n,m,s,ans,tmp;
    char c;
    while(~scanf("%I64d %I64d",&n,&m))
    {
        s=(ll)sqrt(n*1.0);
        ans=0;
        for(ll i=1;i<=s;i++)
        {
            if(n%i == 0)
            {
                ans+=cal(i,m);
                if(n!=i*i)ans+=cal(n/i,m);
            }
        }
        //printf("%I64d\n",ans);
        //show(ans,m);
        int cnt=0;
        while(ans)
        {
            bit[cnt++]=ans%m;
            ans/=m;
        }
        for(int i=cnt-1;i>=0;i--)
        {
            putchar( (char)(bit[i]<=9?(bit[i]+'0'):(bit[i]-10+'A')) );
        }
        putchar('\n');
    }
    return 0;
}


hdu 4432 数学杂题

标签:http   os   io   for   ar   问题   代码   amp   size   

原文地址:http://blog.csdn.net/u011026968/article/details/38754997

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!