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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4) 构造

發布時間:2023/12/4 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4) 构造 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

傳送門

文章目錄

  • 題意:
  • 思路:

題意:

nnn個數,讓你構造一個盡可能大的矩陣,其中每個點所在的行和列都不含相等元素。

思路:

假設構造的答案矩陣大小為a×ba×ba×ba<=ba<=ba<=b,那么我們可以知道其中最大的相等元素的個數一定<=a<=a<=a,否則一定不能保證每行每列都不相等。
那么我們就可以[1,n][1,n][1,n]枚舉最大的出現次數即aaa,讓后假設選出的元素個數為tottottot,那么b=?tota?b=\left \lfloor \frac{tot}{a} \right \rfloorb=?atot??,讓后取一個最大的就行了。
現在知道矩陣大小a×ba×ba×b了,下面考慮怎么構造答案。
這里直接盜了題解的圖了,順便先把構造方法說了。假設當前位置在(x,y)(x,y)(x,y),那么下一個位置就是((x+1)moda,(y+1)modb)((x+1)\bmod a,(y+1)\bmod b)((x+1)moda,(y+1)modb),當然如果a?aa*aa?a的矩陣的話,這樣寫會一直在主對角線上跑,我們特判一下當前位是否填過了,如果填過的話就x=(x+1)modax=(x+1)\bmod ax=(x+1)moda即可。
其實一開始想到了這樣按照斜著填,但是不知道怎么走才能保證自己的想法能實現出來。
題解((x+1)moda,(y+1)modb)((x+1)\bmod a,(y+1)\bmod b)((x+1)moda,(y+1)modb)這樣很巧妙,如下面4×64×64×6的矩陣,填完5,65,65,6再填7,87,87,8的時候正好保證了這四個元素在不同的行??梢宰C明每個點所在的行和列都不含相等元素。

總結

以上是生活随笔為你收集整理的Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4) 构造的全部內容,希望文章能夠幫你解決所遇到的問題。

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