poj2573Bridge(過橋問題)

2022-05-15 23:57:41 字數 1170 閱讀 7156

鏈結

a,b為最快和次快

有兩種方式可以使c,d過橋

一是a與c一起走,a回來接d再與d一起走,一直到對岸人為0為止

而是 a與b一起走 a回來送燈 c與d一起走 b回來送燈 重複此過程。

只剩2人時  直接過橋

3 人時  a回來送燈 ac走 a回來送燈 ab走

1 #include 2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include

10using

namespace

std;

11#define n 1010

12#define ll long long

13#define inf 0xfffffff

14const

double eps = 1e-8;15

const

double pi = acos(-1.0

);16

const

double inf = ~0u>>2;17

inta[n];

18int

main()

1931 sort(a+1,a+n+1

);32

int g =n;

33int ans = 0;34

while(g>3)35

40if(g==3

)41 ans+=a[1]+a[2]+a[g];

42else

if(g==2

)43 ans+=a[2

];44 cout

45 g =n;

46while(g>3)47

55if(g==3

)56 printf("

%d %d\n%d\n%d %d\n

",a[1],a[g],a[1],a[1],a[2

]);57

else

if(g==2

)58 printf("

%d %d\n

",a[1],a[2

]);59}60

return0;

61 }

view code

SICP練習 85 練習2 57

看到題目中的能處理任意項就趕緊這道題挺難的,同時也想到了前面學過但還沒怎麼用過的點引數。題目中要能求和還能求乘積。我們先來寫求和的函式吧。define make sum a1 a2 if single operand?a2 let a2 car a2 cond number?a10 a2 numbe...

SICP練習 85 練習2 57

看到題目中的能處理任意項就趕緊這道題挺難的,同時也想到了前面學過但還沒怎麼用過的點引數。題目中要能求和還能求乘積。我們先來寫求和的函式吧。define make sum a1 a2 if single operand?a2 let a2 car a2 cond number?a10 a2 numbe...

SGU 257 Debt 貪心 模擬

題意 有乙個人欠三個人分別p o s 1 p o s 10 5 塊錢,現在這個人手裡有n 1 n 10 5 塊crystal,但是每塊crystal在不同人看來是不一樣的 價值 1塊或者2塊 現在問是否存在一種分配方案使得能還清3個人的錢。題解 首先給不同的crystal排優先順序,然後列舉滿足三個...