HDU 1524 - A Chess Game(SG)

【GameFramework框架内置模块】15、场景(Scene) 场景(Scene)模块,提供场景管理的功能,负责场景的加载、卸载、切换和管理。可以方便地管理不同场景之间的切换以及不同场景之间的信息传递。 阅读详情

A Chess Game

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1407    Accepted Submission(s): 639


Problem Description
Let's design a new chess game. There are N positions to hold M chesses in this game. Multiple chesses can be located in the same position. The positions are constituted as a topological graph, i.e. there are directed edges connecting some positions, and no cycle exists. Two players you and I move chesses alternately. In each turn the player should move only one chess from the current position to one of its out-positions along an edge. The game does not end, until one of the players cannot move chess any more. If you cannot move any chess in your turn, you lose. Otherwise, if the misfortune falls on me... I will disturb the chesses and play it again.

Do you want to challenge me? Just write your program to show your qualification!
 

Input
Input contains multiple test cases. Each test case starts with a number N (1 <= N <= 1000) in one line. Then the following N lines describe the out-positions of each position. Each line starts with an integer Xi that is the number of out-positions for the position i. Then Xi integers following specify the out-positions. Positions are indexed from 0 to N-1. Then multiple queries follow. Each query occupies only one line. The line starts with a number M (1 <= M <= 10), and then come M integers, which are the initial positions of chesses. A line with number 0 ends the test case.
 

Output
There is one line for each query, which contains a string "WIN" or "LOSE". "WIN" means that the player taking the first turn can win the game according to a clever strategy; otherwise "LOSE" should be printed.
 

Sample Input
  
4 2 1 2 0 1 3 0 1 0 2 0 2 0 4 1 1 1 2 0 0 2 0 1 2 1 1 3 0 1 3 0
 

Sample Output
  
WIN WIN WIN LOSE WIN
 

Source

==============================

题意:各点之间满足拓扑关系,有向无环图。

第一行 输入点的个数n。接下来n行 每行是第i个点能到达的 点的数量 和 具体的点。

然后是多组询问,还是个数和点,输入0结束。


好像是sg函数的基本定义……


#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>

using namespace std;
const int maxn=1005;
vector<int>v[maxn];
int n,x,u,q,m;
int sg[maxn];

int dfs(int x){
    if(sg[x]!=-1) return sg[x];
    if(v[x].size()==0) return sg[x]=0;
    bool vis[maxn];
    memset(vis,0,sizeof(vis));
    for(int i=0;i<v[x].size();i++){
        vis[dfs(v[x][i])]=1;
    }
    for(int i=0;;i++){
        if(!vis[i]) return sg[x]=i;
    }
}

int main()
{
    while(~scanf("%d",&n)){
        memset(sg,-1,sizeof(sg));
        //sg[0]=0; 注意这里不用这句初始化,因为点之间满足拓扑关系所以没有后继的点sg为0
        for(int i=0;i<n;i++){
            v[i].clear();
            scanf("%d",&x);
            while(x--){
                scanf("%d",&u);
                v[i].push_back(u);
            }
        }
        while(~scanf("%d",&q)){
            if(q==0) break;
            int ans=0;
            while(q--){
                scanf("%d",&u);
                ans^=dfs(u);
            }
            if(ans==0) printf("LOSE\n");
            else printf("WIN\n");
        }
    }
    return 0;
}


面向 ABAP 开发者的 Joule 实战:把 AI 带进 Eclipse 的每一次敲键 本文介绍了SAP推出的ABAP开发AI工具套件Joule for developers,重点解析了其代码补全、自然语言对话、代码解释、测试生成等功能如何融入ABAP Cloud开发全流程。文章提供了具体的使用场景和操作示例,包括RAP应用开发中的建模辅助、代码理解、测试生成等环节,并分享了实用的提示词模板。同时强调了启用授权等实施细节,帮助开发者将AI能力转化为实际生产力而非演示效果。 阅读详情

相关推荐

SAP公司间外协业务流程以及配置说明

SAP公司间外协业务流程以及配置说明

竹大的博客 7168

hdu1524线段树,扫描线

http://acm.hdu.edu.cn/showproblem.php?pid=1542题意: 一些相互可能重叠的矩形,让你求他们实际覆盖的面积之和; 对于每个矩形,给你左上角坐标,以及右下角顶点坐标#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std

Davenny:~我今天该吃点什么捏~ 477

2025红队实战:Win11环境下ZAP、CobaltStrike与免杀套件深度评测

