- 2024-07-1820240711
T1NFLSOJP14050送外卖考虑每个双向边连通块构成一张DAG,可以想到按照拓扑序扩展每个双向边连通块,在连通块内dijkstra,然后更新所有该连通块的后继连通块。拓扑套dijkstra。T2NFLSOJP14051旅行枚举在哪个点结束,考虑此时答案的变化。T3NFLSOJP14052门把手集合异或按
- 2023-08-06nflsoj 选数1 2 3
5711取数-1状态表示:1维集合:前\(i\)个数里面选法和的最大值属性:Max状态计算:选或不选选:\(f(i-1)+a_i\) 不选:\(f(i-1)\)#include<iostream>usingnamespacestd;constintN=55;inta[N],f[N];intmain(){intn;cin>>n;for(inti=1;i<=n;i++)cin>&
- 2023-08-05nflsoj 1351 抓住奶牛
这题类似走迷宫,走迷宫是向四个方向进行拓展,而这道题好比是向三个方向拓展,分别是:\(x+1,x-1,x×2\)在这里拓展的时候我写了一个函数operation来计算拓展后的坐标这里判断坐标是否合法的时候我取了最大值的两倍加5,因为坐标不一定在\(k\)的左边,有可能超出去了再往回走,不过超出一
- 2023-08-03nflsoj 5924 选排列
与全排列略微有些不同,只需要将退出条件需要改成u==r#include<iostream>usingnamespacestd;constintN=15;intr,n;intpath[N];boolst[N];voiddfs(intu){if(u==r){for(inti=0;i<r;i++)printf("%d",path[i]);printf("\n&
- 2023-08-03nflsoj 5926 素数环
题目非常简单,只需要判断相邻两个数的和是不是素数,素数的判断参考数论不过要注意的一点是题目说的是一个环,所以首尾两个数的和也要是素数我在输出的时候加上了is_prime(path[n-1]+1)来判断#include<iostream>usingnamespacestd;constintN=20;intn;intpath[N];bo