HDU 5637 異或數學(完全揹包 bfs)

2021-09-09 08:26:34 字數 676 閱讀 2655

題意:

給出n個數,m次查詢,每次查詢x->y需要的最少步數,變換過程有兩種操作,一種可以將x的任意乙個二進位制位取反,另一種操作將x與n個數中任意乙個異或。

思路:x^a^b^c....^d=y,兩邊同時異或x再異或乙個0,可以得到0^a^b^c^...^d=x^y,所以就是將0通過好多步的異或得到x^y的最小步數。每一步異或的這些數要麼來自n個數,要麼是2^i,i範圍是題目所求數的最大二進位制位位數。10000的話是用17位二進位制位。所以可以用dp完全揹包或者類似最短路更新來預處理產生乙個封閉區間內所有數的步數。最後直接輸出ok。

這裡只用完全揹包:

ac**:

#include #include #include #include #include #include#include #include #include #include#include#include#define ll long long

using namespace std;

int a[350000];

int dp[350000];

int main()

{ int t;

scanf("%d",&t);

while(t--)

{int n,m;

scanf("%d%d",&n,&m);

for(int i=0;ithe end;

完全揹包 HDU 1114

今天看了看揹包九講的完全揹包。估計是因為只記住了方程,沒理解透的原因。照著寫,還是錯了 錯就錯在初始化的時候,我全部初始化為0了,然後用max 但是得不到答案。可是初始化出0位置以外,其他都為無窮大,取min,過了 額。去問問高手吧我。再研究了下,猛然回頭,發現,是求揹包裝滿的 最小價值 inclu...

hdu 1203(完全揹包)

problem description speakless很早就想出國,現在他已經考完了所有需要的考試,準備了所有要準備的材料,於是,便需要去申請學校了。要申請國外的任何大學,你都要交納一定的申請費用,這可是很驚人的。speakless沒有多少錢,總共只攢了n萬美元。他將在m個學校中選擇若干的 當然...

hdu 2546 (完全揹包)

problem description 電子科大本部食堂的飯卡有一種很詭異的設計,即在購買之前判斷餘額。如果購買乙個商品之前,卡上的剩餘金額大於或等於5元,就一定可以購買成功 即使購買後卡上餘額為負 否則無法購買 即使金額足夠 所以大家都希望盡量使卡上的餘額最少。某天,食堂中有n種菜 每種菜可購買一...