
51nod
Hang_cc
大三年级在读,某西安本科院校.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【dp】关于LIS最长上升子序列
51nod1134 最长递增子序列 题目链接 最近在刷dp的题, 感觉很奇妙。玄学递推22333本题是求最长上升子序列, 不难得到转移方程可以写出这样的代码:#include <bits/stdc++.h>using namespace std;int n, a[50010], dp[50010];//dp[i]代表前i项的最长上升子序列int LIS...原创 2018-09-10 20:41:49 · 168 阅读 · 0 评论 -
【Manacher】最长回文子串
题目链接最长回文子串 使用Manacher可O(n)的时间复杂度得到答案!算法的精髓在于在没两个字符中插入一个'#',实现每个回文串的长度都是奇数!#include <bits/stdc++.h>using namespace std;char s[100010], new_s[200010];int len, p[200010];int Manache...原创 2018-09-10 21:10:18 · 142 阅读 · 0 评论 -
1068 Bash游戏 V3 【博弈】
题目链接:51nod-1068## **题目描述**:有一堆石子共有N个。A B两个人轮流拿,A先拿。每次拿的数量只能是2的正整数次幂,比如(1,2,4,8,16....),拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。例如N = 3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。(输入的N可能为大数)思路神奇的博弈论;...原创 2018-10-28 09:55:49 · 264 阅读 · 0 评论 -
1066 Bash游戏 【博弈】
题目链接:51nod-1066## **题目描述**:有一堆石子共有N个。A B两个人轮流拿,A先拿。每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N和K,问最后谁能赢得比赛。例如N = 3,K = 2。无论A如何拿,B都可以拿到最后1颗石子。思路神奇的博弈论,Bash游戏的板子题。石子总数对(最大可取数+1)取模,若最...原创 2018-10-28 09:56:45 · 208 阅读 · 0 评论 -
1067 Bash游戏 V2 【博弈】
题目链接:51nod-1067## **题目描述**:有一堆石子共有N个。A B两个人轮流拿,A先拿。每次只能拿1,3,4颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。例如N = 2。A只能拿1颗,所以B可以拿到最后1颗石子。思路神奇的博弈论;这个题就不是裸了,我们需要打出sg表,找出规律之后才可以做;关于sg的打表,...原创 2018-10-28 09:57:33 · 363 阅读 · 0 评论 -
1069 Nim游戏 【博弈】
题目链接:51nod-1069## **题目描述**:有N堆石子。A B两个人轮流拿,A先拿。每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N及每堆石子的数量,问最后谁能赢得比赛。例如:3堆石子,每堆1颗。A拿1颗,B拿1颗,此时还剩1堆,所以A可以拿到最后1颗石子。思路神奇的博弈论,Nim游戏...原创 2018-10-28 09:58:13 · 285 阅读 · 0 评论 -
石子归并 (区间DP)
题目链接:51nod-1021题目描述:N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。例如: 1 2 3 4,有不少合并方法1 2 3 4 => 3 3 4(3) => 6 4(9) => 10(19)1 2 3 4 => 1 5 4(5) =...原创 2019-02-12 11:16:36 · 294 阅读 · 1 评论