【博弈+数论】ZOJ-3591-Nim

机器视觉学习(七)—— 卷积、边缘和滤波器 卷积运算、垂直边缘与水平边缘、滤波器 阅读详情

在比赛时一直弄不出这道题,虽知是博弈要用到异或运算,但在找连续的一串数时没什么好的想法,于是就悲剧了……赛后,在广大last大牛的指点下终于把它给过了,总的来说还是太水了……

思路:先设sum=(n+1)*n/2,从左到右求出1到i的nim(即1-i异或得到的数),然后把nim[i]从小到大排序,接下来就找到每一段相同的nim数的长度len,用sum-=len*(len-1)/2,当,nim[i]==0时sum要多减去其长度len,即sum-=len。其证明就不详细地说了,想想应该明白的。还有几个地方要注意的就是n,sum,len要用long long啊,在这里wa了几次,坑爹啊!

题目

#include<cstring>
#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#define FRE freopen("a.txt","r",stdin);
#define LL long long
#define N 100005
int main()
{
    //FRE;
    int t;
    scanf("%d",&t);
    while(t--)
    {
        LL n;
        int s,w;
        scanf("%lld%d%d",&n,&s,&w);
        int g=s;
        int a[N];
        for(int i=1;i<=n;i++)
        {
            a[i]=g;
            if(a[i]==0)a[i]=g=w;
            if(g%2)g=(g/2)^w;
            else g/=2;
        }
        int nim[N];
        nim[0]=0;
        for(int i=1;i<=n;i++)nim[i]=a[i]^nim[i-1];
        sort(nim+1,nim+n+1);
        LL sum=(n+1)*n/2,len=0;
        int pre;
        bool flag=true;
        for(int i=1;i<=n;i++)
        {
            if(flag)
            {
                pre=nim[i];
                flag=false;
            }
            if(nim[i]==pre)len++;
            else
            {
                sum-=len*(len-1)/2;
                if(pre==0)sum-=len;
                pre=nim[i];
                len=1;
            }
        }
        sum-=len*(len-1)/2;
        printf("%lld\n",sum);
    }
    return 0;
}


基于ESP32的智能无线广播系统开发博客 通过本项目的开发,我们成功地实现了基于ESP32的智能无线广播系统。该系统不仅具备传统广播的功能,还实现了通过Wi-Fi无线传输音频、实时广播和智能控制等多种先进功能。未来,随着技术的进一步发展,我们还可以扩展更多功能,如智能推荐广播内容、支持语音识别和控制等。希望本项目能够为嵌入式开发人员提供一些思路和参考,帮助大家在实际开发中更好地应用ESP32平台,开发出更加智能和实用的无线广播系统。 阅读详情

相关推荐

QFN封装芯片手工焊接实战:从焊盘处理到拖焊技巧

本文详细介绍了QFN封装芯片手工焊接的全过程,从焊盘处理到拖焊技巧,再到常见问题的现场修复方法。通过实战经验分享,帮助工程师和DIY爱好者掌握0.5mm小间距QFN芯片的焊接技术,提升焊接成功率和质量。重点讲解了垂直与平行拖焊手法的对比应用,以及焊后清理与质量检验的关键步骤。

weixin_42652674的博客 532

Zoj 3591 Nim 【博弈】【搜索】

nim博弈变形

100days 801

手把手教你用运放搭建方波三角波发生器(附Multisim仿真文件)

本文详细解析了使用运算放大器搭建方波和三角波发生器的核心原理与设计步骤。通过剖析迟滞比较器与积分器的联动机制,指导读者进行电路设计、元件选型,并借助Multisim仿真进行参数调优与波形优化。文章提供了从理论分析、虚拟仿真到实物焊接调试的完整实践指南,并附有仿真文件,帮助硬件爱好者与初学者深入掌握这一经典模拟电路设计。

weixin_29165725的博客 638

zynq+LWIP 裸机双网口实现(MIO+EMIO)+程序下载

