原创 CF 570E dp遞推

題意:給一個n*m的小寫字母地圖,找從(1,1)到(n,m)點非升路徑,且路徑組成的字符串是迴文串的路徑個數。 思路: 考慮從兩端同時走,然後在中間相遇,走的步數是確定的,爲n+m-1, 所以只要兩邊同時走(n+m)/2步就行; 考慮dp

原创 uva-10828 期望dp+gauss

傳送門 題意:給你一個有向圖,從1號節點出發,問經過某個點的期望次數。 思路:傳遞閉包寫錯wa到哭。設 dp[i]爲經過i點期望 dp[v]=dp[u1]*p1+dp[u2]*p2+....(對於第一個點應該再+1) 將每個dp看做變量,

原创 Gym - 101889E 記憶化搜索

思維還是太將江華,開始一直想dp,就是這一位餘數固定時取最小的一個字符串,但是字符串太大,賦值的時候超時,其實根本沒必要存字符串,只要記憶化搜索,看看[pos][res]這個狀態是否能構成就行,這樣的話1000*1000個狀態, 穩穩的,

原创 HDU5536 01字典樹求模板

#include<bits/stdc++.h> using namespace std; const int N=1e5+10; struct Tire{ int nxt[N][2], cnt[N], ed[N]; in

原创 codeforces 1046_problem_A AI robots (cdq分治)

傳送門 題意:給n個機器人,機器人都有自己的位置x,可見範圍r,智商q,問兩個機器人互相可見,並且智商相差不多於k的對數有多少。 思路:運用分治思想,第一維對於r非遞減排序,分治,考慮對於左半部分的每一個機器人,右半部分有多少個和它配對的

原创 HDU 4408 最小生成樹計數

傳送門 思路:首先需要了解Matrix_Tree定理 1.設 G是無向圖的鄰接表,D是無向圖各個點的度數 2.令M=D-G,則M的任意n-1階餘子式的行列式值的 絕對值, 就是無向圖生成樹的個數 應注意的是鄰接表的值不只是0,1值,也就是

原创 HDU6212 區間dp 好題

傳送門 思路:要是對原串區間dp感覺無從下手,需要重要的一步就是轉化,轉化成連續的01數量串,比如10010=1211 這樣的話每隔一個就是同一類的。 對於單個數字,需要的就是3-a[i], 對於一個區間,可以由三類轉移 1. 把區間分成

原创 Gym - 101201H

題意:有k個區間,用他們填滿1~n,不允許重疊,問留下的空隙最少是多少 思路:可以從兩方面考慮,第一個是正面考慮,轉移方程dp[i]=min(dp[j]+l[i]-r[j]+1) (r[j]<l[i]) 這樣的話將方程移項 dp[i]-

原创 HDU 5009(dp + 雙向鏈表的巧妙運用)

http://acm.hdu.edu.cn/showproblem.php?pid=5009 這個題轉移好想,時間優化不好想, 看了別人的思路,用雙向鏈表優化,自己想到去鏈表裏查找已經出現的元素也會花很多時間,一直沒想出來,看了代碼才知道

原创 CodeForces - 474E dp+離散+線段樹優化

這個題 跟這個題類似,都是一維dp,n^2複雜度,但是需要優化, 感覺這種題數據小點1e4的話優化成nsqrt(n)就可以,1e5的話,要優化成nlog(n), 這個題是用線段樹維護的最大值。因爲一個數只能由前面1~val[i]-d,或者

原创 素數線性篩模板

參考於該博客   int Mark[MAXSIZE]; int prime[MAXSIZE]; //判斷是否是一個素數 Mark 標記數組 index 素數個數 int Prime(){ int inde

原创 2018南京網絡賽 Skr(manacher奇偶模板+hash模板)

傳送門 題意:給一個只有‘1’~‘9’的串,求不同迴文串代表數值的和 思路:馬拉車找回文串,hash標記不同,hash方法求數值 #include<bits/stdc++.h> using namespace std; const in

原创 CF1037E圖論思維(set::erase的用法)

傳送門 #include<bits/stdc++.h> using namespace std; #define fir first #define sec second const int N=2e5+10; typedef pair

原创 落谷3773 數論+dp遞推

https://www.luogu.org/problemnew/show/P3773 這個題就用到了上篇博客https://blog.csdn.net/du_lun/article/details/82414086,遍歷子集的小技巧,

原创 計蒜客 寶藏 狀壓dp (遍歷二進制中一的子集的小技巧)

傳送門 思路是參照着這個博客寫的https://blog.csdn.net/a1035719430/article/details/80488083 dp的一個狀態是點集,這個是很好想的,但是加上路徑上寶藏的數量就不好想了,因爲所有路徑都