買愛心氣球(nim博弈)

鏈接:登錄—專業IT筆試面試備考平臺_牛客網
來源:牛客網
Alice 和 Bob?是一對競技編程選手,他們路過了一家氣球店,發現有 m?個大愛心氣球和 n個小愛心氣球。他們決定玩一個游戲,游戲規則如下:

  1. Alice先手拿球,兩人輪流進行。
  2. 每個人在自己的回合只能選擇一種類型的氣球。
  3. 對于大愛心氣球,每次拿取可以選擇取 5個、2個或 1個。
  4. 對于小愛心氣球,每次拿取可以選擇任意數量 (不含0個)。

游戲終止的條件是當所有的氣球都被拿取完畢,最后一個球被拿取的人即為獲勝者。

假設兩人都足夠聰明并采取最優策略,請問誰將獲勝?


分析:

選5個的情況可以用212,221代替,結果相同,所以只要考慮一二,因為1,2都比3小,并且1+2==3,所以最后這堆剩下的為m%3個,然后發現滿足nim博弈的前提,任意取至少一個,至多全部,最后取的贏,所以直接用nim博弈的結論,nim和為0,那么后手贏,而這里只有兩堆,則兩堆相同后手贏,否則先手贏。


#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
void solve()
{ll m,n;cin>>m>>n;//只考慮1,2,(5=2+3),nim博弈if(m%3==n)//nim和為0,即m%3異或n等于0后手贏,即m%3==n{cout<<"Bob"<<'\n';}else cout<<"Alice"<<'\n';
}
int main()
{ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);ll t=1;cin>>t;while(t--)solve();return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36989.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36989.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36989.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python Selenium 設置帶賬號密碼的socks5代理,啟動瀏覽器

selenium添加帶有賬密的socks5代理 我們都知道在使用selenium開發爬蟲的時候不可避免的會使用socks5高匿名代理。一般情況下我們使用方法如下(開發語言為python)&#xff1a; from selenium import webdriver chrome_options webdriver.ChromeOptions() chrome_options.add_…

Java并發之ReentrantLock

AQS AQS&#xff08;AbstractQueuedSynchronizer&#xff09;&#xff1a;抽象隊列同步器&#xff0c;是一種用來構建鎖和同步器的框架。在是JUC下一個重要的并發類&#xff0c;例如&#xff1a;ReentrantLock、Semaphore、CountDownLatch、LimitLatch等并發都是由AQS衍生出來…

React Native Expo項目,復制文本到剪切板

裝包&#xff1a; npx expo install expo-clipboard import * as Clipboard from expo-clipboardconst handleCopy async (text) > {await Clipboard.setStringAsync(text)Toast.show(復制成功, {duration: 3000,position: Toast.positions.CENTER,})} 參考鏈接&#xff1a…

3.文件目錄

第四章 文件管理 3.文件目錄 ? ??對于D盤這個根目錄來說它對應的目錄文件就是圖中的樣子&#xff0c;其實就是用一個所謂的目錄表來表示這個目錄下面存放了哪些東西。在D盤中的每一個文件&#xff0c;每一個文件夾都會對應這個目錄表中的一個表項&#xff0c;所以其實這些一…

如何寫簡歷?

寫程序員簡歷時&#xff0c;可以從以下幾個方面入手&#xff1a; 1. 個人信息&#xff1a;在簡歷的開頭&#xff0c;包含個人基本信息如姓名、聯系方式、地址等。 2. 求職目標/職業目標&#xff1a;明確自己希望得到的職位或行業&#xff0c;并簡要描述為什么適合該職位。 3…

Autoware感知02—歐氏聚類(lidar_euclidean_cluster_detect)源碼解析

文章目錄 引言一、點云回調函數&#xff1a;二、預處理&#xff08;1&#xff09;裁剪距離雷達過于近的點云&#xff0c;消除車身的影響&#xff08;2&#xff09;點云降采樣&#xff08;體素濾波&#xff0c;默認也是不需要的&#xff09;&#xff08;3&#xff09;裁剪雷達高…

【概念篇】文件概述

?作者簡介&#xff1a;大家好&#xff0c;我是小楊 &#x1f4c3;個人主頁&#xff1a;「小楊」的csdn博客 &#x1f433;希望大家多多支持&#x1f970;一起進步呀&#xff01; 文件概述 1&#xff0c;文件的概念 狹義上的文件是計算機系統中用于存儲和組織數據的一種數據存…

React源碼解析18(5)------ 實現函數組件【修改beginWork和completeWork】

