zoukankan      html  css  js  c++  java
  • hdu 4432 数学杂题

    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
    ",ret);
        return ret;
    }
    
    ll cal(ll i, ll m)
    {
        ll ret=0;
       // printf("###########%lld
    ",i);
        while(i)
        {
            ret+=(i%m)*(i%m);//quick(i%m,m);
            i/=m;
        }
        //putchar('
    ');
        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
    ",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('
    ');
        }
        return 0;
    }
    


  • 相关阅读:
    python3.5中的格式化输出
    关于IDE集成开发环境,Pycharm小技巧
    python3.5中的赋值运算符和逻辑运算符
    SecureCRT 使用技巧
    selenium-键盘和鼠标事件
    selenium-各种定位方法
    selenium-百度搜索框输入后,定位联想下拉框元素
    selenium
    mysql-client 与mysql-server的区别
    MySql8.0.15 window 初始化 修改密码
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6871669.html
Copyright © 2011-2022 走看看