在网络安全领域,渗透测试与红队行动是评估系统防御能力的关键手段。其核心原理在于模拟真实攻击者的技术与流程,以发现潜在的安全漏洞。这项技术的价值在于主动识别风险,提升整体安全防护水平,广泛应用于企业安全评估、漏洞挖掘和攻防演练等场景。随着Windows 11系统普及,其增强的安全机制(如内存完整性、基于虚拟化的安全)对传统攻击工具链提出了新的挑战。本文聚焦于**CobaltStrike二开版**与**免杀套件**在Win11环境下的实战应用与深度对抗,探讨如何优化工具链以应对现代端点检测与响应(EDR)和高级

weixin_29315091的博客 308

hdu1524(尼姆博弈)

A Chess Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1207    Accepted Submission(s): 553 Problem Description Let's design a new

晓风残月xj 869

Selenium自动化测试遇到shadow-root元素?3种实用解决方案帮你搞定

本文针对Selenium自动化测试中遇到shadow-root元素难以定位的常见问题,提供了三种实用的解决方案。详细阐述了通过JavaScript直接穿透Shadow DOM、利用浏览器工具快速获取JS Path以及使用Python第三方库进行优雅封装的方法,并分享了提升脚本健壮性的实战策略与最佳实践,帮助测试人员有效应对现代Web组件化开发带来的挑战。

code8的博客 408

实用电路精讲系列---ACDC开关电源

AC/DC开关电源工作原理及应用解析 AC/DC开关电源通过高频开关技术将交流电转换为稳定直流电,核心流程包括整流滤波、高频开关转换、反馈稳压和隔离保护。典型应用涵盖智能断路器、车载充电机、光伏逆变器等多个领域,采用不同拓扑结构和功率器件满足各场景需求。文章详细分析了基于LT1103的实用电路,包含输入整流、开关稳压、多级滤波等关键模块,并阐述了同步整流和多级滤波对提升效率稳定性的作用。这种电源技术通过高频开关切换+变压器耦合+闭环反馈,实现了高效紧凑的电能转换,在各工业领域具有广泛应用价值。

weixin_40590799的博客 2585

HDU1524(博弈--有向无环图SG函数)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1524 题意:在一个有向无环图上有n个顶点,每一个顶点都只有一个棋子,有两个人,每次根据这个图只能将任意一颗棋子移动一步 ,如果到某一步玩家不能移动时,那么这个人就输. 分析:本题是最典型的有向无环图的博弈,利用dfs把所有顶点的SG值都计算出来,然后对每个棋子的SG值进行异或运算,如

ACdreamer 3142

Unity 接入 Steam 平台

Unity 接入 steam sdk 的登录和应用内购买功能

MarinaTsang的博客 3904

HDU 1524 A Chess Game [SG函数]【博弈】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1524 ——————————-. A Chess GameTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2133 Accepted

Tabris的博客 589

Ubuntu 20.04 上 Geant4 安装避坑全记录:从源码编译到 B1 示例跑通(含数据包加速下载)

本文详细记录了在Ubuntu 20.04系统上从源码编译安装Geant4的全过程,包括环境准备、依赖安装、CMake参数解析、多线程编译优化以及数据包加速下载等关键步骤。特别针对B1示例的测试与验证提供了完整流程,帮助科研人员和学生避开常见安装陷阱,提升粒子物理模拟效率。

weixin_31220401的博客 312

lammps 案例:高熵合金FeNiCrCoCu建模及拉伸模拟

高熵合金力学性能模拟包括拉伸、剪切、摩擦等模拟,本文以高熵合金FeNiCrCoCu为例介绍高熵合金建模及拉伸过程模拟。 FeNiCrCoCu原子数量比为1:1:1:1:1 高熵合金的拉伸与单晶拉伸过程类似,主要包含以下步骤: 1.建模 高熵合金含有原子类型较多,建模时,一般以含量最多的原子为主建立初始模型。 使用set type/ratio或者set type/fraction的方式按一定比例替换为其它合金原子。 如随机选择20%的原子1,将其转换为原子2: set type 1 type/ratio 2

lammps_jiayou的博客 6067

视频弹幕去无声技术:原理、部署与实践指南

音频分离技术是多媒体处理领域的重要分支,其核心原理是通过信号处理算法将混合音频中的不同声源进行分离。这项技术基于深度学习模型,能够识别并提取人声、背景音乐等独立音轨,在视频内容处理中具有重要价值。在实际应用中,音频分离技术结合语音识别和文本处理,可以实现弹幕文字提取与音频干扰去除的功能。通过GPU加速和优化算法,该技术能够高效处理直播录播视频,为内容创作、会议记录整理等场景提供实用解决方案。本文重点介绍的弹幕去无声方案,正是基于音频分离和语音识别技术的工程实践,帮助用户从视频中提取纯净的弹幕信息。

