1 15 考試總結

2022-05-02 02:03:14 字數 2158 閱讀 3119

題目鏈結

題意:給定乙個無向有權圖,通過一條邊的時間為邊權,每過去一單位時間,每乙個點都會積累 \(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...