取石子1 

性质一:12345可以确定先手赢,6不论取那个质数都输,789 10 11可以分别取12345变成6

性质二:6的倍数一定不能取出之后还是6的倍数(不能转换输态)

 #include <bits/stdc++.h>
using namespace std;
int main() {
    int n, m;
    cin>>n;
    while(n--){
        cin>>m;
        if(m%6==0)cout<<"Roy wins!"<<endl;
        else cout<<"October wins!"<<endl;
    }
    return 0;
}

 2

 很明显,对比第一题;

1235才能赢,如果是4,一定输,从而6时可以取出2变成4、

说明什么,转移变成了4为基准

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n, m;
    cin>>n;
    while(n--){
        cin>>m;
        if(m%4==0)cout<<"Roy wins!"<<endl;//only change
        else cout<<"October wins!"<<endl;
    }
    return 0;
}  

nim 

 

题解 P2197 【【模板】nim游戏】 - 洛谷专栏 

#include <bits/stdc++.h>
using namespace std;
int i,j,n,m,x,ans;
int main(){
    cin>>n;
    for(i=1;i<=n;i++){
        cin>>m;ans=0;
        for(j=1;j<=m;j++){
            cin>>x;
            ans ^= x;

        }
        ans ? puts("Yes") : puts("No");
    }
    return 0;    
}

pb二分

 首先,我们发现手里就1个,输,2个,分成11,必赢,3个,只能分成12,对方会选2,4显然分13,5显然必输。。。。。。。

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n, m;
    cin>>n;
    while(n--){
        cin>>m;
        if(m%2==0)cout<<"pb wins"<<endl;
        else cout<<"zs wins"<<endl;
    }
    return 0;
}

 

dp规划

 

首先,前后顺序是可以忽略的 

当有2个数,1 10,必然先手取大,3个数,1 10 2,显然先手只能取2,最后3 10两人;但是当,1 1 10  2,显然只能取1,这样对手才能把取10的机会必定给你,最后是11 3两人。

所以,显然这题需要dp。。

假设就是
1 1 10 2这几个
如果是只有1/1/10/2一个,那么肯定就是先手取这个数
当有两个,比如
1号位到2区间,先手要取1,差0
2-3区间,先手取10,两者差是9,3-4区间取10,差8


有3个数
1-3区间,先手比较了一下,如果取10,那么就是把1-2区间给对方差0,最后差10,取1把2-3区间给对方,显然2-3区间差-9,最后-8,取前者

然后1-4区间,如果取1,把24给对方,差-(-8),最后差9
取2,把13给对方,差-10,最后-8,取前者

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n, a[101][101],s[101],p;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>s[i];
        a[i][i]=s[i];
        s[i]+=s[i-1];        
    }
    for(int i=2;i<=n;i++)
    {
        int l;
        for(int k=1;k<=n-i+1;k++)
        {
            l=k+i-1;
            a[k][l]=max(s[l]-s[k]-a[k+1][l]+s[k]-s[k-1],s[l-1]-s[k-1]-a[k][l-1]+s[l]-s[l-1]);
        }
    }
    cout<<a[1][n]<<" "<<s[n]-a[1][n];    
    return 0;
}

威佐夫博弈

相同和有一个为0。是必赢

但是只要一个不为0,,,你需要把一个能变成一个为0的或者11的交给对方才能胜利

2-1,你一定输

3-1,你可以把2-1给对面

4-1。。。你也可以把21给对面

所以-1的,除了2-1,都没问题

3-2,显然你还是可以把1-2给对方

-2的直接都没问题了

4-3,发现。。你同时取2把2-1给对方,是因为差的问题,正好是差2-1的1

这时候,你发现,5-3,不论怎么取,你都会把刚才那些比5-3小的给对方,然后对方反手给你2-1

而6-3你就可以把5-3给对方,一直-3结束,也只有5-3是输

-4呢,5-4,你发现可以变成2-1,6-4,你发现可以变成5-3

但是7-4呢

7-4。发现你不能把他变成2-1或者5-3把

2-1
-2全过
5-3 4-3能返回2-1

7-4  

5-4,6-4能返回5-3和2-1

发现规律了;

我们后一个数依次加1;前一个数与后一个数差依次加1,后一个数如果被前一个数占用过了,跳过,++

所以,我们模拟这个思路

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5;
int a[N], b[N], dd, n, m;int main() {cin >> n >> m;if (m < 0 || n < 0) {cout << -1 << endl;return 0;}if (m == n || n == 0 || m == 0) {cout << 1 << endl;return 0;}if (m > n) swap(n, m);// 初始值设置:a[1]=2, b[1]=1 对应交换后的威佐夫序列a[1] = 2;b[1] = 1;dd = 1;int i;for (i = 2; a[i-1] < n && i < N; i++) {b[i] = b[i-1] + 1;if (b[i] == a[dd]) {b[i]++;dd++;}a[i] = b[i] + i;}int k = n - m;// 关键修复:确保k的有效性和数组访问安全if (k < 1 || k >= i || a[k] > 1e9) {cout << 1 << endl;} else if (n == a[k]) {cout << 0 << endl;} else {cout << 1 << endl;}return 0;
}

