vector<int>q1[2520], q2[2520];voidbfs(ints){ queue<int>q; q.push(s); dis[s][s] =0;while(q.size()){intx = q.front(); q.pop();if(dis[s][x] > k +1)return;if(dis[s][x] <= k +1) q2[s].push_back(x);for(inti =0;i < q1[x].size();i ++){intu = q1[...
[CSP-S 2022 T1] 假期计划 #include <cstdio> #include <vector> #include <queue> #include <algorithm> using namespace std; typedef long long LL; const int N = 2505; vector<int> G[N]; int dis[N], top3[N][3]; bool vis[N], ok[N][N]; LL s[N]; int main() { int n, ...
本题主要是贪心思想和双端队列的使用,如果不熟悉STL中的双端队列,也可以手动模拟。关键是对问题的转化,难度上来说,我认为与T1相当。
int b[maxn][3]; void bfs(int s){ for(int i = 1;i <= n;i++)d[s][i] = -1; queue<int> que; que.push(s);d[s][s] = 0; while(!que.empty()){ int u = que.front(); que.pop(); if(d[s][u] == k)continue; for(int i = 0, len = e[u].size();i < len...
新赛道-2024年CSP-J/S 十一连测(四)-T1 题目描述 王老师脑袋一拍,定义了乘加运算! 他定义 a∗bc=(a+b)×c。 而且他觉得用括号来规定运算的先后顺序太麻烦了,他给乘加运算定义了一个权值的系数(为乘加运算的下标),权值大的乘加运算先进行。 例如下面的表达式: ===9 ∗34 9 ∗12...
CSP-S 2022 T1~T3 题解 T1 假期计划题目描述小熊的地图上有 n 个点,其中编号为 1 的是它的家、编号为 2,3,…,n 的都是景点。部分点对之间有双向直达的公交线路。如果点 x 与z1、z1 与z2、……、zk−1 与zk、zk 与y 之间均有直达的线路,那么我们称 x 与y 之间的行程可转车 k 次通达;特别...