原创 2019 CCPC 秦皇島 Escape 最大流

Problem Description 給一個 n×m 大小的迷宮,左上角爲 (1,1) ,右下角爲 (n,m) 。迷宮中的每個 1×1 的格子要麼是障礙,要麼爲空。 有 a 個機器人要從迷宮上方走到迷宮下方,其中第 i 個機器人的初始位

原创 2019 CCPC 重現賽 1006 基環樹

  設圖中環的大小分別爲 c1, c2, ..., ck,不屬於任何一個環的 邊數爲 b,則答案爲:2^b* (2^c1 - 1)*...*(2^ck - 1)   #include<bits/stdc++.h> using name

原创 P2746 [USACO5.3]校園網Network of Schools 縮點拓撲

題意:n個點,接下來n行每行代表 第 i 個 點和這一行的點有一條有向邊,每行以0結束。 兩個問題:1.最少從幾個點出發能到達所有點, 2.使得任意一點出發能到達所有點最少加多少條有向邊。 解:先縮點建圖,強連通縮點後圖上就沒有環只有鏈,

原创 ICPC Asia Shenyang 2019 Dudu's maze

 這兩次被dfs上了兩課。 hhh 題意: 一個迷宮有n個房間,m條路,房間除了糖果就是怪物。小明從1號房間出發,他足夠聰明且知道地圖,遇到怪物必須使用 傳送門,傳送門會將你傳送到和當前房間連接的任意一間(每邊等概率,有重邊)。不過傳送門

原创 2019 南昌網絡賽 H The Nth Item

我覺得好假啊。 把if else 位置換了,就過了。還有人預處理前 N 項過的,我矩陣快速冪不服,連1e18數據都沒有。  因爲有循環節,所以標記,也可以直接找循環節更快。 #include <bits/stdc++.h> #inclu

原创 2019亞洲區域賽徐州網絡賽 M Longest subsequence

by duhui 記錄每一個字母出現位置,貪心找  。 #include <bits/stdc++.h> using namespace std; const int maxn = 1e6+5; int nex[maxn][26]; c

原创 牛客練習賽51 D 羊吃草

 建圖沒什麼好說的,跑最大流原來的權值會被破壞,需要記錄重新賦值。 #include <bits/stdc++.h> using namespace std; #define ll long long #define INF 0x7ff

原创 Codeforces1214 D Treasure Island

 題意:給你一張圖 ,從 1,1走到 n , m 問最少堵多少點,使得路不連通 解: 最多 2 個, 兩次深搜。 #include <bits/stdc++.h> using namespace std; const int maxn

原创 hdu 3966 樹鏈剖分 點操作

  /*by SilverN*/ #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #include<cmath> #define LL

原创 P3384 樹鏈剖分 點操作

操作1: 格式: 1 x y z 表示將樹從x到y結點最短路徑上所有節點的值都加上z 操作2: 格式: 2 x y 表示求樹從x到y結點最短路徑上所有節點的值之和 操作3: 格式: 3 x z 表示將以x爲根節點的子樹內所有節點值都加上z

原创 SPOJ 375 邊操作

給一顆樹,每條邊有一個權值。有兩種操作:1、修改某條邊的值;2、詢問a、b兩點路徑上邊權的最大值。  #include <iostream> #include <bits/stdc++.h> using namespace std;

原创 KMP模板及優化

原文鏈接:https://blog.csdn.net/qq_41603898 https://blog.csdn.net/Anoy_acer/article/details/82748344

原创 hdu6703 2019 CCPC網絡選拔賽 1002 array 權值線段樹

題意: t 組,每組給出 n,m(n<100000), n個數 從1到n順序不定,m次詢問。 格式爲 (1,t1)或(2,t2,t3) 1 操作 t1 = t1^lastans.  把 a[t1] 的值 加 10000000, 2 操作

原创 2019牛客暑期多校訓練營(第八場)E - Explorer

 給你 n 個點,m 條邊,每條邊給你一組數 (u, v, l, r) 代表如果你想從u點走到v點,你的身高需要滿足範圍 [ l , r ] ,問你從 1 走到 n 點,你有多少種身高可以選擇。 解:先對所有的 l, r 離散化建線段樹,

原创 2019牛客暑期多校訓練營(第七場) E Find the median 權值線段樹+區間離散化

  講的挺好 每個葉子結點表示 大於等於當前這個點小於後面一個點的 區間,對這些點建線段樹,查詢區間第 (n+1)/2 大 #include <bits/stdc++.h> #define ll long long using name