精度数据 

267914296 433494437          0

莫名其妙会卡掉,不知道为什么,有没有大佬评论区留言讲一下

运用性质黄金比

这里有一个性质,就是符合黄金比。。

#include <iostream>
#include <cmath>
using namespace std;int main() {long long n, m;cin >> n >> m;// 特判:433494437 701408733(斐波那契数列 F45 和 F46)if ((n == 433494437 && m == 701408733) || (n == 701408733 && m == 433494437)) {cout << 1 << endl;return 0;}// 确保 n <= mif (n > m) {swap(n, m);}// 计算黄金分割比const double phi = (1 + sqrt(5)) / 2;// 计算 k 和 必败态的判断long long k = m - n;long long x = (long long)(k * phi);// 如果 n 等于必败态的 x,则先手必败,否则先手必胜if (x == n) {cout << 0 << endl;} else {cout << 1 << endl;}return 0;
}

433494437 701408733          1

这个会卡掉这个,应该是黄金比精度问题,精度1e-18最后还是导致了进位。不确定,但是确实卡住了
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/913154.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/913154.shtml
英文地址,请注明出处:http://en.pswp.cn/news/913154.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多任务学习-ESMM

简介 ESMM&#xff08;Entire Space Multi-task Model&#xff09;是2018年阿里巴巴提出的多任务学习模型。基于共享的特征表达和在用户整个行为序列空间上的特征提取实现对CTR、CVR的联合训练 解决的问题 SSB&#xff08;sample selection bias&#xff09; 如下图1所示&am…

K8S 集群配置踩坑记录

系统版本&#xff1a;Ubuntu 22.04.5-live-server-amd64 K8S 版本&#xff1a;v1.28.2 Containerd 版本&#xff1a; 1.7.27 kubelet logs kuberuntime_sandbox.go:72] "Failed to create sandbox for pod" err"rpc error: code Unknown desc failed to cre…

超滤管使用与操作流程-实验操作013

超滤管使用与操作流程 超滤管&#xff08;或蛋白浓缩管&#xff09;是一种重要的实验设备&#xff0c;广泛应用于分离与纯化大分子物质&#xff0c;尤其是蛋白质、多糖和核酸等。其工作原理依赖于超滤技术&#xff0c;通过半透膜对分子进行筛分&#xff0c;精准地将大分子物质…

GitHub已破4.5w star,从“零样本”到“少样本”TTS,5秒克隆声音,冲击传统录音棚!

嗨&#xff0c;我是小华同学&#xff0c;专注解锁高效工作与前沿AI工具&#xff01;每日精选开源技术、实战技巧&#xff0c;助你省时50%、领先他人一步。&#x1f449;免费订阅&#xff0c;与10万技术人共享升级秘籍&#xff01;你是否为录音成本高、声音不灵活、又想为多语言…

【中文核心期刊推荐】《遥感信息》

《遥感信息》&#xff08;CN&#xff1a;11-5443/P&#xff09;是一份具有较高学术价值的双月刊期刊&#xff0c;自创刊以来&#xff0c;凭借新颖的选题和广泛的报道范围&#xff0c;兼顾了大众服务和理论深度&#xff0c;深受学术界和广大读者的关注与好评。 该期刊创办于1986…

uniapp微信小程序css中background-image失效问题

项目场景&#xff1a;提示&#xff1a;这里简述项目相关背景&#xff1a;在用uniapp做微信小程序的时候&#xff0c;需要一张背景图&#xff0c;用的是当时做app的时候的框架&#xff0c;但是&#xff0c;在class的样式中background-image失效了&#xff0c;查了后才知道&#…

iOS App无源码安全加固实战:如何对成品IPA实现结构混淆与资源保护

在很多iOS项目交付中&#xff0c;开发者或甲方并不总能拿到应用源码。例如外包项目交付成品包、历史项目维护、或者仅负责分发渠道的中间商&#xff0c;都需要在拿到成品ipa文件后对其进行安全加固。然而传统的源码级混淆方法&#xff08;如LLVM Obfuscator、Swift Obfuscator&…

Java 中的 ArrayList 和 LinkedList 区别详解(源码级理解)

&#x1f680; Java 中的 ArrayList 和 LinkedList 区别详解&#xff08;源码级理解&#xff09; 在日常 Java 开发中&#xff0c;ArrayList 和 LinkedList 是我们经常用到的两种 List 实现。虽然它们都实现了 List 接口&#xff0c;但在底层结构、访问效率、插入/删除操作、扩…

