2019 7 28每週總結

2021-09-25 15:33:52 字數 1852 閱讀 3868

學習了線性基,但是仍沒有很好的掌握,不會靈活的應用

是乙個數列處理出來的乙個數的集合

並且線性基中可以用一些數去異或成原數列中的任意乙個數

線性基中的某些數異或不可能等於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 無重複元素 ...