學習了線性基,但是仍沒有很好的掌握,不會靈活的應用
是乙個數列處理出來的乙個數的集合
並且線性基中可以用一些數去異或成原數列中的任意乙個數
線性基中的某些數異或不可能等於0
線性基中數都是唯一的,並且在保證前兩個條件下是數量最少的
具體學習,我是參照這個部落格進行線性基學習
學到了乙個單調棧的應用
確定乙個數是某個序列中最大子區間的最小值
可以用以下**實現
#includeusing namespace std;
const int maxn = 1e6+7;
typedef struct node
node;
node num[maxn];
int main()
while(!st.empty())st.pop();
for(int i=n; i>0; i--)
for(int i=1;i<=n;i++)
}
上面的應用都是利用非常基礎的棧操作,發現自身對於思維方面還是需要加強,對於技巧性知識需要通過做題來掌握發現
在我的理解中,分層圖我認為是乙個bfs中套最短路的鬆弛操作,可能是因為我學的是用dijkstra跑的分層圖。有k次免費走一條邊的機會,問到終點最短路上多少。
#includeusing namespace std;
const int maxn = 1e3+7;
const int inf = 1e9+7;
int n,m,k;
int st,ed;
long long int ans;
int dis[maxn][maxn];
struct ee
ee() {}};
vectormp[maxn];
struct node
node() {}
friend bool operator < (const node &a,const node &b)
}; priority_queueq;
long long int dijkstra(int start,int dst)
if(dis[tem.dest][now.cnt+1]>now.dis && now.cnt+1<=k)
}}}
int main()
int a,b,v;
memset(dis,inf,sizeof(dis));
for(int i=0; i對於構造題,首先還是得找到每個資料之間的規律,發現通用的規律就可以進行構造,如果沒構造出來通常是思路問題。對於思維還是需要多訓練。
核心還是對兩個點之間的權值更新,通過這個部落格進行學習帶權並查集
例如下圖
x的父親節點上fx,y的父親節點上fy,之間已知權值為vx,vy,給你x和y之間的權值,要你計算fx和fy之間的權值
我們可以知道wi=-vx+val+vy直接通過觀察圖可以發現,就是有向路徑的權值之和。
這段**是對並查集進行val的更新以及路徑壓縮
int find(int x)
return pre[x];
}
int mix(int x,int y)
}
同理可以得到這帶權並查集的查詢關係的方法
x到y的權值即為vx-vy
要學的東西還是很多,依然很菜,被任何人吊錘
2019 7 28訓練總結
先分析下過去的不足之處 1 學習沒有計畫,每天沒有給自己定乙個小目標。這樣每天沒學習就沒有緊張感,鬆鬆垮垮的是學不好的。2 沒有好的學習態度,要麼就不碰,碰了就要做好。不能幹著這個想著那個。還有就是沒有好的學習時間規劃,一會兒乾乾這個一會兒乾乾那個是學不好的。今後的學習策略 首先自己得知道自己不是高...
每週總結 12 5 12 11
關於時間格式 string型別轉date型別 string datestr2 2012 01 10t00 00 00 replace t dateformat dateformat new dateformat yyyy mm dd hh mm ss date date dateformat.par...
每週總結 2018 3 3
上個學期的學習經驗告訴我要勤總計。新的學期開始總結這週做的事。本週學習四天半,內容主要兩部分 python中特有的資料結構 元組tuple 1,2,3,4 同list,但不能修改 無list的方法 字典dict 插入d e 5,pop 鍵值 d.get 鍵值 使用鍵 值儲存 集合set 無重複元素 ...