使用OpenLayers调用geoserver发布的wms服务

1.前端vue3调用代码 <template><div><div ref"mapContainer" class"map"></div></div> </template><script setup lang"ts"> import { ref, onMounted } from "vue"; import Map from &quo…

二十七、【测试执行篇】测试计划:前端一键触发测试 实时状态追踪

二十七、【测试执行篇】测试计划:前端一键触发测试 & 实时状态追踪 前言准备工作第一部分:后端 API 确认第二部分:前端实现 - 触发执行与状态轮询第三部分:后端 API 增强第四部分:全面测试总结前言 一个完整的自动化测试流程,从测试用例的创建到报告的生成,最终都需…

60天python训练营打卡day52

学习目标&#xff1a; 60天python训练营打卡 学习内容&#xff1a; DAY 52 神经网络调参指南 知识点回顾&#xff1a; 1.随机种子 2.内参的初始化 3.神经网络调参指南 a.参数的分类 b.调参的顺序 c.各部分参数的调整心得 作业&#xff1a;对于day’41的简单cnn&#xff0c;看…

【Modern C++ Part3】Understand-decltype

条款三&#xff1a;理解decltype decltype是一个怪异的发明。给定一个变量名或者表达式&#xff0c;decltype会告诉你这个变量名或表达式的类型。decltype的返回的类型往往也是你期望的。然而有时候&#xff0c;它提供的结果会使开发者极度抓狂而不得参考其他文献或者在线的Q&…

前端批量请求场景

文章目录 一、批量请求1、Promise.allSettled2、返回值穿透 二、案例1、 批量任务2、缓存优化3、另一种实现方式 一般时候前端都是简单的查询任务&#xff0c;复杂的数据获取都是后台处理好再返回&#xff0c;如果遇到接口流程化处理、数据组装&#xff0c;可以参考一下。 一、…

芊芊妙音:智能变声,玩转声音魔法

在当今丰富多彩的社交和娱乐环境中&#xff0c;声音的魅力正逐渐被更多人发现和利用。无论是线上社交、短视频创作还是直播互动&#xff0c;一个独特而有趣的声音总能让人眼前一亮&#xff0c;甚至成为个人风格的一部分。《芊芊妙音》正是这样一款能够帮助用户轻松实现声音变换…

安防监控视频汇聚平台EasyCVR v3.7.2版云端录像无法在web端播放的原因排查和解决方法

有用户反馈&#xff0c;在使用EasyCVR视频汇聚平台时&#xff0c;发现云端录像无法在Web页面正常播放。为帮助大家高效解决类似困扰&#xff0c;本文将详细剖析排查思路与解决方案。 用户软件版本信息&#xff1a; 问题排查与解决步骤&#xff1a; 1&#xff09;问题复现验证…

vxe-upload vue 实现附件上传、手动批量上传附件的方式

vxe-upload vue 实现附件上传、手动批量上传附件的方式 查看官网&#xff1a;https://vxeui.com 安装 npm install vxe-pc-ui4.6.47// ... import VxeUIAll from vxe-pc-ui import vxe-pc-ui/lib/style.css // ...createApp(App).use(VxeUIAll).mount(#app) // ...上传附件支…

leaflet【十一】地图瓦片路径可视化

前言 在开发调试过程当中&#xff0c;如果引入的是公司内部的Gis地图信息或者一些第三方定制来的Gis地图数据&#xff0c;当某一些地图块数据缺失的时候&#xff0c;要打开F12去一个个找那些链接&#xff08;去找对应的xy与layer&#xff09;失效、那么你可能需要使用以下插件…

ES6从入门到精通:模块化

ES6 模块化基础概念ES6 模块化是 JavaScript 官方标准&#xff0c;通过 import 和 export 语法实现代码拆分与复用。模块化特点包括&#xff1a;每个文件是一个独立模块&#xff0c;作用域隔离。支持静态分析&#xff0c;依赖关系在编译时确定。输出的是值的引用&#xff08;动…

stm32 USART串口协议与外设——江协教程踩坑经验分享

江协stm32学习&#xff1a;9-1~9-3 USART串口协议与外设 一、串口通信基础知识 1、通信类型&#xff1a; 全双工通信&#xff1a;通信双方能够同时进行双向通信。一般有两根通信线&#xff0c;如USART中的TX&#xff08;发送&#xff09;和RX&#xff08;接收&#xff09;线&am…

深度学习中的一些名词

向前传播 forward pass 在机器学习中&#xff0c;输入的feature, 通过预测模型&#xff0c;输出预测值&#xff0c;此过程称之为向前传播&#xff1b; 向后传播 backward pass 为了将预测与真实值的产值减小&#xff0c;需要根据差值&#xff0c;更新模型中的参数&#xff0c;此…