摘要:
题目大意 有两堆石子,可以从一堆中取,也可以从两堆同时取等量的石子,两个人轮流去,谁的回合取完谁赢,问谁必胜 思路分析 不难想到,如果只有一堆石子,必然是先手必胜 我们把取完这堆石子的状态记为(0,0),表示两堆石子都剩下0个,此时是后手必胜(取完石子后先手变后手了,因此是后手必胜) 当状态为(0, 阅读全文
2024年8月12日 #
2024年8月9日 #
摘要:
题目大意 输出一张有向带权图前k短路的长度 思路分析 这是道k短路板子题 我们可以用Astar算法来实现它 OIwiki相关算法的网页 简单来讲,Astar定义了一个估值函数f(x)=g(x)+h(x) g(x)表示由起点到达x点的路程(不一定是最短路),而h(x)则是终点到x点的最短路程 这个估值 阅读全文
2024年8月8日 #
摘要:
题目大意 现在有个有向图图,共有n个点,m条边 总共有四种操作:操作1:将一条边打上标记 操作2:将一个点出发的所有边打上标记 操作3:将一条边移除标记 操作4:将一个点出发的所有边移除标记 打上标记的边视为被移除 每次操作进行一次询问,如果每个点出度都是1,整张图是个强连通图,那么输出"YES", 阅读全文
2024年8月6日 #
摘要:
题目大意 现在穿T次手串,每根手串的长度分别为不同的n,有木和金两种珠子,相邻两颗珠子必须有一个是金。 题目思路分析 我们现在设穿到第n个珠子时用金的方案数为f[1][n],用木的方案数为f[0][n] 如果第n个珠子为金,那么前一颗珠子是什么都可以,因此f[1][n]=f[1][n-1]+f[0] 阅读全文
2024年7月5日 #
摘要:
题目解释 现有一数列:\(a_{0}=-3,a_{1}=-6,a_{2}=-12,a_{n}=3a_{n-1}+a_{n-2}-3a_{n-3}+3^n,求T组a_{n}\)mod p 的异或和 题目思路分析 抛开复杂度不谈,这道题可以用矩阵加速(矩阵的快速幂)和通项公式两种方法来做,这两种方法求一 阅读全文
2024年5月26日 #
摘要:
线段树是一种维护区间和等功能的数据结构 struct SegTree{ struct node{ int l,r,sum,len,laz; }tree[N<<2]; inline void pushdown(int u){ int lson=u<<1,rson=lson|1; tree[lson]. 阅读全文
2024年4月5日 #
摘要:
在c++中,由于对于类型的判断,scanf或cin输入可能无法满足时间复杂度需要(即卡常),此时需使用快速输入算法 long long read(){ long long x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1 阅读全文