關鍵點:不超過7條
根據咕咕原理,所以答案最少是n/7;(n小於49就暴力)
隨機化找兩個點判斷直線上的點個數,隨機500次,概率就很高了
法二:點數大於50,答案至少是8
答案一定是7條路之一
隨機找7個點,按照級角序排序,點數大於7的直線就刪去上面的點(之後random不考慮,但是實際上不能真刪除,因為可能兩條路有交點),每次一定可以找到至少一條路
複雜度就很穩了
思想:有些很麻煩處理的事情,範圍又不太大,都可以隨機化搞搞,能分析出概率就很好了
可能無窮組解,
無窮組解一定可以跳過去再跳回來,a,b向量必須共線
a,b不共線:
方案數有限。
座標範圍大而且正負很麻煩
解方程求出到(x,y)以及每個障礙點的用a的次數,用b的次數
轉化成格點往上往右走的方案數
障礙?套路地,f[i]表示到第一次到第i個障礙點的方案數,容斥即可
a,b共線:
把這條直線上的障礙點和(x,y)都投影到y或者x軸上
沒有明顯的階段,但是可以拓撲排序計數+判環
0的特殊討論很噁心
思路:基於inf、共線 討論,轉化為不同的模型
路徑統計模型要熟悉:
1.網格圖,往上往右走
有障礙點的——》容斥,第乙個碰到障礙點編號
格點不是很多的多源多匯——》dp,每次新加入乙個點,方案數+1,到了乙個匯點更新ansfzyzojp3979 -- [校內訓練20180914]魔法方陣
矩形到矩形的路徑agc 018e.sightseeing plan——網格路徑問題觀止
2.dagtopo計數
dag圖上的dp
肯定考慮質因數分解了
a=2^a*3^b*5^d*7^e
a/3+b/2+d+e<=700
列舉b,a,把2^a*3^b的值、每個數字個數(最小情況下)放進hash表裡,相同的mod值,位數小的優,位數相同,小的數多的優(字典序)
列舉d,e,去hash表裡查詢,更新答案比較方式同理
思路:bsgs或者折半,一半的位數比較小的時候,就可以用hash表存一部分再列舉另一部分了
複雜度指數級下降。
m很小,n很大,彷彿有矩乘的影子
所以,f[n][m],和為n放了m個k的所有情況的sin乘積和,
最後乙個k+1時候,
發現,和最後乙個數是cos也有關係,所以變成f[n][m][0/1]然後矩乘即可
思路:一種分段的序列dp,考慮重新開一段或者最後一段延長1
各種斯特林數的遞推都有類似思路
經典挖串dp
推完式子狀態過多,bool的dp的優化:
1.壓位,把某一維的狀態變成,維度/64(類似分塊),然後bool變成unsigned long long,每一位0/1表示這個塊的第i位是不是0/1
應用範圍廣,只是除以64,不徹底
2.把某一維刪掉,變成,某狀態下某個值的最值,
有的時候不行,看題目了,但是完全去除一維,複雜度降低乙個量級
貪心題目選講
假定海岸線是一條無限延伸的直線,陸地在海岸線的一邊,大海在另一側。海中有許多島嶼,每乙個小島我們可以認為是乙個點。現在要在海岸線上安裝雷達,雷達的覆蓋範圍是d,也就是說大海中乙個小島能被安裝的雷達覆蓋,那麼它們之間的距離最大為d。我們使用平面直角座標系,定義海岸線是x軸,大海在x軸上方,陸地在下方。...
字尾陣列題目選講
複習題 luogu題單 1.noi2015 品酒大會 題意 forall i 0,n 求有多少對字尾滿足 lcp ge i 以及滿足條件的兩個字尾的權值乘積的最大值。我們統計出對於 1.n 中的每個 i 統計一下有多少個 lcp i 再做個字尾和。因為 lcp i,j min st times ed...
6 5 競賽題目選講
undraw the trees include includeusing namespace std const int maxn 20000 5,maxl 200 5 int cnt 0,sum 0 string tree maxl struct node node maxn node buil...