Fork me on GitHub
摘要: 参考了这篇题解,以及机房大佬的讲解 题目描述 给定一个长度为 \(n\) 的正整数数组 \(A\),其中所有数从左至右排成一排。 你需要将 \(A\) 中的每个数染成红色或蓝色之一,然后按如下方式计算最终得分: 设 \(C\) 为长度为 \(n\) 的整数数组,对于 \(A\) 中的每个数 \(A_ 阅读全文
posted @ 2025-10-20 19:29 zjr20120321 阅读(13) 评论(0) 推荐(0)
摘要: 前言 历尽千辛万苦,终于在自己和老师的帮助下把P3800 Power 收集给过了,有一些trick要讲 P3800 Power 题目背景 据说在红雾异变时,博丽灵梦单身前往红魔馆,用十分强硬的手段将事件解决了。 然而当时灵梦在 Power 达到 MAX 之前,不具有“上线收点”的能力,所以她想要知道 阅读全文
posted @ 2025-10-15 13:04 zjr20120321 阅读(16) 评论(0) 推荐(0)
摘要: P1725 琪露诺 题目描述 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸。于是琪露诺决定到河岸去追青蛙。 小河可以看作一列格子依次编号为 \(0\) 到 \(N\),琪露诺只能从 阅读全文
posted @ 2025-10-13 21:10 zjr20120321 阅读(20) 评论(0) 推荐(0)
摘要: P1896 [SCOI2005] 互不侵犯 P1896 [SCOI2005] 互不侵犯 题目描述 在 \(N \times N\) 的棋盘里面放 \(K\) 个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共 \(8\) 个格子。 阅读全文
posted @ 2025-10-11 23:45 zjr20120321 阅读(12) 评论(0) 推荐(0)
摘要: 题面 带余除法 题目背景 注意:提交至洛谷时,请使用标准输入输出,而非文件输入输出。 NOTICE: When submitting your code on Luogu site, please use standard IO instead of file IO. 点我(或在本题底部)下载中文试 阅读全文
posted @ 2024-10-13 16:57 zjr20120321 阅读(214) 评论(0) 推荐(0)
摘要: 欧几里得算法 费马小定理 当a,p都是是质数时,a^(p-1)=1(mod p) 证明: 举个例子 a=2,p=5; 1,2,3,4 集合(1) {1,2,3,4...,(p-1)} 2,4,6,8 => %5 => 2,4,1,3 集合(2) {1a%p,2a%p,3a%p,4a%p...,(p- 阅读全文
posted @ 2024-10-03 18:47 zjr20120321 阅读(26) 评论(0) 推荐(0)
摘要: 1111... = 2^n-1 长度为n的都是1的二进制数 = 2的n次方-1 思路:对于每个数只有选或不选(1或0)的二进制,剩余见代码 点击查看代码 #include<bits/stdc++.h> using namespace std; long long f[20]; int main(){ 阅读全文
posted @ 2024-09-18 16:43 zjr20120321 阅读(28) 评论(0) 推荐(0)
摘要: 矩阵蛮好用的可以log的优化dp!!! 矩阵乘法 一张图 矩阵构造 以Fibonacci数列:F(0)=1 , F(1)=1 , F(n)=F(n-1)+F(n-2)为例 fi-1 fi-2 fi 1 1 fi-1 1 0 因为fi=fi-1 * 1+fi-2 * 1 fi-1=fi-1 * 1 因 阅读全文
posted @ 2024-08-30 18:34 zjr20120321 阅读(22) 评论(0) 推荐(0)
摘要: tarjan详细 强推:知乎 知乎 前置知识 交叉边(Cross Edge):连接DFS树中两个没有直接树边连接的节点的边。在有向图中,如果这条边的起点是树中的节点,而终点是树外的节点,且终点的深度大于起点的深度,那么这条边就是交叉边。 叶子边(Leaf Edge):连接到DFS树的叶子节点的边。在有向图中,如果叶子 阅读全文
posted @ 2024-08-28 15:38 zjr20120321 阅读(45) 评论(2) 推荐(0)
摘要: 模板代码 迪杰斯特拉(优先队列优化) priority_queue<pair<int,int> > q; int dis[n]; int vis[n]; int xt,yt; void dij(){ for(int i=1;i<=n;i++){ dis[i]=1e9; vis[i]=0; } dis 阅读全文
posted @ 2024-08-27 21:10 zjr20120321 阅读(33) 评论(1) 推荐(0)