社区讨论
76pts求调
P2444[POI 2000] 病毒参与者 12已保存回复 14
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 14 条
- 当前快照
- 1 份
- 快照标识符
- @m2br4xyh
- 此快照首次捕获于
- 2024/10/16 18:51 去年
- 此快照最后确认于
- 2025/12/28 11:04 2 个月前
rt.
CPP#include <bits/stdc++.h>
#define 常量 const
#define 整型 int
#define 长整型 long long
#define 双精度浮点型 double
#define 单精度浮点型 float
#define 字符串 string
#define 大小 size
#define 布尔型 bool
#define 并且 &&
#define 或者 ||
#define 无类型 void
#define 队列 queue
#define 放入 push
#define 空 empty
#define 首位 front
#define 斩首 pop
#define 主函数 main
#define 使用 using
#define 标准 std
#define 命名空间 namespace
#define 退出 exit(0)
#define 真 true
#define 假 false
#define 自增 ++
#define 自减 --
#define 负 -
#define 加 +
#define 减 -
#define 乘 *
#define 除 /
#define 加以 +=
#define 减去 -=
#define 等于 ==
#define 赋值 =
#define 小于 <
#define 大于 >
#define 小于等于 <=
#define 大于等于 >=
#define 不等于 !=
#define 一 +1
#define 二 +2
#define 两 +2
#define 三 +3
#define 四 +4
#define 五 +5
#define 六 +6
#define 七 +7
#define 八 +8
#define 九 +9
#define 零 +0
#define 十 *10
#define 百 *100
#define 千 *1000
#define 万 *10000
#define 亿 *100000000
#define 输入 cin
#define 输出 cout
#define 换行 endl
#define 返回 return
#define 系统函数 system
#define 暂停 pause
#define 计数 cnt
#define 求和 sum
#define 总数 tot
#define 结构体 struct
#define 构造 build
#define 当 while
#define 循环 for
#define 如果 if
#define 否则 else
#define 跳出 break
#define 跳过 continue
#define 不存在 !
#define 非 !
#define 读写优化 ios::sync_with_stdio(false);cin.tie(0);
使用 命名空间 标准;
常量 整型 最大总数 赋值 两 千 零 五,长度之和 赋值 三 万 零 五;
整型 总数;
布尔型 已经过[最大总数],已访问[最大总数];
结构体 自动机
{
整型 子[二];
整型 权,失败指针;
};
自动机 机[长度之和];
整型 计数;
无类型 建立(字符串 串)
{
整型 现 赋值 零;
循环(整型 计数器一 赋值 零 ; 计数器一 小于 串.大小() ; 计数器一 自增)
{
如果(不存在 机[现].子[串[计数器一] 减 (四 十 八)])
{
机[现].子[串[计数器一] 减 (四 十 八)] 赋值 自增 计数;
}
现 赋值 机[现].子[串[计数器一] 减 (四 十 八)];
}
机[现].权 自增;
}
无类型 处理指针()
{
队列 <整型> 待处理;
如果(机[零].子[零])
{
机[机[零].子[零]].失败指针 赋值 零;
待处理.放入(机[零].子[零]);
}
如果(机[零].子[一])
{
机[机[零].子[一]].失败指针 赋值 零;
待处理.放入(机[零].子[一]);
}
当(非 待处理.空())
{
整型 现 赋值 待处理.首位();
待处理.斩首();
如果(不存在 机[现].子[零])
{
机[现].子[零] 赋值 机[机[现].失败指针].子[零];
}
否则
{
机[机[现].子[零]].失败指针 赋值 机[机[现].失败指针].子[零];
待处理.放入(机[现].子[零]);
}
如果(不存在 机[现].子[一])
{
机[现].子[一] 赋值 机[机[现].失败指针].子[一];
}
否则
{
机[机[现].子[一]].失败指针 赋值 机[机[现].失败指针].子[一];
待处理.放入(机[现].子[一]);
}
}
}
无类型 深搜(整型 现)
{
已经过[现] 赋值 真;
循环(整型 计数器一 赋值 零;计数器一 小于等于 一;计数器一 自增)
{
如果(已经过[机[现].子[计数器一]])
{
输出 << "TAK" << 换行;
退出;
}
否则 如果((不存在 机[机[现].子[计数器一]].权) 并且 (非 已访问[机[现].子[计数器一]]))
{
已访问[机[现].子[计数器一]] 赋值 真;
深搜(机[现].子[计数器一]);
}
}
已经过[现] 赋值 假;
}
整型 主函数()
{
读写优化
输入 >> 总数;
字符串 串;
循环(整型 计数器一 赋值 一 ; 计数器一 小于等于 总数 ; 计数器一 自增)
{
输入 >> 串;
建立(串);
}
处理指针();
深搜(零);
输出 << "NIE" << 换行;
返回 零;
}
回复
共 14 条回复,欢迎继续交流。
正在加载回复...