weixin_34293141的博客 491

Vins-Fusion 外参camera-imu 标定

Vins-Fusion是一种基于优化的多传感器状态估计器,一大特色是支持实时camera-imu外参校准(相机和IMU之间的旋转)。Vins-Fusion 外参camera-imu校准是利用两帧间计算相机位姿和imu预积分得到位姿,构建最小二乘问题,并通过SVD求解camera-imu外参旋转矩阵。

u010196944的博客 2490

HDU 1524 A Chess Game (有向无环图SG博弈)

转载请注明出处,谢谢 http://blog.youkuaiyun.com/ACM_cxlove?viewmode=contents           by---cxlove 这是一个针对有向无环图的博弈。 题目:有N个位置,其中存在拓扑关系,移动时必须遵守。最后移动者胜,问是否有必胜策略 http://acm.hdu.edu.cn/showproblem.php?pid=1524 拓扑关系,说

窝不是爱酱,喵~~~~ 3059

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

HDU1524 POJ2425 A Chess Game【SG函数】

A Chess Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3183 Accepted Submission(s): 1425 Problem Description Let’s design a new chess game. There are N positions to hold M chesses in this ga

海岛Blog 576

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

hdu 1524 A Chess Game 博弈之,SG函数简单题

Problem Description Let's design a new chess game. There are N positions to hold M chesses in this game. Multiple chesses can be located in the same position. The positions are constituted as a topological graph, i.e. there are directed edges connecting so

Lionel 1474

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

HDU 1524 A Chess Game(SG博弈)

A Chess Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1966    Accepted Submission(s): 884 Problem Description Let's design a

qq_18661257的专栏 641

hdu1524 A Chess Game 有向无环图---sg

A Chess Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 916    Accepted Submission(s): 415 Problem Description Let's design a new

Shirley 1795

hdu 1524 A Chess Game (SG)

题意:在一个有向无环图上有n个顶点,每一个顶点都只有一个棋子,有两个人,每次根据这个图只能将任意一颗棋子移动一步 ,如果到某一步玩家不能移动时,那么这个人就输. 分析:本题是最典型的有向无环图的博弈,利用dfs把所有顶点的SG值都计算出来,然后对每个棋子的SG值进行异或运算,如果 为0就是先手必败,否则就是先手必胜. 如果某个人移动到出度为0的顶点,

苍竹林 620

HDU 1524 A Chess Game(SG函数)

Problem Description: Let's design a new chess game. There are N positions to hold M chesses in this game. Multiple chesses can be located in the same position. The positions are constituted as a topo

蘑菇--走在通往梦想的道路上。 682

HDU 1524 A Chess Game 【SG函数】

A Chess Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1468    Accepted Submission(s): 666 Problem Description Let's design a new

柚的个人技术博客 694

hdu1524 A Chess Game (博弈 dfs求sg)

Problem Description Let’s design a new chess game. There are N positions to hold M chesses in this game. Multiple chesses can be located in the same position. The positions are constituted as a topolo...

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 311

SG 函数 hdu1524 & poj 2425 hdu1524 A Chess Game

本来只是简单的一道水体,但是没过4级的我,完全看不懂题目,写到中间还有出错误坑我wr了好久,逼我写个解题报告 #include #include #include using namespace std; int game[1050][1050]; int sg[1050]; int n; /// 标号0~n-1 int flag[1050]; int dfs(int d) {

bitwater的空间 425

HDU - 1524 A Chess Game (dfs + SG函数)

Description Let’s design a new chess game. There are N positions to hold M chesses in this game. Multiple chesses can be located in the same position. The positions are constituted as a topological gr...

xiaobian_的博客 391

HDU 1524 A Chess Game【SG函数】

题意:一个N个点的拓扑图,有M个棋子,两个人轮流操作,每次操作可以把一个点的棋子移动到它的一个后继点上(每个点可以放多个棋子),直到不能操作,问先手是否赢。 思路:DFS求每个点的SG值,没有后继的点为必败点。 注意搜索中初始化的问题。 #include<stdio.h> #include<string.h> const int N=1111,M=N*N; ...

weixin_30306905的博客 106

hdu 1524 A Chess Game(SG函数)

A Chess Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2554    Accepted Submission(s): 1153   Problem Description Let...

Rainbow_storm的博客 518
上一篇: HDU 1536 - S-Nim(SG)
下一篇: HDU 1730 - Northcott Game(博弈)
coco430
博客等级 码龄14年 9粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值