《演算法競賽高階指南》0 1位運算

2021-09-19 14:36:58 字數 1871 閱讀 7585

求 a 的 b 次方對 p取模的值。

輸入格式

三個整數 a,b,p,在同一行用空格隔開。

輸出格式

輸出乙個整數,表示a^b mod p的值。

資料範圍

1≤a,b,p≤109

輸入樣例:

3 2 7

輸出樣例:

#include

using namespace std;

//考察快速冪

intmain()

cout << res << endl;

return0;

}

求 a 乘 b 對 p 取模的值。

輸入格式

第一行輸入整數a,第二行輸入整數b,第三行輸入整數p。

輸出格式

輸出乙個整數,表示a*b mod p的值。

資料範圍

1≤a,b,p≤1018

輸入樣例:

3 4 5

輸出樣例:

#include

using namespace std;

typedef

unsigned

long

long ull;

intmain()

cout << res << endl;

return0;

}

給定一張 n個點的帶權無向圖,點從 0~n-1 標號,求起點0到終點n-1的最短hamilton路徑。 hamilton路徑的定義是從0到n-1不重不漏地經過每個點恰好一次。

輸入格式

第一行輸入整數n。

接下來n行每行n個整數,其中第i行第j個整數表示點i到j的距離(記為a[i,j])。

對於任意的x,y,z,資料保證 a[x,x]=0,a[x,y]=a[y,x] 並且 a[x,y]+a[y,z]>=a[x,z]。

輸出格式

輸出乙個整數,表示最短hamilton路徑的長度。

資料範圍

1≤n≤20

0≤a[i,j]≤107

輸入樣例:

0 2 4 5 1

2 0 6 5 3

4 6 0 8 3

5 5 8 0 5

1 3 3 5 0

輸出樣例:

#include

#include

#include

using namespace std;

const

int n =

20, m =

1<<20;

// m = 2^n

int n;

//多少個點

int f[m]

[n],weight[n]

[n];

//m表示點的狀態,m表示處在那乙個點,weight表示點和電之間的加權和

intmain()

演算法競賽高階指南 位運算

四種基本操作 與 或 非 異或 補碼 int 32位,最高位0代表為整數,最高位為1代表負數。x 00000000000000000000 32個0 就是x的補碼。x 1初始化 memset f,0x3f,sizeof f 每個位元組為0x3f,那麼每個int的數為4個位元組,就是0x3f3f3f3...

《演算法競賽高階指南》 防曬

有c頭奶牛進行日光浴,第i頭奶牛需要minspf i 到maxspf i 單位強度之間的陽光。每頭奶牛在日光浴前必須塗防曬霜,防曬霜有l種,塗上第i種之後,身體接收到的陽光強度就會穩定為spf i 第i種防曬霜有cover i 瓶。求最多可以滿足多少頭奶牛進行日光浴。輸入格式 第一行輸入整數c和l。...

《演算法競賽高階指南》蚯蚓

蛐蛐國最近蚯蚓成災了!隔壁跳蚤國的跳蚤也拿蚯蚓們沒辦法,蛐蛐國王只好去請神刀手來幫他們消滅蚯蚓。蛐蛐國裡現在共有 n 只蚯蚓,第 i 只蚯蚓的長度為 ai 所有蚯蚓的長度都是非負整數,即可能存在長度為0的蚯蚓。每一秒,神刀手會在所有的蚯蚓中,準確地找到最長的那乙隻,將其切成兩段。若有多隻最長的,則任...