芯片型号: ZYNQ: XC7Z010clg400开发软件:Vivado2022 + Xilinx Vitis 2022网卡芯片:RTL8211FDI(需要根据网口芯片型号修改对应的硬件配置代码。

thinking in 小宇宙 3405

104报文解析工具

可选择包含报文的文本文件或日志文件进行解析,可选择按条数范围或时间范围,输出结果可以在报文解析显示区,也可以输出到文件。可以对文本内容的报文文件进行高级分析,包括遥信遥测等通讯数据的具体信息,通讯帧的统计,通讯次数的统计,各种错误的分析,报文的定位功能,传输的文件具体内容等。输入完成后点击工具栏的解析报文按钮或使用右键菜单的解析就可以对报文进行解析。在报文输入区输入待解析报文并解析后,解析结果就显示在报文解析显示区和报文定位展示区及报文定位条目区。当有多条报文解析后,可以通过报文列表树具体定位某条报文。

XZHOUMIN的博客 5948

[博弈]ZOJ3591 Nim

题意: 给了一串数,个数不超过$10^5$,这串数是通过题目给的一段代码来生成的 int g = S; for (int i=0; i<N; i++) { a[i] = g; if( a[i] == 0 ) { a[i] = g = ...

aicheng4794的博客 129

Arduino ESP32S3 基础入门教学大纲

ESP32环境、Arduino

追梦 3545

ZOJ 3591 Nim (NIM博弈+统计

转载请注明出处,谢谢 http://blog.youkuaiyun.com/ACM_cxlove?viewmode=contents           by---cxlove 题目:按照某种规律生成一个序列,选中某段连续的序列玩NIM游戏,先手能必胜的有多少种。 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4675 乍一看毫

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

知识图谱开发实战:搭建上市公司知识图谱(二)

搭建上市公司知识图谱(二)学习目标1. 获取上市公司公开数据1.1 获取上市公司列表与行业信息1.2 代码展示2. 从网站爬取上市公司网页并存储为 HTML文件2.1 准备环境2.2 爬取上市公司公开信息3. 解析HTML文件,获取高管信息并存储为 csv 文件4. 设计知识图谱数据库4.1 实体4.2 关系4.3 属性4.4 特殊4.5 代码5. 知识图谱数据库查询实战5.1 实战:按照neo4j的数据格式,转换CSV文件5.2 实战:使用neo4j-admin 导入数据5.3 实战:使用neo4j-b

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 2094

从零搭建:C#+YOLOv8质检系统(从相机选型到上位机部署,附完整开发流程与源码)

后来换成45°斜射的条形光源,光线从侧面打在引脚上,弯曲处会形成暗区,缺陷边缘立刻清晰——光源预算别省,我这套光源+支架才600块,比换相机划算多了。前阵子帮一家电子厂做连接器引脚缺陷检测,他们原来靠2个师傅用放大镜看,每天8小时最多检5000个,0.2mm的针脚弯曲还经常漏检,不良品流到客户那里,单月罚款就超5万。做质检第一步不是挑设备,是先明确“要检测多大的缺陷”——比如我要检的连接器引脚,直径0.5mm,允许的最大弯曲是0.2mm,这直接决定相机分辨率。,后面C#就用这个模型推理。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1267

【ZOJ - 3591】Nim(博弈问题,思维,STLmap)

题干: Nim is a mathematical game of strategy in which two players take turns removing objects from distinct heaps. The game ends when one of the players is unable to remove object in his/her turn. This...

xuanweiace的博客 488

【GameFramework框架内置模块】6、实体(Entity)

实体Entity就是一个实体的基本单元,类似于Unity的GameObject对象本体,然后这个本体上面附加其他各种各样组件,才能实现各种各样的功能。一般需要在游戏运行时动态加载的游戏对象,比如怪物、武器、子弹、特效,都需要给这个物体挂载一个实体Entity,这样的话就可以方便的对实例出来的对象进行管理。下面就来看一下如何使用吧。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 3137

ZOJ 3591 Nim (连续子序列异或和)

题目链接:ZOJ 3591 Nim 题意:根据题目给出的代码得到n堆石头的各自的数量,求先手选出连续的若干堆并且必胜的方法数。(比如:3,1,1 每堆石头数是1,1,1.先手选出(1),(1),(1),(1,1,1) 这四种方案是必胜的,所以答案是4) 思路:在n堆取石头首先想到的是Nim博弈,连续的若干堆,即求连续子序列异或和为0的数量m,n*(n+1)/2-m就是答案 (Nim博弈结论,

n-1 2057

蓝牙模块HM-10手册

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

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

zoj3591 Nim(Nim博弈)

ZOJ 3591Nim(Nim博弈) 题目意思是说有n堆石子,Alice只能从中选出连续的几堆来玩Nim博弈,现在问Alice想要获胜有多少种方法(即有多少种选择方式)。 方法是这样的,由于Nim博弈必胜的条件是所有数的抑或值不为0,证明见 点击 ,所以答案就转化为原序列有多少个区间的亦或值为0,用n*(n+1) / 2 减去这个值就可以了。 而求有多少个区间的亦或值为0,实际上就是求...

weixin_33853827的博客 171

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ZOJ - 3591 Nim

题目:给你N,S,W,让你按照以下代码造出序列arr[i], int g=S;         for(int i=0;i             arr[i]=g;             if(arr[i]==0)                 arr[i]=g=W;             if(g%2==0)                 g=g/2;        

ACVevtor的博客 521

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Nim ZOJ - 3591 NIM博弈

【题目链接】 不贴题面了,题意如下: 给出一段代码,将输入的数据通过这段代码运算之后得到博弈的初始数组(石头数量),你每一次可以取连续的几堆,使Alice(先手)在玩的时候,可以获胜,即取走一部分异或值不为0的石头,即可保证获胜 分析: 看了大佬的题解才知道这个题怎么做,使用全部数字的连续子序列减去异或值为零的连续子序列的数量即可 以下例进行说明,若通过代码运算之后得到的石头数量分别为 ...

sunshine_critical的博客 206

zoj3591 Nim-----位运算 博弈

Nim Time Limit: 3 Seconds      Memory Limit: 65536 KB Nim is a mathematical game of strategy in which two players take turns removing objects from distinct heaps. The game ends when one of th

Shirley 1315

ZOJ - 3591 Nim 尼姆博弈 + 前缀和

Nim is a mathematical game of strategy in which two players take turns removing objects from distinct heaps. The game ends when one of the players is unable to remove object in his/her turn. This player will then lose. On each turn, a player must remove at

DaNIelLAk的博客 342

zoj 3591 Nim

/*博弈NIM,注意最后统计的时候应该先将nim数组排序,然后统计nim[i]相同的个数,否则会tle*/ #include #include #include using namespace std; long long N = 0, S = 0, W = 0; #define MAXN 1000000 long long a[MAXN],nim[MAXN]; void init() { i

zhongzi123456789的专栏 354

博弈论习题

vj题目汇总 一, 威佐夫博弈: (1)HDU 1527(入门) (2) HDU 2177 (进阶1) (3)51Nod 1185(进阶2) 注:进阶1中提处理了输出威佐夫博弈的第一种可行方案的问题; 进阶2处理了威佐夫博弈中(黄金比例*大数)精度会损失的问题; 补充:威佐夫博弈中,非奇异局势可以通过一步找到奇异局势。 二, Nim(尼姆)博弈: Nim博弈: (1)HDU 1850 判断是否获胜...

地衣的博客——qdu 674

博弈习题汇总

找规律 or 打表 :HDU 1517 HDU 1525 HDU 1564 HDU 2147 HDU 2897 HDU 1851 HDU 4203 HDU 5794 POJ 1740 ZOJ 2686 51NOD 1534 51NOD 1714 51NOD 1831 UVA 1482 CodeForces 768HYSBZ 3609 HYSBZ 3722 HYSBZ 2463 SG函数:HDU 1...

STOP 4003

ZOJ3591_Nim

题目的意思是给你n个ai,有多少种不同的连续段使得用该段数中所有的数字玩Nim游戏的先手必胜。 首先根据博弈论的知识,我们知道,要使先手必胜,那么只要保证所有的数的异或值不为0就可以了。 这个题目,给的ai的求法给了我很大的误导,我一开始以为要从哪里入手来突破这个题目。结果。。。。。。。深坑啊。 是这样来考虑的,我们直接模拟,分别得出所有的ai的值,然后用一个数字fi表示a1到ai...

weixin_30642561的博客 104

[ZOJ3591] Nim && 博弈+计数

构造一个SG函数前缀和 设前缀和值相同的两元素i ,j 那么(i+1, j)就是一个必败态 减去即可 #include #include #include #include #include #define SF scanf #define PF printf #define max(a, b) ((a) < (b) ? (b) : (a)) using namespace std; typed

shiyukun1998的专栏 459
上一篇: 【数论】HDU-4196-Remoteland
下一篇: 【dp+数论】PKU-3420-Quad Tiling
AndRing
博客等级 码龄15年 5粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值