# XDU1200題解(西電17年校賽E題)
XDU1200題解
題意
漢諾塔問題
本題將古老問題做了點改動,每一個圓盤有相同的兩個,但是實際上這兩個圓盤必須同時移動,所以只需要將最終步驟乘2即可。
箋釋
自己推導了一下這個問題。
首先可知,要想把處於最下層的盤X移動到C柱,必須把其上的盤集合Q移動到B柱。
這是第一層劃分:將X之上的盤集合Q移動到B柱,然後將盤X移動到C柱,然後將Q從B柱移動到C柱。
又可知,將Q移動到B柱和將Q移動到C柱實際上所需最小步驟是相同的,記作fq
至於為什麼步驟相同,可由這樣的對稱關係解釋:在將A上的盤集合Q移動到B或C的過程開始之前,B或C是完全對稱的,或者說是無法區分的。
這樣可得到答案fq+1+fq,也就得到了遞推關係式,最後快速冪取模乘2即可。
完整程式碼
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int p=2097151;
long long n;
LL quick_mod(LL a, LL b)
{
LL ans = 1;
a %= p;
while(b)
{
if(b & 1)
{
ans = ans * a % p;
b--;
}
b >>= 1;
a = a * a % p;
}
return ans;
}
int main()
{
while(~scanf("%lld",&n))
{
LL ans=quick_mod(2,n)-1;
ans*=2;
ans%=p;
printf("%lld\n",ans);
}
}
相關推薦
# XDU1200題解(西電17年校賽E題)
XDU1200題解 題意 漢諾塔問題 本題將古老問題做了點改動,每一個圓盤有相同的兩個,但是實際上這兩個圓盤必須同時移動,所以只需要將最終步驟乘2即可。 箋釋 自己推導了一下這個問題。 首先可知,要想把處於最下層的盤X移動到C柱,必須把其上的
西電10.9校內賽補題
sed continue ssi 最短 emp alt while pos src D.UVa12880 解題關鍵:dfs,判斷每個人是否願意被其他人交換,註意保證每個人只能被交換一次。 1 #include<cstdio> 2 #
HDU 5454 Excited Database (2015年瀋陽賽區網路賽E題)
2.解題思路:本題利用線段樹解決,根據題意,我們需要建立兩棵線段樹,分別維護主對角線,副對角線。每個線段樹的結點需要維護sum,sumL,sumR,其中,sum表示當前區間元素的和,sumL表示[L,R]這段區間中三角形和(第L層從1開始算)的值,sumR類似於sumL。
HEX SDUT 3896 17年山東省賽D題
技術 include 矩形 理解 -a play clas long long ear HEX SDUT 3896 17年山東省賽D題這個題是從矩形的左下角走到右上角的方案數的變形題,看來我對以前做過的題理解還不是太深,或者是忘了。對於這種題目,直接分析它的性質就完事了。從
江西理工18年校賽D四邊形面積(OJ題目ACM)
D: 四邊形面積 題目描述 有一個四邊形,現在需要求它的面積 輸入 輸入四行,每行兩個數整數xx, yy (1≤x,y≤1000)(1≤x,y≤1000),四個點是按逆時針輸入的。 輸出 輸出四邊形的面積,保留3位小數點 樣例輸入 0 0 10 0 1 1 0 11 樣例輸出 10.
演算法題(十八):搜狗19年校招程式設計題(一)——找區間
注:筆試時並沒有AC,線下修改後可以輸出示例結果。 問題:從一個序列中找出所有包含全部數字的最小索引區間,若有多個則按出現的順序輸出。 輸入輸出示例: 輸入:1 1 3 4 6 6 5 1 1 3 3 輸出:[2,7] [3,8] [4,9] 分析:先用一個list
江西理工18年校賽C: 三角平方數(OJ題目ACM)
題目描述 三角數:圓點擺放成等邊三角形的數字,則為三角數。1,3,6,10,15,21,28,36… 平方數:小方塊擺放成正方形的數字,則為平方數。1,4,9,16,25,36… 那麼如果一個數字既是三角形數又是平方數,則稱為三角平方數。很顯然我們知道第一個三角平方數就是1了。 那麼
使用樹莓派(RaspberryPi)和ssr進行免流 (西電)
使用樹莓派(RaspberryPi)進行免流 (西電) 安裝ubuntu系統 由於樹莓派官方的系統相容性並不是很好,所以還是刷一個比較穩定的ubuntu 下載所需要的映象檔案: 訪問此網站下載所需要的映象檔案,我所下載的是ubuntu-16.04-prei
電商專案(二十六)使用者模組開發(登出、註冊、校驗功能開發)
一、門戶登出功能 1、門戶登出功能介面設計(退出登陸) request: 無 response: success { "status": 0, } fail { "statu
2018年東北農業大學春季校賽 B題題解
#include<iostream> #include<algorithm> using namespace std; int main() { long long t,n;cin>>t; long long sum=0;
ZOJ 3810 A Volcanic Island (2014年牡丹江賽區網絡賽B題)
amp fin function for sca mod zju dsm unsigned 1.題目描寫敘述:點擊打開鏈接 2.解題思路:本題是四色定理的模板題。只是有幾種情況要提前特判一下:n==1直接輸出,1<n<5時候無解,n==6時候套用模板會
2018 FJUT ACM校賽L題 外傳:魔王打工記(三)
cost size turn 一次 clas 選擇 output pro sum 外傳:魔王打工記(三) TimeLimit:1000MS MemoryLimit:128MB 64-bit integer IO format:%lld Problem Des
QAU校賽 J題 天平(01背包 判斷能否裝滿)
描述 pac 同時 -a CI con 允許 max Go 問題 J: 天平 時間限制: 1 Sec 內存限制: 128 MB提交: 36 解決: 9[提交][狀態][討論版][命題人:admin] 題目描述 天平的右端放著一件重量為w的物品。現在有n個重量已知的
IntelliJ IDEA 最新註冊碼(截止到2019年5月4日)
cif wsh fsp fun fbo gyp ati idea fda https://blog.csdn.net/qq_35246620/article/details/80522720 ntelliJ IDEA 註冊碼 K71U8DBPNE-eyJsaWNlbn
劍指offer題解(陣列中出現次數超過一半的數字)
題目描述 陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入一個長度為9的陣列{1,2,3,2,2,2,5,4,2}。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。 解題思路 先找到出現次數最多
(CCF CSP 2017年9月3日) JSON查詢+詳細分析
JSON (JavaScript Object Notation) 是一種輕量級的資料交換格式,可以用來描述半結構化的資料。JSON 格式中的基本單元是值 (value),出於簡化的目的本題只涉及 2 種類型的值: * 字串 (string):字串是由雙引號 " 括起
IntelliJ IDEA 最新啟用碼(截止到2018年10月14日)
IntelliJ IDEA 註冊碼: EB101IWSWD-eyJsaWNlbnNlSWQiOiJFQjEwMUlXU1dEIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWF
研究基於spring通過對http請求資料的預處理(資料加解密、校驗、日誌)(2)過攔截器篇
上文已經詳細講解了如何對request進行處理,本文主要是案例演示 spring MVC 的寫法 新增攔截器 定義一個攔截器 public class AppRequestIntercept
穀倉(某校老師原創題)
題目大意: 有一個圓形的穀倉,共有n個房間,按順時針編號從1到n。現在有許多頭奶牛,他們都有自己最喜歡的一個房間。傍晚回家時,奶牛們去找自己最喜歡的房間。如果發現被佔了,他們就會按照順時針方向找第一個空閒的房間住進去
懸掛運動控制系統(E題) 07年
懸掛運動控制系統(E 題) 一、任務 設計一電機控制系統,控制物體在傾斜(仰角 ≤ 100 度)的板上運動。 在一白色底板上固定兩個滑輪,兩隻電機(固定在板上)通過穿過滑輪的吊繩控制一物體在板上運動,運動範圍為 80cm×100cm 。物體的形狀不限,質量大於 100 克。