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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Codeforces 899D Shovel Sale

發布時間:2023/12/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces 899D Shovel Sale 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目大意

給定正整數 $n$($2\le n\le 10^9$)。
考慮無序整數對 $(x, y)$($1\le x,y\le n, x\ne y$)。
求滿足 「$x+y$ 結尾連續的 9 最多」的數對 $(x,y)$ 的個數。

例子:
$n=50$,$(49,50)$ 是一個滿足條件的數對。

比賽時我的思路

首先注意到,「兩個正整數的和」的結尾的連續的 9 一定不包含進位的貢獻,也不產生進位。

首先考慮(數對的和的)結尾最多有幾個連續的 9 。不難得出:
設 $n$ 的位數為 $k$ ,令 $x=5\times 10^{k-1}$ 。
若 $n\ge x$,則和的結尾最多有 $k$ 個連續的 9 。
若 $n=10^{k} - 1$,滿足條件的數對有 $n - x$ 個,否則有 $n-x+1$ 個。

若 $n < x$ ,數對之和的第 $k$ 位一定小于 $9$,故結尾至多有 $k-1$ 個連續的 9 。

若 $k-1=0$,則為平凡情形。
考慮 $k\ge 2$ 的情形。
設 $n$ 的 第 $k$ 位上的數字為 $h(n)$,顯然有 $h(n) > 0 $ 。

考慮數對 $(x,y)$($x>y$),設 $x$ 的第 $k$ 位上的數字為 $h(x)$ 。
將所有滿足條件的數對 $(x,y)$ 分成下列若干類:

  • $h(n)>h(x)=h(y)=0$
  • $h(n)>h(x) = h(y) > 0$
  • $h(n)>h(x) > h(y)>0$
  • $h(n)>h(x) > h(y)=0$
  • $h(n)=h(x) > h(y) > 0$
  • $h(n) = h(x) > h(y) = 0$
  • $h(n) = h(x)= h(y) $
  • 在比賽中,我沒考慮到上述第 7 種情況。

    總結

    本題的思維方式:分類。

    實現技巧:
    求一個正整數 $n$ 的位數可用 to_string(n).size() 。

    轉載于:https://www.cnblogs.com/Patt/p/8053576.html

    總結

    以上是生活随笔為你收集整理的Codeforces 899D Shovel Sale的全部內容,希望文章能夠幫你解決所遇到的問題。

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