摘要 經過之前的幾篇文章&#xff0c;我們實現了基本的jsx&#xff0c;在頁面渲染的過程。但是如果是通過函數組件寫出來的組件&#xff0c;還是不能渲染到頁面上的。 所以這一篇&#xff0c;主要是對之前寫得方法進行修改&#xff0c;從而能夠顯示函數組件&#xff0c;所以現…

【深度學習】NLP中的對抗訓練

在NLP中&#xff0c;對抗訓練往往都是針對嵌入層&#xff08;包括詞嵌入&#xff0c;位置嵌入&#xff0c;segment嵌入等等&#xff09;開展的&#xff0c;思想很簡單&#xff0c;即針對嵌入層添加干擾&#xff0c;從而提高模型的魯棒性和泛化能力&#xff0c;下面結合具體代碼…

Spark 學習記錄

基礎 SparkContext是什么&#xff1f;有什么作用&#xff1f; https://blog.csdn.net/Shockang/article/details/118344357 SparkContext 是什么&#xff1f; SparkContext 是通往 Spark 集群的唯一入口&#xff0c;可以用來在 Spark 集群中創建 RDDs 、累加和廣播變量( Br…

【數據庫基礎】Mysql下載安裝及配置

下載 下載地址&#xff1a;https://downloads.mysql.com/archives/community/ 當前最新版本為 8.0版本&#xff0c;可以在Product Version中選擇指定版本&#xff0c;在Operating System中選擇安裝平臺&#xff0c;如下 安裝 MySQL安裝文件分兩種 .msi和.zip [外鏈圖片轉存失…

C++11時間日期庫chrono的使用

chrono是C11中新加入的時間日期操作庫&#xff0c;可以方便地進行時間日期操作&#xff0c;主要包含了&#xff1a;duration, time_point, clock。 時鐘與時間點 chrono中用time_point模板類表示時間點&#xff0c;其支持基本算術操作&#xff1b;不同時鐘clock分別返回其對應…

vue中router路由的原理?兩種路由模式如何實現?(vue2) -(上)

平時我們編寫路由時&#xff0c;通常直接下載插件使用&#xff0c;在main.js文件中引入直接通過引入vue-router中的Router通過Vue.use使用以后定義一個routeMap數組&#xff0c;里邊是我們編寫路由的地方&#xff0c;最后通過實例化一個 Router實例 將routes我們定義的routeMao…

Docker中部署Nginx

1.Nginx部署需求 2.操作教程 3.實際步驟 把配置粘過來。

客戶端遠程啟動服務器腳本文件

目錄 軟件需求 實現 方法1 方法2 方法3 軟件需求 有兩臺計算機&#xff0c;一臺是linux客戶端&#xff0c;另一臺是linux服務器。要求操作員可以在客戶端遠程啟動服務器上的腳本文件&#xff0c;控制服務器。 實現 方法1 客戶端通過ssh登錄服務器&#xff0c;然后通過…

Cookie、Session、Token的區別

有人或許還停留在它們只是驗證身份信息的機制&#xff0c;但是它們之間的關系你真的弄懂了么&#xff1f; 發展史&#xff1a; Coolie: Netscape Communications 公司引入了 Cookie 概念&#xff0c;作為在客戶端存儲狀態信息的一種方法。初始目的是為了解決 HTTP 的無狀態性…

Python爬蟲:單線程、多線程、多進程

前言 在使用爬蟲爬取數據的時候&#xff0c;當需要爬取的數據量比較大&#xff0c;且急需很快獲取到數據的時候&#xff0c;可以考慮將單線程的爬蟲寫成多線程的爬蟲。下面來學習一些它的基礎知識和代碼編寫方法。 一、進程和線程 進程可以理解為是正在運行的程序的實例。進…

python爬蟲數據解析xpath、jsonpath,bs4

數據的解析 解析數據的方式大概有三種 xpathJsonPathBeautifulSoup xpath 安裝xpath插件 打開谷歌瀏覽器擴展程序&#xff0c;打開開發者模式&#xff0c;拖入插件&#xff0c;重啟瀏覽器&#xff0c;ctrlshiftx&#xff0c;打開插件頁面 安裝lxml庫 安裝在python環境中的Scri…

劍指Offer61.撲克牌中的順子 C++

1、題目描述 從若干副撲克牌中隨機抽 5 張牌&#xff0c;判斷是不是一個順子&#xff0c;即這5張牌是不是連續的。2&#xff5e;10為數字本身&#xff0c;A為1&#xff0c;J為11&#xff0c;Q為12&#xff0c;K為13&#xff0c;而大、小王為 0 &#xff0c;可以看成任意數字。…

并發服務器模型,多線程并發

一、多線程并發完整代碼 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <string.h> #include <unistd.h> #include <sys/wait.h> #include <stdlib.h> #include <…