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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

奇怪的道路

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

?

DeepinC的題解

考場AC nb%%%%%%%%%%%%%%%%%%

2019/4/27
Day1? T3 奇怪的道路


step1:復雜度分析

1<= n <= 30, 0 <= m <= 30, 1 <= K <= 8.
按照習慣,正解復雜度一般在1e6-1e8級別
而且往往復雜度關系最大的就是最小的那個數
對,抓住那個k=8打
所以說先蒙個復雜度
O(mnk)?太小
O(mn*2^k)這個差不多
所以試試狀壓?


step2:算法

算法一:
其實看到這么小的數據范圍應該也能 <感受一下> 狀壓的氣息吧
[任何一個城市都與恰好偶數條道路相連(0也被認為是偶數)]
奇數偶數?可以用0,1,兩種狀態表示,這很狀壓,這非常狀壓
設dp[n][m][state]表示已經考慮了n個城市,m條道路,所有城市狀態為state時的情況數
如果你把n和p連起來,n-k<=p<n????? (pow[i]表示2的i次方)

?? ?dp[n][m][state]+=dp[n][m-1][state^pow[n]^pow[p]];
異或超棒的,當你連上一條路時,兩個端點已經連上的路原來是奇數的就變成偶數,偶數就變成奇數
題庫里內存128M,考試時內存256M,state太占內存,大概能處理n=15,一半分

算法二:(優化)
我說過那個最小的k是突破口吧?但是用上了嗎?
根據復雜度分析,如果把那個2^n替換成2^k就可以了
那么就要把state的位數變成k,仔細一看,剛好合適
那么state的含義稍微一變:最后k座城市的狀態
<交線牛逼法>很好啊,因為第i座城市的狀態轉移只與最后k座城市有關
<NOI2019 Day2 T1 mentor:中國好碼農>ing...
碼出來的時候,忽然發現一個問題,我沒考慮當前城市的情況,所以state的大小其實是2^(k+1)
<王鶴松式>沒關系沒關系,復雜度更接近上限了,正確的可能性更高了(玄學信仰)
狀態轉移的式子稍微一改
?? ?dp[n][m][state]+=dp[n][m-1][state^1^pow[n-p]];
而且因為state的表示范圍在變化,所以對于每個n,dp值都需要特殊轉移
?? ?dp[n][m][(state<<1)&(pow[k+1]-1)]+=dp[n-1][m][state];
dp[n][m][0]即為答案

算法三:(無關緊要的優化)
時間小優化:
?? ?我是個聽學長話的乖孩子。。。。。。
?? ?他說過,取模超級慢的是嘛?
?? ?怎么避免取模呢?減法優于取模,判斷優于計算
?? ?inline long long mod(long long k){return k>=1000000007?k-1000000007:k;}
?? ?因為代碼里只存在加法,所以計算結果不會超過1000000007*2,減去一個1000000007就行了
空間大優化:
?? ?為什么只有256M啊?NOI還有5G呢
?? ?可見,dp式子只從n-1轉移到n
?? ?滾動數組!棒!
?? ?式子再稍微一改
?? ??? ?dp[i&1][j][s]=mod(dp[i&1][j][s]+dp[i&1][j-1][s^1^pow[i-p]]);
?? ??? ?dp[(i&1)^1][j][s<<1]=dp[i&1][j];
?? ?滾起來別忘了清空數組
?? ??? ?dp[i&1][j][s]=0;

編號 ?? ?題目 ?? ?狀態 ?? ?分數 ?? ?總時間 ?? ?內存 ?? ?代碼 / 答案文件 ?? ?提交者 ?? ?提交時間
#57153 ?? ?
#C. 奇怪的道路
?? ?Accepted ?? ?100 ?? ?67 ms ?? ?616 KiB ?? ?C++11 / 754 B ?? ?DeepinC (吳迪) ?? ?2019-04-27 21:46:34

20個測試點,時間還不錯
k=8的話目測可以處理m=n=300;

代碼

?

轉載于:https://www.cnblogs.com/znsbc-13/p/11268465.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的奇怪的道路的全部內容,希望文章能夠幫你解決所遇到的問題。

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