首页
比赛
tracker
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
糟糕的打谱员
7条解析
开通博客写题解
我是签到糕手
发表于 2024-07-05 01:43:49
这题一开始我想的是n2,然后发现a[i]的最大值为10,与之前暴力dp相结合。 设置一个桶为t[i][j]代表下在i处的j颜色所代表的最大步数。 那么dp[i]=max(dp[i],t[a[i].second][!a[i].first]) #include<bits/s
展开全文
此在Dasein
发表于 2025-12-05 04:03:59
本题要求从一个记录序列中找出最长的子序列,满足相邻两步玩家交替且劫争编号不同。由于劫争编号范围很小(1~10),可以采用动态规划,按顺序扫描每一步,维护以每种(玩家,劫争)组合结尾的最长子序列长度。对于当前步 (c, a),它可以接在之前任意一个与 c 不同且劫争不等于 a 的状态之后,因此只需从另
展开全文
Myaljk
发表于 2022-03-14 11:25:54
因为题目规定 任意相邻的两步,玩家不同(一黑一白); 任意相邻的两步,不能下在同一个劫争处。 我们只需要对每个操作枚举一下a,状态转移方程:dp[i]=max(dp[i],dp[pre[j][k]]+1);a,状态转移方程:dp[i] = max(dp[i],dp[pre[j][k]] +
展开全文
wsd_tod
发表于 2025-12-05 13:47:47
#include <iostream> #include <vector> #include <algorithm> using namespace std; const int MAX_A = 11; int main() { ios::sync_wi
展开全文
mollor
发表于 2025-12-05 15:00:20
线段树是对的孩子们,因为普通dp的话只能想出来O(n2)的做法只好用线段树O(nlogn)的方法过去了。开两个线段树,一个是0下棋的时候,另一个是1下棋的时候,每次都在对方的范围里面查找不是以ai结尾的最大的合法长度就好了最后把两边最大的长度比一下就好了 #include<bits/stdc+
展开全文
编程小海浪
发表于 2025-12-05 23:34:46
import java.util.*; import java.io.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in);
展开全文
周康禧
发表于 2025-12-05 11:26:25
#include <bits/stdc++.h> using namespace std; using ll = long long int; using ld = long double; using PII=pair<ll,ll>; using PIII=pair<
展开全文
查看本题
查看本题讨论
相关比赛
11215-牛客小白月赛38
进入比赛
20142-牛客小白月赛38内测
进入比赛
22388-特训组训练
进入比赛
38252-2022-2023暑期集训(第五场)
进入比赛
49585-私人
进入比赛
等你来战
查看全部
湖南师范大学2025新生赛决赛(同步赛)
报名截止时间:2025-12-12 21:30
牛客小白月赛125
报名截止时间:2025-12-12 21:00
河南师范大学新生程序设计竞赛
报名截止时间:2025-12-13 14:00
2025年大连海事大学程序设计竞赛
报名截止时间:2025-12-14 17:00
2025年广州大学程序设计竞赛新生赛(同步赛)
报名截止时间:2025-12-14 18:30
牛客周赛 Round 122
报名截止时间:2025-12-14 21:00
牛客练习赛147
报名截止时间:2025-12-20 21:30
牛客2025跨年场
报名截止时间:2026-01-01 00:05
2026牛客寒假算法基础集训营1
报名截止时间:2026-02-03 18:00
2026牛客寒假算法基础集训营2
报名截止时间:2026-02-05 18:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题