紫書刷題 UVA 712 S樹 S Trees

2021-10-22 22:01:10 字數 1290 閱讀 8699

題目:

我想用題目中給出的第二組輸入為例。

3

x3 x1 x2

00010011

4000

010111

110

000可以看做二進位制數000,可以轉化為十進位制的000010011中的第0位就是答案0

010可以看做二進位制數001,可以轉化為十進位制的100010011中的第1位就是答案0

111可以看做二進位制數111,可以轉化為十進位制的700010011中的第7位就是答案1

110可以看做二進位制數011,可以轉化為十進位制的300010011中的第3位就是答案1

所以,我們可以將所給的vva轉化為相應的二進位制數,再轉化為十進位制數,最後從ch_arr中輸出相應位置上的數即可。

複雜之處在於如何將vva轉化成二進位制數。

我建立了index陣列,用於儲存下標。建立p陣列,用於儲存每個0/1應該乘以2的多少次冪。只要搞懂了p陣列是如何建立的,問題就迎刃而解了。

#include

#include

using

namespace std;

intmain()

for(

int i =

0; i < n; i++

)char ch_arr[

1000];

scanf

("%s"

, ch_arr)

;int t; cin >> t;

while

(t--

)

cout << ch_arr[pos];}

cout << endl << endl;

}return0;

}

紫書習題 7 1 UVa 208 (爆搜加剪枝)

題意 構造出一張圖,給出乙個點,字典序輸出所有從1到該點的路徑。解題方法 裸蒐會超時的題目,其實題目的資料特地設計得讓圖稠密但起點和終點卻不相連,所以直接搜尋過去會超時。只要判斷下起點和終點能不能相連就行了,可以用並查集也可以用floyd演算法,這樣就能過了。還有一種就是我們可以先將所有與目標點聯通...

紫書 習題 9 8 uva1632

題意 有n個寶藏,每個都在乙個位置p i 在規定的時間t i 就會消失。阿里巴巴要在寶藏消失前收集齊所有寶藏,問 有方法嗎?有的話最少多少秒?思路 開始想的是用狀態轉移方程來乙個個判斷,不好寫。看了題解知道在一段區間 l,r 要使時間最短必須從端點出來,然後果斷寫了乙個記憶化搜尋,tle了。再看題解...

紫書 習題 9 8 uva 10163

解題感想 好久沒刷題了,自己連揹包dp都差不多忘了。題目看著很複雜,可以將問題分解來看,和高中數學題的感覺一樣 1.求任意一組組合的最小的保護值 的最大值 2.求在改最大組合的情況下的,求最小的工資和,和某圖論一樣的思路。解題思路 第乙個揹包 任意組合 抽象成模板 在n個應聘者中選x人使得看守m個倉...