1.12 CW 模拟赛 赛时记录
看题
不是哥们怎么感觉一堆原题但是都不会做
没复习最悲惨的一次
策略肯定还是暴力, 没有什么看上去简单的题
思路#
侥幸心理找了一下没有啊, 必须自己想
合法串显然就是满足匹配的串
考虑这种经典问题的常见转化 : 令 (
为 )
为
先考虑确定
首先计算
然后考虑
有点感性, 但是应该是这样的
考虑答案合并
令
容易发现
考虑方案数即为
感觉就是这样, 手摸下样例
发现一些问题,
令
好消息是
考虑的更深一点, 其实可以对于全串的前后缀做处理进而找到
问题变成怎么做才能规避掉对前后缀串和的枚举
理一下
首先是一个基础:
对于
- 以
结尾的后缀中, 串和 的 - 以
开头的前缀中, 串和 的
误区在于你还是要统计不满足考虑条件的作为转移, 不然会漏掉情况
那么具体的, 我们设计状态
令
令
容易做到分类讨论
- 前缀 +
+ 后缀 - 前缀 +
+ 后缀
非常经典的分类, 以后一定要注意不要漏了
但是你发现瓶颈在枚举
这个可能要改一下状态, 或者整体处理
不太会了
实现 #
框架#
如上讨论即可
代码#
#include <bits/stdc++.h>
#define int long long
const int MAXN = 5206; //41
const int MOD = 1e9 + 7;
namespace calc {
int add(int a, int b) { return a + b > MOD ? a + b - MOD : a + b; }
int sub(int a, int b) { return a - b < 0 ? a - b + MOD : a - b; }
int mul(int a, int b) { return (a * b * 1ll) % MOD; }
void addon(int &a, int b) { a = add(a, b); }
} using namespace calc;
int n;
std::string bra;
int a[MAXN];
std::map<int, int> f[MAXN], g[MAXN];
signed main()
{
std::cin >> bra; n = bra.length(); bra = ' ' + bra;
for (int i = 1; i <= n; i++) a[i] = (bra[i] == '(') ? 1 : -1, f[i][a[i]] = 1, g[i][a[i]] = 1;
/*转移*/
for (int i = 1; i <= n; i++) for (int j = -n; j <= n; j++) addon(f[i][j], f[i - 1][j - a[i]]);
for (int i = n; i >= 1; i--) for (int j = -n; j <= n; j++) addon(g[i][j], g[i + 1][j - a[i]]);
int ans = 0;
/*统计答案*/
for (int i = 1; i <= n; i++) {
int res = 0;
for (int j = ((a[i] == 1) ? -1 : 1); j <= n; j++) addon(res, mul(f[i - 1][j], g[i + 1][-j - a[i]]));
if (a[i] == 1) addon(res, g[i + 1][-a[i]]);
if (a[i] == -1) addon(res, f[i - 1][-a[i]]);
addon(ans, mul(res, i));
}
printf("%lld", ans);
return 0;
}
甚至
很危险, 赶紧把该拿的分拿了, 不要在死磕
先不管
今天的策略是把后面的题暴力打了死磕
思路#
这个题绝对是做过的
原来至少三位数是这样的吗
好吧那不管这道题
目前得分:
虽然那
思路#
首先把每一行删除一位之后结果相同的删除选择并到一起
具体的, 如果删除
考虑
考虑转移
其中并集特殊实现
复杂度
总结
以后一定要对自己的水平有清楚认知, 做好策略, 然后按照时间分配打下去, 切莫死磕
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现