zoukankan      html  css  js  c++  java
  • 浙江农林大学第十九届程序设计竞赛暨天梯赛选拔赛

    A 锯锯锯锯锯锯锯锯锯锯锯锯锯锯

    考虑数据范围1e8,所以我们仅记录有用的查询值,而不是记录所有的。

    const ll mod = 1e9+7;
    const int N= 1e5+7;
    ll n,a[N],x[N],y[N],q[N<<1],cnt=0,ans[N<<1];
    ll qpow(ll a,ll b){
        ll ans=1;
        while(b){
            if(b&1)ans=ans*a%mod;
            a=a*a%mod;
            b>>=1;
        }
        return ans;
    }
    int main(){
        scanf("%lld",&n);
        for(int i=1;i<=n;++i){
            scanf("%lld%lld",&x[i],&y[i]);
            if(x[i]>y[i])swap(x[i],y[i]);
            q[++cnt]=x[i];q[++cnt]=y[i];
        }
        sort(q+1,q+1+cnt);
        ll m= unique(q+1,q+1+cnt)-(q+1);
        ll res=1,pos=1;
        for(int i=0;i<=1e8;++i){
            if(i==q[pos])ans[pos]=res,pos++;
            res=(1ll*res*res%mod+res)%mod;
        }
        for(int i=1;i<=n;++i){
            ll aa=ans[lower_bound(q+1,q+1+m,x[i])-q];
            ll bb=ans[lower_bound(q+1,q+1+m,y[i])-q];
            printf("%lld
    ",1ll*bb*qpow(aa,mod-2)%mod);
        }
        return 0;
    }

     B 每日咕咚

    看题意理解一下,每个人在每个位置的贡献。

    int n;
    double x,v,ans=0.0,a[1007][1007],d;
    int main(){
        scanf("%d%lf%lf",&n,&x,&v);
        for(int i=1;i<=n;++i){
            for(int j=1;j<=n;++j){
                scanf("%lf",&d);
                a[i][j]=d-v;
            }
        }
        for(int i=1;i<=n;++i){
            double sum=0.0;
            for(int j=1;j<=n;++j){
                sum=sum+(x*n)/a[i][j];
            }
            ans=ans+sum/n; 
        }
        printf("%.2lf
    ",ans);
        return 0;
    }

    D 涛涛和策策的游戏

    分解质因数,得到每个数字贡献的个数,进而化为nim博弈

    int main(){
        GetPrime(1e6);
        scanf("%d",&n);
        for(int i=1;i<=n;++i){
            scanf("%d",&a[i]);
        }
        for(int i=1;i<=n;++i){//分解
            if(a[i]==1){
                a[i]=0;
                continue;
            }
            int cntt=0;
            int tmp=a[i];
            if(isPrime[tmp]){
                a[i]=1;
            }
            else{
                for(int j=1;Prime[j]*Prime[j]<=a[i]&&j<=cnt;++j){
                    if(tmp%Prime[j]==0){
                        while(tmp%Prime[j]==0)    tmp/=Prime[j],cntt++;
                    }
                }
                if(tmp>1)    cntt++;
                a[i]=cntt;
            }
        }
        int ans=a[1];
        for(int i=2;i<=n;++i)
            ans=ans^a[i];
        if(ans==0)  printf("TT txdy!
    ");
        else        printf("CC yyds!
    ");
        return 0;
    }

    F 学长的白日梦

    乘的时候会爆ll,所以快速乘一下。

    ll t,x,i,ans;
    ll mul(ll a , ll b , ll mod){
        ll ans = 0 ;
        while(b){
            if(b&1){
                ans = (ans + a) % mod ;
            }
            b >>= 1 ;
            a = (a + a) % mod;
        }
        return ans ;
    }
    ll qpow(ll x,ll y){
        ll res=1;
        x=x%mod;
        while(y){
            if(y&1)res=mul(res,x,mod);
            x=mul(x,x,mod);
            y>>=1;
        }
        return res%mod;
    }
    int main(){
        scanf("%d",&t);
        while(t--){
            scanf("%lld%lld",&x,&i);
            ans=qpow(x,i);
            printf("%lld
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    SessionAttributes注解
    数据格式化
    数据类型转换器
    线程的常用方法总结
    线程生命周期
    分析配置DispatcherServlet类时load-on-startup标签作用
    springMVC的执行请求过程
    MyBatis之动态SQL
    MyBatis实现
    Spring框架中的JDK与CGLib动态代理
  • 原文地址:https://www.cnblogs.com/PdrEam/p/13899845.html
Copyright © 2011-2022 走看看