蠻力法 獄吏問題

2021-10-10 08:46:41 字數 542 閱讀 4409

某國王大赦囚犯,讓一獄吏n次通過一排鎖著的n間牢房,每通過一次,按所定規則轉動n間牢房的某些門鎖,每轉動一次,原來鎖著的門被開啟,原來開啟的門被鎖上,通過n次後,門開著的,牢房中的犯人放出,否則犯人不得釋放。 轉動門鎖的規則是這樣的,第一次通過牢房,從第1間開始要轉動每一把門鎖,即把全部的鎖開啟;第2次通過牢房時,從第2間開始轉動,每隔一間轉動一次;…;第k次通過牢房時,從第k間開始轉動,每隔k-1間轉動一次;問通過n次後,哪些牢房的鎖是開啟的? input 題目包含多組資料,每組資料報含乙個整數n,n不超過1000000,牢房編號從1開始。不超過100組樣例。 output 要求輸出牢房的編號。

三種方法:

所有方法中鎖的狀態:1代表鎖著,0代表開著

#include

using

namespace std;

intmain()

2020-11-8小白記錄

我有乙個acm夢,目前剛開始大一加油!

蠻力法求解「獄吏問題」

問題描述 獄吏問題 某國王對囚犯進行大赦,讓一獄吏n次通過一排鎖著的n間牢房,每通過一次按所定規則轉動n間牢房中的某些門鎖,每轉動一次原來鎖著的被開啟,原來開啟的被 鎖上通過n次後,門鎖開著的,牢房中的犯人被放出,否則,犯人不得釋放。轉動門鎖的規則是這樣的,第一次通過牢房,從第一間開始轉動每一把鎖,...

分治法 蠻力法 金塊問題

乙個老闆有 n 塊金塊,他要把最重的一塊獎勵給最優秀的員工,最輕的一塊獎勵給次優秀的員工。假設有一台比較重量的儀器,希望用最少的比較次數找出最重和最輕的金塊。題意就是在一堆亂序元素中找到兩個最值元素 最大值 最小值 本題解法思路有兩種 分治法 蠻力法 分治演算法實現上,又可以分兩種思路 遞迴 非遞迴...

凸包問題(蠻力法)

蠻力法求解凸包問題的基本思想 對於由n個點構成的集合s中的兩個點pi和pj,當且僅當該集合中的其他點都位於穿過這兩點的直線的同一邊時 假定不存在三點同線的情況 它們的連線是該集合凸包邊界的一部分。對每一對頂點都檢驗一遍後,滿足條件的線段構成了該凸包的邊界。在平面上,穿過兩個點 x1,y1 和 x2,...