DAY4模考总结.py

模考DAY4总结

今天是小信专场啊

1.题解部分

第一题:(小信爱音游)

打音游??我不会?

来看下一题(bushi

咳咳,我开玩笑的…

这道题非常简单,按照题目的公式计算难度就行了,最后需要打擂台计算min值, 公式:
\sqrt{(lx-x_i)\| \times (lx-x_i)\|+(ly-y_i)\| \times (ly-y_i)\|)} \div (t_i-lt)
部分代码:

double lt=t[0], lx=x[0], ly=y[0];
        for(ll i=1;i<n;i++){
            ans=max(sqrt(abs(lx-x[i])*abs(lx-x[i])+abs(ly-y[i])*abs(ly-y[i]))/(t[i]-lt), ans);
            lt=t[i];
            lx=x[i];
            ly=y[i];
        }
        cout << fixed<<setprecision(10) <<ans << endl;

PS:最后需要使用强制高精度函数欧~

第二题:(寻找等边三角型)

这道题也还是比较简单,只需要把圆分成三份,然后枚举第一个节点,看其他两个节点在圆上有没有就行,判断公式:
mp[(x[i]+len)%x[n]]&&mp[(x[n]+x[i]-len)%x[n]]&&(x[i]+len+len+len)%x[n]==x[i]
部分代码:

    mp[x[n]]++;
    for(ll i=0;i<=n;i++){
        ll len=x[n]/3;
        if(mp[(x[i]+len)%x[n]]&&mp[(x[n]+x[i]-len)%x[n]]&&(x[i]+len+len+len)%x[n]==x[i]){
            ans++;
        }
    }
    cout <<ans/3; 

第三题:(小信学习欧几里得算法)

这道题有点难了,需要一大堆数学推论,所以…

我们来分析一波!!!

首先我们发现 a \times b \div gcd(a, b ) = lcm(a, b), 那么就可以代入进函数f

f(a, b)=\frac{a \times b}{gcd(a, b)^2} = a \div gcd(a, b ) \times b \div gcd(a, b)

由于要求答案是质数,所以得出结论:

b是a的质数倍

由此得出代码,先用埃氏筛和dp预处理,然后直接输出就可以了

部分代码:

    everyPrime(10000000);
    dp[2]=1;
    for(ll i=3;i<=10000000;i++)
        if(p[i]!=0)
            dp[i]=dp[i-1]+p[i];
        else
            dp[i]=dp[i-1]+1;
    while(t--){
        ll n;
        cin>>n;
        cout<<dp[n]<<endl;
    }

函数代码:

void everyPrime(ll n){
    for(ll i=2;i<=n;i++){
        if(p[i]==0){
            for(ll j=i*2;j<=n;j+=i){
                p[j]++;
            }
        }
    }
}

第四题:(小信的生产线)

这道题直接看我的题解就可以了

2.做题情况

第一题

很简单,10分钟AC
分数:AC 100pt

第二题

这道题比较曲折,最开始写的两重循环就不管了,后来感觉有可能会超时,于是又思考了一会就AC了
分数:AC 100pt

第三题

比较难,我写的暴力做法,这里出现了一个非常不应该错的错误,我没写freopen!!!!!!!!!!, 少拿了30分!!!!!!!!!
分数:RE 0pt

第四题

这道题感觉比第三题简单,我真的太*了,正解写出来了,提交了,** RE**了,数组开小了!!!!!!!!!!!
分数:RE 30pt

3.总结

这次模考本来是我人生中的高光时刻330分全班第一的,却因为我的粗心大意导致230分,真的是太太太太可惜了!!!!!!!!!
预期得分:330(全班第一!)
实际得分:230(第四,还行吧)

ε=(´ο`*)))唉祝我下次模考

AK吧

3 个赞

ε=(´ο`*)))唉,太太太太太太太太太太太太太太太太可惜了!!

image
这里是freopen吧?

啊对,谢谢提醒