• 分子函数2013金山西山居创意游戏程序挑战赛——初赛(4)


    废话就不多说了,开始。。。

        第一题: HDU  4554    叛逆的小明

        标题意思很明白,直接可以求解二元一次方程

        a=(x+y)/2;

        b=x-a;

        然后用flag(+1、-1)记着每个的符号,使a、b都变为正数

        然后求反,乘以flag然后做运算就ok了。

        代码如下:

    #include<iostream>
    #include<vector>
    #include<List>
    #include<deque>
    #include<queue>
    #include<stack>
    #include<map>
    #include<set>
    #include<algorithm>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<string>
    #include<cmath>
    using namespace std;
    
    int i,j;
    const int N=20010;
    typedef long long LL;
    
    int fan(int k)
    {//求反
        int j,sum=0;
        while(k)
        {
            j=k%10;
            k/=10;
            sum=sum*10+j;
        }
        return sum;
    }
    
    int main()
    {
        int s,t,T,x,y;
        cin>>T;
        while(T--)
        {
            scanf("%d%d",&s,&t);
            x=(s+t)/2;
            y=s-x;
            int f1=1,f2=1;
            if(x<0)
            {
                x=-x;f1=-1;
            }
            if(y<0)
            {
                y=-y;f2=-1;
            }
            x=fan(x);
            y=fan(y);
            printf("%d %d\n",f1*x+f2*y,f1*x-f2*y);
        }
        return 0;
    }

        第二题:

        待续。。。。

        

        

        第三题:  HUD   4556   Stern-Brocot Tree

        两边是对称的,左边分母大于分子,右侧分子大于分母。

        且分子分母都是互质的,这让我们想到了 欧拉函数。

        每日一道理
    “一年之计在于春”,十几岁的年纪,正是人生的春天,别辜负了岁月老人的厚爱与恩赐。行动起来,播种梦想吧!

        可以看出来,每个数都在上一级下面加了当前n的欧拉函数。。。

        代码如下:

    #include<iostream>
    #include<vector>
    #include<List>
    #include<deque>
    #include<queue>
    #include<stack>
    #include<map>
    #include<set>
    #include<algorithm>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<string>
    #include<cmath>
    using namespace std;
    
    
    const int N=1000000;
    typedef __int64 LL;
    
    LL phi[N+10];//这个地方需要用long long
    
    
    void phi_table()
    {
        memset(phi,0,sizeof(phi));
        LL i,j;
        phi[1]=1;
        for(i=2;i<=N;i++)
            if(!phi[i])
                for(j=i;j<=N;j+=i)
                {
                    if(!phi[j])
                        phi[j]=j;
                    phi[j]=phi[j]/i*(i-1);
                }
    }
    
    
    /*
    void phi_table()
    {
        LL i,j;
        for(i=1;i<=N;i++)
            phi[i]=i;
        for(i=2;i<=N;i++)
            if(phi[i]==i)
                for(j=i;j<=N;j+=i)
                    phi[j]-=phi[j]/i;
    }
    */
    
    int main()
    {
        phi_table();
        for(int i=2;i<=N;i++)
            phi[i]+=phi[i-1];
        int n;
        while(cin>>n)
            printf("%I64d\n",phi[n]*2+1);//对称的,所以phi[i]*2+1
    
        return 0;
    }

        

    文章结束给大家分享下程序员的一些笑话语录: 问答
    Q:你是怎么区分一个内向的程序员和一个外向的程序员的? A:外向的程序员会看着你的鞋和你说话时。
    Q:为什么程序员不能区分万圣节和圣诞节? A:这是因为 Oct 31 == Dec 25!(八进制的 31==十进制的 25)

  • 相关阅读:
    发工资
    洛谷 P1821 [USACO07FEB]银牛派对Silver Cow Party
    洛谷P2169 正则表达式
    洛谷[LnOI2019]长脖子鹿省选模拟赛t1 -> 快速多项式变换
    洛谷 P1690 贪婪的Copy
    洛谷P1090 合并果子
    洛谷P1886 滑动窗口
    洛谷CF784E Twisted Circuit
    洛谷P2430 严酷的训练
    开博客第一天祭!!!
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3091639.html
Copyright © 2020-2023  润新知