題目鏈結
題意:給定乙個無向有權圖,通過一條邊的時間為邊權,每過去一單位時間,每乙個點都會積累 \(q\) 公釐雪,初始雪厚 \(h_\),雪積累到 \(l_\) 以上就不能行走(起點,終點不算).求出 \(s\) 到 \(t\) 的最短時間.
有限制條件的最短路,只需在跑 \(dijkstra\) 或 \(spfa\) 的時候稍微判斷一下即可.
#include #include #define inf (210000000000ll)
typedef long long ll;
inline ll rd()
inline ll min(ll x,ll y)
} return dis[t]<=g?dis[t]:-1;
}int main()
for(int i=1;i<=m;i++)
ll ans=dijk(s);
if(ans>0)printf("%lld\n",ans);
else puts("wtnap wa kotori no oyatsu desu!");
return 0;
}
題目鏈結
題意:維護序列,支援區間加,查詢區間大於等於乙個數的個數.
基礎分塊,每塊維護乙個單調的 \(vector\),邊角暴力,塊內二分.
#include #include #include #include #define rg register
typedef long long ll;
inline int rd()
const int n=1000002,s=1002;
int n,q,size,block;
int bl[n],l[n],r[n],add[n],a[n];
std::vectorv[s];
inline void upd(int k)
inline void update(int l,int r,int k)
for(rg int i=l;i<=r[bl[l]];i++)a[i]+=k;upd(bl[l]);
for(rg int i=l[bl[r]];i<=r;i++)a[i]+=k;upd(bl[r]);
for(rg int i=bl[l]+1;i可能要吸氧氣才能過
題目鏈結
題意:給定一棵樹,多組詢問,求兩點之間所有點的深度的 \(k\) 次方和.
可以推出:對於兩個點,它們之間存在的深度是連續的一段(乙個點是它們的 \(lca\) )或兩段(兩點中沒有點是它們的 \(lca\) ).故可以預處理 \(i^\) 的字首和,使用倍增求 \(lca\) 就可以了.
#include typedef long long ll;
inline int rd()
inline void swap(int &x,int &y)
const int n=300002;
const ll mod=998244353;
inline ll fpow(ll b,ll p)
return ans;
}struct edgeedge[n<<1];
int head[n],cnt;
int n,q;
int dep[n],f[n][22];
ll x[n][52],s[n][52];
inline void init(int n)
for(int k=1;k<=50;k++)
for(int i=1;i<=n;i++)
s[i][k]=(s[i-1][k]+x[i][k])%mod;
}inline ll query(int l,int r,int k)
inline void add(int f,int t)
inline void dfs(int u,int ft)
}inline int lca(int u,int v)
int main()
dep[0]=-1;
dfs(1,0);
for(int j=1;j<=20;j++)
for(int i=1;i<=n;i++)
f[i][j]=f[f[i][j-1]][j-1];
q=rd();
while(q--)
return 0;
}
11 5 模擬賽總結
a好像做過,但是二進位制分組是帶log的。b題根據以前做過的一道題的想法,很快就想到行列分開處理。這樣子我們就要求一些行和一些列交點的最短路,可以線段樹上二分 分類討論處理。然而細節非常多,調到考試結束都沒寫出來。放乙個過了loj資料的 includeusing namespace std defi...
NOIP模擬賽11 5總結
比賽過程中出現斷電尷尬 真的逗。逗的真 看完第一題,因數這種東西都是根號個,再看範圍才200個數。所以就是隨便做。看完第二題,本來覺得用什麼map儲存狀態,因為狀態不會很多,所以可以做。仔細想想發現狀態可能很多,於是仔細觀察題目條件。價值很小,就理所應當想到第二維設成價值的dp。不難。第三題看完,就...
SICP 習題 1 15 解題總結
sicp 習題 1.15要求計算過程sine的空間和步數增長階。有人可能會和我一樣,問sine是什麼,呵呵,就是三角函式sin啦,書中講到一種求sin函式的方法,要求計算這種方法的增長階。先看看sine過程的定義,書中全寫出來了,照抄出來 define cube x x x x define p x...