日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jzoj4485-[GDOI 2016 Day1]第一题 中学生数学题【数学】

發布時間:2023/12/3 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jzoj4485-[GDOI 2016 Day1]第一题 中学生数学题【数学】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正題


題目大意

給出n0,k,p0n_0,k,p_0n0?,k,p0?

然后有兩問,求

  • ?n0?kp?(p?p0)\lfloor n_0-kp\rfloor (p-p_0)?n0??kp?(p?p0?)的最大值,ppp為任意實數。
  • ?n0?kp1?(p1?p0)+(?n0?kp2??n1)(p2?p0)\lfloor n_0-kp_1\rfloor (p_1-p_0)+(\lfloor n_0-kp_2\rfloor -n_1 )(p_2-p_0)?n0??kp1??(p1??p0?)+(?n0??kp2???n1?)(p2??p0?)的最大值其中n1=?n0?kp1?n1=\lfloor n_0-kp_1\rfloorn1=?n0??kp1??p1,p2p_1,p_2p1?,p2?為任意實數。

  • 解題思路

    對于第一問,欽定定義p′=?kp?p'=\lfloor kp\rfloorp=?kp?,然后
    ?n0?kp?(p?p0)=?kp2+(n0+kp0)p?n0p0\lfloor n_0-kp\rfloor (p-p_0)=-kp^2+(n_0+kp_0)p-n_0p_0?n0??kp?(p?p0?)=?kp2+(n0?+kp0?)p?n0?p0?
    轉換為p′p'p
    ?p′k+(n0k+p0)p′?n0p0-\frac{p'}{k}+(\frac{n_0}{k}+p_0)p'-n_0p_0?kp?+(kn0??+p0?)p?n0?p0?
    然后a=?1k,b=n0k+p0,c=?n0p0a=-\frac{1}{k},b=\frac{n_0}{k}+p_0,c=-n_0p_0a=?k1?,b=kn0??+p0?,c=?n0?p0?
    之后用公式?b2a-\frac{b}{2a}?2ab?計算出ppp的最優值。

    對于第二問,我們可以暴力枚舉k?p1k*p_1k?p1?然后在用公式計算p2p_2p2?


    codecodecode

    #include<cmath> #include<cstdio> #include<algorithm> using namespace std; double n0,p0,k,ans; int main() {//freopen("math.in","r",stdin);//freopen("math.out","w",stdout);scanf("%lf%lf%lf",&n0,&p0,&k);double a=-1/k,b=n0/k+p0,c=-p0*n0;double p=-b/(2*a);printf("%.3lf",(n0-round(p))*(round(p)/k-p0));for(double p1=0;p1<=n0;p1++){double n1=(n0-p1),y=(n0-p1)*(p1/k-p0);double a=-1/k,b=p1/k+p0,c=n0*p1/k-n0*p0-p1*p1/k;double p2=-b/(2*a);ans=max((p1-round(p2))*(round(p2)/k-p0)+y,ans);}printf(" %.3lf",ans); }

    總結

    以上是生活随笔為你收集整理的jzoj4485-[GDOI 2016 Day1]第一题 中学生数学题【数学】的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。