Aladdin and the Game of Bracelets LightOJ - 1344 博弈论,求sg函数

本文介绍了一种计算珠子串的SG值的方法,通过递归地将珠子串拆分为子串,并利用异或操作来确定最终的SG值。文章提供了详细的代码实现过程。
  • 这道题显然就是要求每一个珠子串对应的 SGSGSG
  • 假设选取该珠子串中的一个权重 www ,拆分成1个或多个字串后,将这些子串的 SGSGSG 值的异或和,便是该珠子串到下一个状态的可达 SGSGSG 值标记。
  • 当最后子串里仅剩下一个珠子的时候,这个的子串 SGSGSG 值为1
  • 每次都递归的求出子串的 SGSGSG 值,最后按照 SGSGSG 的含义取 mexmexmex 即可
  • 详情请看代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef unsigned int uii;
typedef pair<int, ll> pii;
template<typename T>
inline void rd(T& x)
{
	int tmp = 1; char c = getchar(); x = 0;
	while (c > '9' || c < '0') { if (c == '-')tmp = -1; c = getchar(); }
	while (c >= '0' && c <= '9') { x = x * 10 + c - '0'; c = getchar(); }
	x *= tmp;
}
const int N = 2e5 + 10;
const int M = 1e7 + 10;
const int mod = 1e9 + 7;
const int inf = 0x3f3f3f3f;
int n, m, id;
int a[N];
int sg[55][55][55];
int b[55][55];
int solve(int l, int r);
int dfs(int x, int l, int r) { //选取一个权重进行切割子串。
	int ans = 0;
	int posl = -1;
	for (int i = l; i <= r; ++i) {
		if (a[i] >= x && posl != -1) {
			ans ^= solve(posl, i - 1);
			posl = -1;
		}
		else if (a[i] < x && posl == -1) posl = i;
	}
	if (posl != -1) ans ^= solve(posl, r);
	return ans;
}
int solve(int l, int r) {  //求[l,r]这个串的sg值
	if (~sg[id][l][r]) return sg[id][l][r];
	if (l == r) return sg[id][l][r] = 1;
	bool vis[128] = { false };
	for (int i = l; i <= r; ++i) {
		vis[dfs(a[i], l, r)] = true;
	}
	for (int i = 0;; ++i) {
		if (!vis[i]) {
			return sg[id][l][r] = i;
		}
	}
}
int main() {
#ifdef _DEBUG
	FILE* _INPUT = freopen("input.txt", "r", stdin);
	//	FILE* _OUTPUT = freopen("output.txt", "w", stdout);
#endif // !_DEBUG
	int cas = 0, T = 0;
	rd(T);
	while (T--) {
		//	while (~scanf("%d %d", &n,&k)) {
		rd(m);
		int ans = 0;
		memset(sg, -1, sizeof(sg));
		for (int ii = 1; ii <= m; ++ii) {
			rd(n); b[ii][0] = n;
			for (int i = 1; i <= n; ++i) rd(a[i]);
			for (int i = 1; i <= n; ++i) b[ii][i] = a[i];
			id = ii;
			ans ^= solve(1, n);
		}
		printf("Case %d: ", ++cas);
		if (ans) {
			puts("Aladdin");
			vector<pii>res;
			for (int ii = 1; ii <= m; ++ii) {
				n = b[ii][0];
				unordered_map<int, bool>visn;
				for (int i = 1; i <= n; ++i) a[i] = b[ii][i];
				for (int i = 1; i <= n; ++i) {
					if (!visn[b[ii][i]]) {
						visn[b[ii][i]] = true;
						id = ii;
						if ((ans ^ sg[ii][1][n] ^ dfs(b[ii][i], 1, n)) == 0) {
							res.push_back({ ii,b[ii][i] });
						}
					}
				}
			}
			sort(res.begin(), res.end(), [](const pii& a, const pii& b) {
				return a.first < b.first || a.first == b.first && a.second < b.second;
				});
			for (auto v : res) printf("(%d %d)", v.first, v.second);
			puts("");
		}
		else puts("Genie");
	}
	return 0;
}
内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整流程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要以保障训练效率。
内容概要:本文系统阐述了企业新闻发稿在生成式引擎优化(GEO)时代下的全渠道策略与效果评估体系,涵盖当前企业传播面临的预算、资源、内容与效果评估四大挑战,并深入分析2025年新闻发稿行业五大趋势,包括AI驱动的智能化转型、精准化传播、首发内容价值提升、内容资产化及数据可视化。文章重点解析央媒、地方官媒、综合门户和自媒体四类媒体资源的特性、传播优势与发稿策略,提出基于内容适配性、时间节奏、话题设计的策略制定方法,并构建涵盖品牌价值、销售转化与GEO优化的多维评估框架。此外,结合“传声港”工具实操指南,提供AI智能投放、效果监测、自媒体管理与舆情应对的全流程解决方案,并针对科技、消费、B2B、区域品牌四大行业推出定制化发稿方案。; 适合人群:企业市场/公关负责人、品牌传播管理者、数字营销从业者及中小企业决策者,具备一定媒体传播经验并希望提升发稿效率与ROI的专业人士。; 使用场景及目标:①制定科学的新闻发稿策略,实现从“流量思维”向“价值思维”转型;②构建央媒定调、门户扩散、自媒体互动的立体化传播矩阵;③利用AI工具实现精准投放与GEO优化,提升品牌在AI搜索中的权威性与可见性;④通过数据驱动评估体系量化品牌影响力与销售转化效果。; 阅读建议:建议结合文中提供的实操清单、案例分析与工具指南进行系统学习,重点关注媒体适配性策略与GEO评估指标,在实际发稿中分阶段试点“AI+全渠道”组合策略,并定期复盘优化,以实现品牌传播的长期复利效应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值